parted磁盘工具

parted是当前主流发型版替代fdisk实现大容量磁盘分区管理的工具。parted支持交互模式,也支持直接的命令行模式(可以在shell中使用)。

基本命令模式(注意,选项在设备名前面,命令在设备之后,这样选项就会传递给parted命令)

parted [OPTION]... [DEVICE [COMMAND [PARAMETERS]...]...]

例如:

parted -a optimal /dev/sda mkpart primary 0% 256MB

检查分区是否对齐4k,使用 parted /dev/sda 然后执行命令 align-check opt 1,如果对齐则显示 1 aligned

如果直接使用parted [OPTION]... [DEVICE]就会进入交互模式。

  • 列出磁盘分区

parted /dev/sda print
  • 在交互模式下,也可以通过select切换磁盘

(parted) select /dev/sdX
  • 创建分区表

分区表是通过命令mklabel完成的,类型有msdos(即传统的DOS分区表),也可以使用现在主流的gpt

parted /dev/sda mklabel gpt

警告:重建分区表将擦除磁盘上所有数据。

  • 创建分区

使用交互命令mkpart可以实现创建分区,但是非常繁琐。直接命令行实现较为快捷:

parted -a optimal /dev/sda mkpart primary 0% 256MB
  • 调整分区大小

resizepart命令调整分区大小

  • 删除分区

parted /dev/sda rm 1

rm 1表示删除分区

  • 挽救分区

rescure可以恢复开始和结束点之间的分区,如果在这个开始和结束点之间的分区被找到,parted就会尝试恢复:

(parted) rescue
Start? 1
End? 15000
(parted) print
Model: Unknown (unknown)
Disk /dev/sdb1: 15.0GB
Sector size (logical/physical): 512B/512B
Partition Table: loop
Disk Flags:
Number Start End Size File system Flags
1 0.00B 15.0GB 15.0GB ext4
  • 修改分区标记

支持多种分区标记:

boot
root
swap
hidden
raid
lvm
lba
legacy_boot
irst
esp
palo

例如执行:

(parted) set 2 boot on

案例实践

在LFS磁盘分区准备工作中,使用parted来完成分区,详情请参考LFS准备

初始化磁盘分区表(擦除原先的所有数据)

parted /dev/sda mklabel gpt

创建第一个sda1分区,用于EFI启动

parted -a optimal /dev/sda mkpart ESP fat32 0% 256MB
parted /dev/sda set 1 esp on

主分区59G空间,剩余用于swap

parted -a optimal /dev/sda mkpart primary ext4 256MB 59GB
parted -a optimal /dev/sda mkpart primary linux-swap 59GB 100%

完成后最后检查fdisk -l /dev/sda

Disk /dev/sda: 56.5 GiB, 60666413056 bytes, 118489088 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 25AAF5C2-70A9-4B7A-8350-C11F96658DC1

Device         Start       End   Sectors  Size Type
/dev/sda1       2048    499711    497664  243M EFI System
/dev/sda2     499712 115234815 114735104 54.7G Linux filesystem
/dev/sda3  115234816 118487039   3252224  1.6G Linux swap

参考

Last updated