parted
是 Linux 系统中的一个强大的磁盘分区管理工具,支持 GPT(GUID 分区表)和 MBR(主引导记录)分区表格式,特别适用于大于 2TB 的硬盘分区操作。
parted
的基本语法
sudo parted [选项] <磁盘设备>
例如,操作 /dev/sda
磁盘:
sudo parted /dev/sda
常用选项
-l
: 列出所有磁盘的分区信息。sudo parted -l
-s
: 以非交互方式执行命令,常用于脚本。sudo parted -s /dev/sda mkpart primary ext4 1MiB 10GiB
-a optimal
: 按照磁盘最佳对齐方式创建分区,能提升性能。sudo parted -a optimal /dev/sda
进入 parted
交互式模式
输入 sudo parted /dev/sda
后进入交互模式,在提示符下可以输入各种命令管理分区。
1. help
: 显示帮助菜单
(parted) help
显示所有支持的命令。
2. print
: 查看分区表
查看磁盘上的分区信息:
(parted) print
输出示例:
Model: ATA ST1000DM003 (scsi)
Disk /dev/sda: 1000GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 538MB 537MB fat32 boot
2 538MB 1000GB 999GB ext4
3. mklabel
: 创建分区表
用于创建新的分区表,可以选择 gpt
或 msdos
类型。
(parted) mklabel gpt
此操作会删除磁盘上的所有现有分区!
4. mkpart
: 创建新分区
创建新分区时可以指定分区类型、文件系统类型、起始位置和结束位置。
格式:
(parted) mkpart <分区类型> <文件系统类型> <起始位置> <结束位置>
例如,创建一个从 1MiB 开始,大小为 10GiB 的 ext4 分区:
(parted) mkpart primary ext4 1MiB 10GiB
如果不指定文件系统类型,也可以:
(parted) mkpart primary 1MiB 10GiB
5. rm
: 删除分区
用于删除指定的分区,输入分区号即可删除相应分区。
(parted) rm 1
此命令将删除分区 1。
6. resizepart
: 调整分区大小
用于调整已有分区的大小。输入分区号和新的结束位置即可。
(parted) resizepart 2 50GiB
将分区 2 的大小调整到 50GiB。
7. name
: 为分区命名
用于为分区指定名称,主要用于 GPT 分区表。
(parted) name 1 boot_partition
8. set
: 设置分区标志
设置分区标志(如 boot
、lvm
等)。例如,设置分区 1 为可启动分区:
(parted) set 1 boot on
常用标志包括:
boot
: 可启动分区lvm
: LVM 分区swap
: 交换分区
9. align-check
: 检查分区的对齐情况
可以检查某个分区是否按最佳对齐方式创建。对齐分区可以提升磁盘性能。
(parted) align-check optimal 1
检查分区 1 是否最佳对齐。
10. quit
: 退出 parted
输入 quit
退出 parted
交互模式:
(parted) quit
分区单位
parted
支持使用多种单位来指定分区大小和位置,包括:
- B: 字节
- KB: 千字节
- MB: 兆字节
- GB: 千兆字节
- TB: 太字节
- KiB: 千二进制字节
- MiB: 兆二进制字节
- GiB: 千兆二进制字节
默认单位是 MB,你也可以通过 unit
命令更改单位。例如:
(parted) unit GiB
实用示例
1. 查看所有磁盘及其分区信息:
sudo parted -l
2. 创建新的 GPT 分区表并创建两个分区:
sudo parted /dev/sda
(parted) mklabel gpt
(parted) mkpart primary ext4 1MiB 20GiB
(parted) mkpart primary linux-swap 20GiB 40GiB
(parted) quit
3. 删除 /dev/sda
上的第一个分区:
sudo parted /dev/sda
(parted) rm 1
(parted) quit
4. 调整 /dev/sda
上第 2 个分区的大小到 50GiB:
sudo parted /dev/sda
(parted) resizepart 2 50GiB
(parted) quit
5. 检查分区对齐情况:
sudo parted /dev/sda align-check optimal 1
注意事项
- 操作
mklabel
(创建分区表)和rm
(删除分区)命令时,会删除原有的分区和数据,执行这些操作前请务必备份数据。 - 如果是用于大于 2TB 的硬盘,建议选择 GPT 分区表(
mklabel gpt
)。
parted
是一个灵活的分区管理工具,适用于各种复杂的磁盘分区操作,尤其是在 GPT 格式磁盘上,它比 fdisk
更加强大和适用。