磁盘分区工具(fdisk 和 parted)区别及操作笔记

fdisk 和 parted 都是 Linux 系统中用于磁盘分区的工具

两者主要区别:

  1. 支持的分区表类型

    • fdisk 主要支持 MBR分区表,MBR分区表支持的硬盘单个分区最大容量为2TB,最多可以有4个主分区
    • parted 支持 MBR分区表 和 GPT分区表,GPT分区表可以支持更大的硬盘容量和更多的分区数量。
  2. 用户界面:fdisk 使用命令行界面,而 parted 也使用命令行但提供了更丰富的命令和交互。

  3. 功能:parted 提供了一些 fdisk 没有的功能,如调整分区大小、格式化分区等。

  4. 易用性:parted 通常被认为比 fdisk 更易用,特别是在处理 GPT 分区表时。

但它们在功能和使用上有一些区别:

fdisk的功能

复制代码
fdisk 是一个较老的分区表创建和管理工具,主要**支持 MBR (Master Boot Record) 格式的分区表**。它可以用来创建、删除、调整分区大小等。

基本命令:
fdisk /dev/sda:启动 fdisk 工具并选择 /dev/sda 磁盘。

  • p:显示磁盘分区表
  • n:创建新分区
  • d:删除分区
  • t:改变分区类型
  • w:写入分区表并退出
  • q:不保存更改并退出
使用示例
  1. 使用 fdisk 创建新分区:
    fdisk /dev/sda

    bash 复制代码
    	Command (m for help): n
    	Command action
    	   e   extended
    	   p   primary partition (1-4)
    	p
    	Partition number (1-4): 1
    	First sector (2048-104857551, default 2048): 
    	Last sector, +sectors or +size{K,M,G} (2048-104857551, default 104857551): +500G
    	Command (m for help): w
  2. 格式化新分区

    使用 mkfs 命令为新分区创建文件系统。假设想要为该分区创建 ext4 文件系统:

    bash 复制代码
       sudo mkfs.ext4 /dev/sda1
  3. 挂载分区

    如果想挂载这些分区,可以使用 mount 命令。首先创建挂载点,然后挂载:

    bash 复制代码
       # 创建挂载点
       sudo mkdir /data01
       # 手动挂载
       sudo mount /dev/sda1 /data01

    再配置永久挂载,请参考下面parted永久挂载部分


parted的功能

复制代码
parted 是一个更现代的分区工具,**支持 MBR 和 GPT (GUID Partition Table) 格式的分区表**。parted 提供了更丰富的命令和功能,包括调整分区大小、创建新的分区表、格式化分区等。

基本命令:
parted /dev/sda:启动 parted 工具并选择 /dev/sda 磁盘。

  • print:显示磁盘分区信息
  • mklabel:创建新的分区表,可以是 msdos 或 gpt
  • mkpart:创建新分区,需要指定分区类型(如 primary, logical)和大小(如 1MiB, 50%)
  • rm:删除分区,需要指定分区号
  • resizepart:调整分区大小,需要指定分区号和新大小
  • set:设置分区属性,如bootable
  • quit:退出 parted
使用示例
  1. 使用 parted 创建新分区

    parted /dev/sda

    假如/dev/sda是一块10TB的大硬盘,按第1个分区为500GB,第2个分区9TB来创建分区。

    bash 复制代码
    	(parted) mklabel gpt # 创建gpt分区表,也支持MBR,对于目前大硬盘,更推荐选择GPT
    	# 新建分区
    	(parted) mkpart primary 0% 500GB	# 创建第1个分区(按大小),0% 表示分区从磁盘的起始位置开始,500GB 是分区的大小。
    	(parted) mkpart primary 500GB 100%	# 创建第2个分区(按百分比),500GB 是第一个分区的结束位置,100% 表示使用所有剩余空间。
    
    	
    	# 删除分区
    	(parted) print		# 首先查看当前磁盘的分区信息,确保你将要删除的是正确的分区。使用 print 命令来显示分区表
    	(parted) rm 1		# 确定要删除的分区号,例如,如果你要删除第一个分区,分区号是 1。特别注意:删除分区会丢失该分区上的所有数据
    	
    	# 退出parted
    	(parted) quit	
  2. 格式化新分区

    使用 mkfs 命令为新分区创建文件系统。假设想要为第一个分区创建 ext4 文件系统,第二个分区创建 XFS 文件系统:

    bash 复制代码
       sudo mkfs.ext4 /dev/sda1
       sudo mkfs.xfs /dev/sda2
  3. 挂载分区

    3.1. 如果想挂载这些分区,可以使用 mount 命令:

    bash 复制代码
    	# 首先创建挂载点
       sudo mkdir /data01
       sudo mkdir /data02
    	# 然后挂载
       sudo mount /dev/sda1 /data01
       sudo mount /dev/sda2 /data02

    3.2. 添加永久挂载(以上mount直接挂载为临时挂载,重启后丢失)

    复制代码
     编辑 /etc/fstab 文件,文件内容末尾追加以下内容,后再保存关闭文件
     ```bash
     /dev/sda1	/data01	ext4	default	0	2
     /dev/sda2	/data02	xfs		default 0	2
     ```

    3.3. 测试挂载配置,会尝试挂载 /etc/fstab 中定义的所有挂载点。如果没有错误消息,说明配置正确。
    mount -a

    3.4. 可再通过 df -h 查看下 /data01、/data02 的分区信息


  • 假如后期使用中需要重新调整分区的大小

    parted /dev/sda # 启动 parted 并选择磁盘

    bash 复制代码
    	(parted) print 		# 查看当前分区信息,确定你想要调整大小的分区号
    	
    	# 方式1
    	# 调整分区大小,注意:1 是分区号,300GB 是新的分区大小
    	(parted) resizepart 1 300GB		# 例如,如果想要调整第一个分区的大小到300GB:
    	
    	# 方式2
    	# 也支持调整分区的起始或结束位置
    	# 2. 1 如果你需要调整分区的起始位置,可以使用 --set 选项
    	# 例如,将第一个分区的起始位置设置为 10GB
    	(parted) resizepart 1 --set 10GB	# 
    
    	# 2.2 如果你需要调整分区的结束位置,可以使用 --end 选项来指定新的结束位置
    	# 例如,如果你想要将第一个分区的结束位置设置为 30GB
    	(parted) resizepart 1 --end 30GB	# 
    	
    	# 退出parted
    	(parted) quit	

注意事项:

  • 在调整分区大小之前,请确保备份所有重要数据,以防数据丢失。
  • 如果分区中的数据已经填满了整个分区,你可能需要先清理一些数据,以确保有足够的空间进行调整。
  • 如果调整的分区不是最后一个分区,或者调整操作涉及到多个分区,可能需要先移动数据,这通常涉及到更复杂的步骤,比如使用partprobe 命令通知内核分区表的变化,或者在调整前卸载分区。
相关推荐
兴趣使然_2 小时前
【笔记】使用 html 创建网址快捷方式
笔记·html·js
aramae4 小时前
C++ -- STL -- vector
开发语言·c++·笔记·后端·visual studio
fen_fen4 小时前
学习笔记(32):matplotlib绘制简单图表-数据分布图
笔记·学习·matplotlib
饕餮争锋8 小时前
设计模式笔记_创建型_建造者模式
笔记·设计模式·建造者模式
萝卜青今天也要开心8 小时前
2025年上半年软件设计师考后分享
笔记·学习
吃货界的硬件攻城狮9 小时前
【STM32 学习笔记】SPI通信协议
笔记·stm32·学习
蓝染yy9 小时前
Apache
笔记
lxiaoj11110 小时前
Python文件操作笔记
笔记·python
半导体守望者10 小时前
ADVANTEST R4131 SPECTRUM ANALYZER 光谱分析仪
经验分享·笔记·功能测试·自动化·制造
啊我不会诶12 小时前
倍增法和ST算法 个人学习笔记&代码
笔记·学习·算法