fdisk 和 parted 都是 Linux 系统中用于磁盘分区的工具。
两者主要区别:
-
支持的分区表类型:
- fdisk 主要支持 MBR分区表,MBR分区表支持的硬盘单个分区最大容量为2TB,最多可以有4个主分区。
- parted 支持 MBR分区表 和 GPT分区表,GPT分区表可以支持更大的硬盘容量和更多的分区数量。
-
用户界面:fdisk 使用命令行界面,而 parted 也使用命令行但提供了更丰富的命令和交互。
-
功能:parted 提供了一些 fdisk 没有的功能,如调整分区大小、格式化分区等。
-
易用性:parted 通常被认为比 fdisk 更易用,特别是在处理 GPT 分区表时。
但它们在功能和使用上有一些区别:
fdisk的功能
fdisk 是一个较老的分区表创建和管理工具,主要**支持 MBR (Master Boot Record) 格式的分区表**。它可以用来创建、删除、调整分区大小等。
基本命令:
fdisk /dev/sda:启动 fdisk 工具并选择 /dev/sda 磁盘。
- p:显示磁盘分区表
- n:创建新分区
- d:删除分区
- t:改变分区类型
- w:写入分区表并退出
- q:不保存更改并退出
使用示例
-
使用 fdisk 创建新分区:
fdisk /dev/sda
bashCommand (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
-
格式化新分区
使用 mkfs 命令为新分区创建文件系统。假设想要为该分区创建 ext4 文件系统:
bashsudo mkfs.ext4 /dev/sda1
-
挂载分区
如果想挂载这些分区,可以使用 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
使用示例
-
使用 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
-
格式化新分区
使用 mkfs 命令为新分区创建文件系统。假设想要为第一个分区创建 ext4 文件系统,第二个分区创建 XFS 文件系统:
bashsudo mkfs.ext4 /dev/sda1 sudo mkfs.xfs /dev/sda2
-
挂载分区
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 命令通知内核分区表的变化,或者在调整前卸载分区。