调整分区的大小
调整分区的大小也是一个非常危险的操作,特别是如果分区已经包含了文件系统。
用于调整分区大小的命令是resizepart
。
(parted) resizepart Partition number? 1 End? [1075MB]? 100%
创建分区
现在,让我们在设备上创建我们的第一个分区:我们必须提供“”,,“(可选)”,“。
再次如果没有直接提供,那么这些值将交互方式。
创建分区的命令是“mkpart”:
(parted) mkpart Partition type? primary/extended? primary 选择分区类型 File system type? [ext2]? 文件系统类型 Start? 1MiB 分区起始点和分区终点 End? 1025MiB
在非交互式模式下运行:
$sudo parted -s /dev/sdb mkpart primary 1MiB 1025MiB
再次运行print命令,我们可以看到刚刚创建的分区:
(parted) print Model: Generic- SD/MMC/MS PRO (scsi) Disk /dev/sdb: 7743MB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 1049kB 1075MB 1074MB primary
删除分区
使用rm命令删除分区
(parted) rm Partition number? 1
如何使用Linux上的GNU Parted分区管理器管理分区。
用分区表初始化设备
首先查看驱动器的当前状态。
以“交互模式”运行parted(需要root权限):
$sudo parted /dev/sdb
将打开parted提示符:
GNU Parted 3.2 Using /dev/sdb Welcome to GNU Parted! Type 'help' to view a list of commands. (parted)
可以使用help命令查看可以使用的命令。
查看驱动器的当前状态,使用“print”命令:
Error: /dev/sdb: unrecognised disk label Model: Generic- SD/MMC/MS PRO (scsi) Disk /dev/sdb: 7743MB Sector size (logical/physical): 512B/512B Partition Table: unknown Disk Flags:
由于 /dev/sdb
不包含分区表,所以只显示有关磁盘模型,总大小和扇区大小的信息。
因此我们必须在其上创建分区表。
执行命令是mklabel
。
如果命令未指定我们要创建哪个分区表,则parted将在提示符下提问:
(parted) mklabel New disk label type? msdos
在本例中,我们创建了一个传统的msdos分区表。其他有效值包括“aix”、“amiga”、“bsd”、“dvh”、“gpt”、“loop”、“mac”、“pc98”和“sun”。
如前所述,我们还可以将分区表的类型指定为mklabel命令的参数:
(parted) mklabel msdos
如果要以非交互方式执行相同的操作,使用“-s”选项(--script
的缩写):
$sudo parted -s /dev/sdb mklabel msdos
检查分区对齐
分区的对齐是优化性能的一个非常重要的因素
在分开中,我们可以检查两种类型的对齐,“minimal(最小)”和“optimal(最佳)”。
在最小模式中,程序检查分区对物理块的最小对准值,
而在最佳模式下,检查分区是否与物理块大小的倍数对齐,以提供最佳性能。
用于执行这些检查的命令是align-check
:
(parted) align-check alignment type(min/opt) [optimal]/minimal? Partition number? 1 1 aligned
在交互模式下运行命令后,系统将提示我们提供要检查的对齐类型(默认情况下最佳)和分区号(1)。
在这种情况下,parted确认分区正确对齐。
命令的非交互式版本是:
$sudo parted -s /dev/sdb align-check optimal 1
如何知道上面的命令是否成功,通过检查其退出代码:
$echo $? 0
输出0表示命令执行成功