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 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
返回结果的第1行是磁盘的型号:Maxtor 6Y080L0 (ide);第2行是磁盘的大小82.0GB;第3行是逻辑和物理扇区的大小512B;其余的为磁盘的分区表信息。每一行分区的信息包括:分区号、分区开始位置、分区结束位置、分区大小、分区的类型(主分区、扩展分区还是逻辑分区)、分区的文件系统类型、分区的标记等信息。这个界面比fdisk更为直观,因为在这里的开始位置、结束位置和分区大小都是以KB、MB、GB为单位的,而不是block数和扇区。
2.创建分区
通过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进行操作。