使用parted进行分区管理
parted是Red Hat Enterprise Linux 5.2下自带的另外一款分区软件,相对于fdisk,它的使用更加方便,同时它还提供了动态调整分区大小的功能。本节将介绍如何通过parted创建、删除磁盘分区、查看分区表、更改分区大小、创建文件系统以及如何使用parted的交互模式等。
7.3.1 parted简介
parted是另一款在Linux下常用的分区软件,它支持的分区类型范围非常广,包括ext2、ext3、linux-swap、FAT、FAT32、reiserfs、HFS、jsf、ntfs、ufs和xfs等。无论是Linux还是Windows,它都能很好地支持。其命令格式如下:
parted [options] [device [command [options...]...]] 其中的命令选项说明如下所述。
-h:显示帮助信息。
-i:交互模式。
-s:脚本模式。
-v:显示parted的版本信息。
device:磁盘设备名称,如/dev/hda。
command:parted指令,如果没有设置指令,则parted将会进入交互模式,parted指令将会在7.3.2节中详细介绍。
例如要查看parted的版本信息,其命令如下所示。
# parted -v GNU Parted 1.8.1 可以看到,系统当前使用的parted版本为1.8.1。
7.3.2 parted交互模式
与fdisk类似,parted可以使用命令"parted 设备名"进入交互模式。进入交互模式后,可以通过parted的各种指令对磁盘分区进行管理,其结果如下所示。
# parted /dev/hda
GNU Parted 1.8.1 Using /dev/hda Welcome to GNU Parted! Type 'help' to view a list of commands. parted的各种操作指令和详细说明如表7.3所示。
表7.3 parted指令说明
parted指令
说 明
check NUMBER检查文件系统
cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER复制文件系统到另外一个分区
help [COMMAND]显示全部帮助信息或者指定命令的帮助信息
mklabel,mktable LABEL-TYPE在分区表中创建一个新的磁盘标签
mkfs NUMBER FS-TYPE在分区上创建一个指定类型的文件系统
mkpart PART-TYPE [FS-TYPE] START END创建一个分区
mkpartfs PART-TYPE FS-TYPE START END创建一个分区,并在分区上创建指定的文件系统
move NUMBER START END移动分区
name NUMBER NAME以指定的名字命名分区号
print [free|NUMBER|all]显示分区表、指定的分区或者所有设备
quit 退出parted程序
rescue START END修复丢失的分区
resize NUMBER START END更改分区的大小
rm NUMBER删除分区
select DEVICE选择需要更改的设备
set NUMBER FLAG STATE 更改分区的标记
toggle [NUMBER [FLAG]]设置或取消分区的标记
unit UNIT设置默认的单位
version显示parted的版本信息
7.3.3 分区管理
通过parted交互模式中所提供的各种指令,可以对磁盘的分区进行有效的管理。接下来将介绍如何在parted的交互模式下完成查看分区、创建分区、创建文件系统、更改分区大小以及删除分区等操作。
1.查看分区
输入print指令,可以查看磁盘当前的分区表信息,其运行结果如下所示。
(parted) print //输入print指令查看磁盘分区表
Model: Maxtor 6Y080L0 (ide)
Disk /dev/hda: 82.0GB Sector size (logical/physical): 512B/512B
Partition Table: msdos Number Start End Size Type
Filesystem Flags //系统分区表 1
32.3kB 5346MB 5346MB primary fat32 boot //列出每一个分区 //的信息
2 5346MB 78.2GB 72.8GB extended lba
3 5346MB 7444MB 2097MB logical fat32
4 7444MB 10.6GB 5247MB logical ntfs
5 10.6GB 62.0GB 51.4GB logical ext3
6 62.0GB 63.6GB 1571MB logical
linux-swap 返回结果的
第1行是磁盘的型号:Maxtor 6Y080L0 (ide);
第2行是磁盘的大小82.0GB;
第3行是逻辑和物理扇区的大小512B;
其余的为磁盘的分区表信息。每一行分区的信息包括:分区号、分区开始位置、分区结束位置、分区大小、分区的类型(主分区、扩展分区还是逻辑分区)、分区的文件系统类型、分区的标记等信息。这个界面比fdisk更为直观,因为在这里的开始位置、结束位置和分区大小都是以KB、MB、GB为单位的,而不是block数和扇区。
2.创建分区
(parted) mklabel gpt
Warning: The existing disk label on /dev/sdb will be destroyed and all data on this
disk will be lost. Do you want to continue?
Yes/No? y
(parted)
(parted)
(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
通过mkpart指令可以创建磁盘分区,例如要创建一个开始位置为63.6GB、结束位置为65.6GB、文件系统类型为ext2的逻辑分区,可以使用如下指令。
mkpart logical ext2 63.6GB 65.6GB
如果输入mkpart指令而不带任何参数,parted会一步步提示用户输入相关信息并最终完成分区的创建,结果如下:
(parted) mkpart //输入mkpart指令创建分区
Partition type? primary/logical? logical //选择新分区的类型,主分区还是 //逻辑分区
File system type? [ext2]? ext3 //输入文件系统类型,默认为ext2 Start? 63.6GB //分区的开始位置
End? 65.6GB //分区的结束位置
(parted) print //显示最新的分区表信息
Model: Maxtor 6Y080L0 (ide) Disk /dev/hda: 82.0GB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags
//系统分区表
1 32.3kB 5346MB 5346MB primary fat32 boot
2 5346MB 78.2GB 72.8GB extended lba
3 5346MB 7444MB 2097MB logical fat32
4 7444MB 10.6GB 5247MB logical ntfs
5 10.6GB 62.0GB 51.4GB logical ext3
6 62.0GB 63.6GB 1571MB logical linux-swap
7 63.6GB 65.6GB 2032MB logical //新创建的分区 可以看到,新创建的逻辑分区为/dev/hda9,大小为2032MB。
3.创建文件系统
创建分区后,可以使用mkfs指令在分区上创建文件系统,parted目前只支持ext2文件系统,还不支持ext3,如下所示。
(parted) mkfs //创建文件系统
Warning: The existing file system will be destroyed and all data on the partition will be lost. Do you want to continue? Yes/No? Yes //确认是否要创建文件系统
Partition number? 9 //需要创建文件系统的分区
File system? [ext2]? ext2 //创建的文件系统类型,默认ext2 (parted)
(parted) print //查看更改后的分区表
Model: Maxtor 6Y080L0 (ide) Disk /dev/hda: 82.0GB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags //系统分区表
1 32.3kB 5346MB 5346MB primary fat32 boot
2 5346MB 78.2GB 72.8GB extended lba
3 5346MB 7444MB 2097MB logical fat32
4 7444MB 10.6GB 5247MB logical ntfs
5 10.6GB 62.0GB 51.4GB logical ext3
6 62.0GB 63.6GB 1571MB logical linux-swap
7 63.6GB 65.6GB 2032MB logical ext2 //文件系统一列已由空白变为ext2 由于parted目前尚不支持ext3类型的文件系统,所以如果用户需要在分区上创建ext3的文件系统,那么就需要使用其他的工具,详细请参考"8.2.1 创建文件系统"一节的内容。
4.更改分区大小
使用resize指令可以更改指定分区的大小。需要更改大小的分区上面必须是已经创建了文件系统,否则将会得到如下的提示。
Error: Could not detect file system. 在进行更改操作前,分区必须已经被卸载。例如,要把hda9的大小由2032MB减少为436MB,命令如下所示。
(parted) resize //使用resize指令更改分区大小
Partition number? 9 //选择需要更改的分区号
Start? [63.6GB]? 63.6GB //输入分区新的开始位置
End? [65.6GB]? 64GB //输入分区新的结束位置 (parted) print
//查看更改后的分区表 Model: Maxtor 6Y080L0 (ide) Disk /dev/hda: 82.0GB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags //系统分区表
1 32.3kB 5346MB 5346MB primary fat32 boot
2 5346MB 78.2GB 72.8GB extended lba
3 5346MB 7444MB 2097MB logical fat32
4 7444MB 10.6GB 5247MB logical ntfs
5 10.6GB 62.0GB 51.4GB logical ext3
6 62.0GB 63.6GB 1571MB logical linux-swap
7 63.6GB 64.0GB 436MB logical ext2 //分区大小已被更改 注意:为了保证分区上的数据安全性,一般不建议缩小分区的大小,以免分区上的数据受到损坏。
5.删除分区
使用rm指令可以删除指定的磁盘分区,在进行删除操作前必须先把分区卸载。例如要删除分区hda9,命令如下所示。
(parted) rm //输入rm指令
Partition number? 9 //选择需要删除的分区号 注意:与fdisk不同,在parted中所做的所有操作都是立刻生效的,不存在保存生效的概念,所以用户在进行删除分区这种危险度极高的操作时必须要小心谨慎。
6.选择其他设备
如果在使用parted的过程中需要对其他磁盘设备进行操作时,并不需要重新运行parted,使用select指令就可以选择其他的设备并进行操作。例如,要选择磁盘/dev/hdb进行操作,可以使用下面的命令。
(parted) select /dev/hdb Using /dev/hdb 完成后就可以对磁盘/dev/hdb进行操作。
非交互式分区方法: