parted

磁盘分区程序


语法格式

parted [-lms] [-a align] [device [cmd [args]]]
parted [-h|--help] [-v|--version]

命令简介

parted命令是一个磁盘分区程序,用于显示、创建、删除、调整、移动或复制ext2、swap、FAT或FAT32等磁盘分区,也可用于检测jfs、ntfs、ufs和xfs等文件系统分区。

实际上,parted命令目前主要用于划分磁盘分区,以便使用mkfs或mke2fs等命令创建文件系统。

在上述语法格式中,device是磁盘的设备文件名。如果未指定磁盘设备文件名,parted将会使用其发现的第一个磁盘设备。cmd是parted支持的交互子命令(参见“内置命令”一节),args是parted子命令的参数。如果未指定任何子命令,将进入parted交互命令环境。

命令选项

-a align, --align align  设置新建分区的边界对齐方法。有效的对齐方法是:

none  使用磁盘类型允许的最小对齐方法。

cylinder  磁盘分区按柱面对齐。

minimal  使用磁盘拓扑信息给定的最小对齐方法。

optimal  使用磁盘拓扑信息给定的优化对齐方法(按照能够保证优化性能的扇区倍数对齐)。

-l, --list  列出所有块设备的分区设置。

-m, --machine  按照脚本能够解析与处理的形式输出数据。

-s, --script  禁止提请用户干预。

内置命令

check partition  简单检测指定的分区,其中的partition是磁盘分区的编号。

cp [device] src dest  把指定或当前设备src分区中的文件系统复制到dest分区,其中的srcdest是磁盘分区的编号。

help [cmd]  显示可用的parted子命令,或显示指定子命令的简单说明。

mkfs partition fstype  在指定的磁盘分区中创建指定类型的文件系统。其中,partition是磁盘分区的编号,fstype可以是fat16、fat32、ext2或linux-swap等文件系统类型之一。

mklabel label  修改分区表,设置磁盘分区的标签。标签可为bsd、dvh、gpt、loop、mac、msdos、pc98或sun之一。

mkpart part-type [fstype] start end  以默认的MB为单位,按照指定的起始位置,划分磁盘分区。分区类型part-type可以是primary(主分区)、extended(扩展分区)或logical(逻辑分区)之一。如果指定了文件系统类型fstype,也创建指定类型的文件系统。fstype可以是fat16、fat32、ext2、HFS、linux-swap、NTFS或ufs之一。

mkpartfs part-type fstype start end  以默认的MB为单位,按照指定的起始位置,划分磁盘分区(分区类型part-type可以是primary、extended或logical之一),创建指定类型的文件系统(文件系统类型fstype可以是fat16、fat32、ext2、HFS、linux-swap、NTFS或ufs之一)。注意,parted命令创建文件系统的功能是有限的,故需慎用此命令,最好是先用mkpart子命令创建一个空的磁盘分区,然后再用常规的mkfs或mke2fs等命令创建文件系统。

move partition start end  把指定的磁盘分区移至指定的起止位置,但不改变磁盘分区的编号。

name partition name  设置磁盘分区的名字。这个子命令只能用于Mac、PC98和GPT磁盘标签。必要时,名字前后可加引号。

print  显示磁盘分区表。

quit  退出parted命令。

rescue start end  从指定的起止范围内拯救丢失的分区。如果发现一个分区,parted将会提请用户确认是否需要在分区表中创建相应的分区。

resize partition start end  以默认的MB为单位,按照指定的起止位置调整磁盘分区,重新界定文件系统分区的大小。建议使用resize2fs命令而非这里的resize子命令调整文件系统分区的大小。

rm partition  删除指定的磁盘分区。

select device  选择需要配置的设备作为当前设备。指定的设备通常是一个普通的Linux磁盘设备,必要时也可以是一个磁盘分区、软件磁盘阵列或LVM逻辑卷等。

set partition flag state  修改磁盘分区标志的状态。分区标志可以是boot、root、swap、hidden、raid、lvm、lba或palo等,状态可以是on或off。

unit unit  设置表示起止位置或大小的单位,尤其是上述子命令中未加单位后缀的默认数量单位。unit可以是s(扇区)、B(字节)、kB、MB、GB、TB、%(设备容量的百分比)、cyl(柱面)、chs(柱面、磁头与扇区)或compact(输入时为MB,输出时选择适当的单位)。

version  显示parted命令的版本与版权信息。

命令输出

在print子命令的输出信息中,第二行给出了磁盘的大小,最后几行是磁盘的分区信息,其中每个字段的意义说明如下(参见应用实例):

Minor  磁盘分区的编号。例如,1表示第一个磁盘分区/dev/sdb1。

Start  磁盘分区的起始位置或以大小表示的起始位置。

End  磁盘分区的结束位置或以大小表示的结束位置。

Type  磁盘分区类型,如主分区、扩展分区或逻辑分区。

Filesystem  文件系统类型,如fat16、fat32、ext3、ext4或ntfs等。

Flags  磁盘分区标志,如boot、root、swap、hidden、raid或lvm等。

应用实例

1. 利用parted命令,把一个40GB的移动磁盘划分成两个约20GB的分区。

# parted /dev/sdb

(parted) print

Number  Start  End  Size  Type  File system  Flags

 (parted) mkpart primary 1cyl 20G
(parted) mkpart primary 20G 40G
(parted) print

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  20.0GB  20.0GB  primary
 2      20.0GB  40.0GB  20.0GB  primary

 (parted) quit

2. 按照不同的单位显示磁盘的划分。

# parted /dev/sdb print unit s print unit cyl

索引:A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z