9 个 Linux Parted 命令示例

举报
Tiamo_T 发表于 2022/05/17 06:37:26 2022/05/17
【摘要】 Parted 是一个 GNU 实用程序,用于操作硬盘分区。

Parted 是一个 GNU 实用程序,用于操作硬盘分区。

使用 parted,您可以添加、删除和编辑分区以及位于这些分区上的文件系统。您还可以克隆分区。

本文解释了 9 个实用的 parted 命令示例。

1.选择要分区的硬盘

当您执行不带任何参数的 parted 命令时,默认情况下它会选择系统上可用的第一个硬盘驱动器。

在以下示例中,它自动选择 /dev/sda,因为它是该系统中的第一个硬盘驱动器。

# parted 
GNU Parted 2.3
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)

要选择不同的硬盘,请使用如下所示的选择命令。


(parted) select /dev/sdb

当找不到给定的硬盘名称时,它将抛出以下错误消息。

Error: Error opening /dev/sdb: No medium found                            
Retry/Cancel? y

2.使用打印显示所有分区

使用 print 命令,您可以查看所选硬盘中所有可用的分区。打印命令还显示硬盘属性,如型号、大小、扇区大小和分区表,如下所示。

(parted) print
Model: ATA WDC WD5000BPVT-7 (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos

Number  Start   End     Size    Type      File system     Flags
 1      1049kB  106MB   105MB   primary   fat16           diag
 2      106MB   15.8GB  15.7GB  primary   ntfs            boot
 3      15.8GB  266GB   251GB   primary   ntfs
 4      266GB   500GB   234GB   extended
 5      266GB   269GB   2682MB  logical   ext4
 7      269GB   270GB   524MB   logical   ext4
 8      270GB   366GB   96.8GB  logical                   lvm
 6      366GB   370GB   3999MB  logical   linux-swap(v1)
 9      370GB   500GB   130GB   logical   ext4

3. 使用 mkpart 在选定的 HDD 中创建主分区

mkpart 命令用于创建具有 START 和 END 磁盘位置的主分区或逻辑分区。下面的示例创建大小约为 15GB 的分区。传递给 mkpart 命令的 START 和 END 点以 MB 为单位。

(parted) mkpart primary 106 16179

您还可以在分区上启用引导选项,如下所示。Linux 为主分区保留 1-4 或 1-3 分区号,扩展分区从 5 号开始。

(parted) set 1 boot on

4. 使用 mkpart 在选定的 HDD 中创建逻辑分区

使用 mkpart 命令创建一个特定大小的新分区。这将创建特定类型的分区,例如主分区、逻辑分区或扩展分区,而无需创建文件系统。

在创建分区之前,执行打印命令查看当前布局。

(parted) print                                                           
Model: ATA WDC WD5000BPVT-7 (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos

Number  Start   End     Size    Type      File system     Flags
 1      1049kB  106MB   105MB   primary   fat16           diag
 2      106MB   15.8GB  15.7GB  primary   ntfs            boot
 3      15.8GB  266GB   251GB   primary   ntfs
 4      266GB   500GB   234GB   extended
 5      266GB   316GB   50.0GB  logical   ext4
 6      316GB   324GB   7999MB  logical   linux-swap(v1)
 7      324GB   344GB   20.0GB  logical   ext4
 8      344GB   364GB   20.0GB  logical   ext2

使用 mkpart 创建一个大小为 127GB 的新逻辑分区,如下所示。

(parted) mkpart logical 372737 500000

执行打印命令查看新布局,如下图所示。

(parted) print
Model: ATA WDC WD5000BPVT-7 (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos

Number  Start   End     Size    Type      File system     Flags
 1      1049kB  106MB   105MB   primary   fat16           diag
 2      106MB   15.8GB  15.7GB  primary   ntfs            boot
 3      15.8GB  266GB   251GB   primary   ntfs
 4      266GB   500GB   234GB   extended
 5      266GB   316GB   50.0GB  logical   ext4
 6      316GB   324GB   7999MB  logical   linux-swap(v1)
 7      324GB   344GB   20.0GB  logical   ext4
 8      344GB   364GB   20.0GB  logical   ext2
 9      373GB   500GB   127GB   logical

(parted)

5. 使用 mkfs 在分区上创建文件系统

如果使用fdisk 命令对硬盘进行分区,则需要退出 fdisk 实用程序,并使用 mkfs 外部程序在分区上创建文件系统。

但是,使用 parted 实用程序,您还可以创建文件系统。使用 parted 的 mkfs 命令在分区上创建文件系统。执行此操作时应小心,因为分区中的所有现有数据将在文件系统创建期间丢失。parted 中支持的文件系统有 ext2、mips、fat16、fat32、linux-swap、reiserfs(如果安装了 libreiserfs)。

让我们将分区号 8 的文件系统(如下面的打印输出所示)从 ext4 更改为 ext2 文件系统。

(parted) print                                                            
Model: ATA WDC WD5000BPVT-7 (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos

Number  Start   End     Size    Type      File system     Flags
 1      1049kB  106MB   105MB   primary   fat16           diag
 2      106MB   15.8GB  15.7GB  primary   ntfs            boot
 3      15.8GB  266GB   251GB   primary   ntfs
 4      266GB   500GB   234GB   extended
 5      266GB   316GB   50.0GB  logical   ext4
 6      316GB   324GB   7999MB  logical   linux-swap(v1)
 7      324GB   344GB   20.0GB  logical   ext4
 8      344GB   364GB   20.0GB  logical   ext4
 9      364GB   500GB   136GB   logical   ext4

如下图,使用 mkfs 命令更改分区号 8 的文件系统类型。 mkfs 命令会提示您输入分区号和文件系统类型。

(parted) mkfs 
WARNING: you are attempting to use parted to operate on (mkfs) a file system.
parted's file system manipulation code is not as robust as what you'll find in
dedicated, file-system-specific packages like e2fsprogs.  We recommend
you use parted only to manipulate partition tables, whenever possible.
Support for performing most operations on most types of file systems
will be removed in an upcoming release.
Warning: The existing file system will be destroyed and all data on the   
partition will be lost. Do you want to continue?
Yes/No? y                                                                 
Partition number? 8                                                       
File system type?  [ext2]? ext2

再次执行打印命令,确认分区号 8 的文件系统类型已更改为 ex2。

(parted) print                                                            
Model: ATA WDC WD5000BPVT-7 (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos

Number  Start   End     Size    Type      File system     Flags
 1      1049kB  106MB   105MB   primary   fat16           diag
 2      106MB   15.8GB  15.7GB  primary   ntfs            boot
 3      15.8GB  266GB   251GB   primary   ntfs
 4      266GB   500GB   234GB   extended
 5      266GB   316GB   50.0GB  logical   ext4
 6      316GB   324GB   7999MB  logical   linux-swap(v1)
 7      324GB   344GB   20.0GB  logical   ext4
 8      344GB   364GB   20.0GB  logical   ext2
 9      364GB   500GB   136GB   logical   ext4

(parted)

6. 使用 mkpartfs 一起创建分区和文件系统

使用 mkpartfs parted 命令,您还可以创建具有特定文件系统的分区。这类似于 mkpart,但具有在分区上创建文件系统的附加功能。

mkpartfs 之前是分区的布局。

(parted) print                                                            
Model: ATA WDC WD5000BPVT-7 (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos

Number  Start   End     Size    Type      File system     Flags
 1      1049kB  106MB   105MB   primary   fat16           diag
 2      106MB   15.8GB  15.7GB  primary   ntfs            boot
 3      15.8GB  266GB   251GB   primary   ntfs
 4      266GB   500GB   234GB   extended
 5      266GB   316GB   50.0GB  logical   ext4
 6      316GB   324GB   7999MB  logical   linux-swap(v1)
 7      324GB   344GB   20.0GB  logical   ext4
 8      344GB   364GB   20.0GB  logical

在以下示例中,mkpartfs 将创建一个大小为 127GB 的新 fat32 分区。

(parted) mkpartfs logical fat32 372737 500000
WARNING: you are attempting to use parted to operate on (mkpartfs) a file system.
parted's file system manipulation code is not as robust as what you'll find in
dedicated, file-system-specific packages like e2fsprogs.  We recommend
you use parted only to manipulate partition tables, whenever possible.
Support for performing most operations on most types of file systems
will be removed in an upcoming release.

如下所示,分区号 9 已成功创建。

(parted) print                                                            
Model: ATA WDC WD5000BPVT-7 (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos

Number  Start   End     Size    Type      File system     Flags
 1      1049kB  106MB   105MB   primary   fat16           diag
 2      106MB   15.8GB  15.7GB  primary   ntfs            boot
 3      15.8GB  266GB   251GB   primary   ntfs
 4      266GB   500GB   234GB   extended
 5      266GB   316GB   50.0GB  logical   ext4
 6      316GB   324GB   7999MB  logical   linux-swap(v1)
 7      324GB   344GB   20.0GB  logical   ext4
 8      344GB   364GB   20.0GB  logical
 9      373GB   500GB   127GB   logical   fat32           lba

(parted)

7. 使用 resize 将分区从一种大小调整为另一种大小

使用 resize parted 命令,您可以增加或减少分区的分区大小,如下例所示。

(parted) resize 9                                                         
WARNING: you are attempting to use parted to operate on (resize) a file system.
parted's file system manipulation code is not as robust as what you'll find in
dedicated, file-system-specific packages like e2fsprogs.  We recommend
you use parted only to manipulate partition tables, whenever possible.
Support for performing most operations on most types of file systems
will be removed in an upcoming release.
Start?  [373GB]? 373GB                                                    
End?  [500GB]? 450GB

如上所示,当您尝试做一些危险的事情时(即:rm、resize、mkfs),parted 命令总是会发出警告。

分区 9 的大小实际上从 127GB 减少到了 77GB。使用如下所示的打印命令验证分区的大小是否正确调整。

(parted) print                                                            
Model: ATA WDC WD5000BPVT-7 (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos

Number  Start   End     Size    Type      File system     Flags
 1      1049kB  106MB   105MB   primary   fat16           diag
 2      106MB   15.8GB  15.7GB  primary   ntfs            boot
 3      15.8GB  266GB   251GB   primary   ntfs
 4      266GB   500GB   234GB   extended
 5      266GB   316GB   50.0GB  logical   ext4
 6      316GB   324GB   7999MB  logical   linux-swap(v1)
 7      324GB   344GB   20.0GB  logical   ext4
 8      344GB   364GB   20.0GB  logical
 9      373GB   450GB   77.3GB  logical   fat32           lba

Parted 允许您为命令键入明确的缩写,例如用于打印的“p”、用于选择的“sel”等。

8. 使用 cp 将数据从一个分区复制到另一个分区

可以使用 cp 命令将一个分区中的全部数据复制到另一个分区。您还应该记住,目标的内容将在复制开始之前被删除。确保目标分区有足够的大小来保存来自源分区的数据。

使用“p”命令(打印)显示当前分区布局。

(parted) p
Model: ATA WDC WD5000BPVT-7 (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos

Number  Start   End     Size    Type      File system     Flags
 1      1049kB  106MB   105MB   primary   fat16           diag
 2      106MB   15.8GB  15.7GB  primary   ntfs            boot
 3      15.8GB  266GB   251GB   primary   ntfs
 4      266GB   500GB   234GB   extended
 5      266GB   316GB   50.0GB  logical   ext4
 6      316GB   324GB   7999MB  logical   linux-swap(v1)
 7      324GB   344GB   20.0GB  logical   ext4
 8      344GB   364GB   20.0GB  logical   ext2
 9      373GB   450GB   77.3GB  logical   fat32           lba
10      461GB   500GB   39.2GB  logical   ext2

建议在进行复制之前卸载源分区和目标分区。在本例中,我们要将内容从分区 8 复制到分区 10。

下面是复制前对应分区的内容。

# mount /dev/sda8 /mnt
# cd /mnt
# ls -l
total 52
-rw-r--r-- 1 root root     0 2011-09-26 22:52 part8
-rw-r--r-- 1 root root    20 2011-09-26 22:52 test.txt

# umount /mnt
# mount /dev/sda10 /mnt
# cd /mnt
# ls -l
total 48
-rw-r--r-- 1 root root     0 2011-09-26 22:52 part10

使用 parted cp 命令将分区 8 复制到分区 10,如下所示。

(parted) cp 8 10
WARNING: you are attempting to use parted to operate on (cp) a file system.
parted's file system manipulation code is not as robust as what you'll find in
dedicated, file-system-specific packages like e2fsprogs.  We recommend
you use parted only to manipulate partition tables, whenever possible.
Support for performing most operations on most types of file systems
will be removed in an upcoming release.
growing file system... 95%      (time left 00:38)error: block relocator should have relocated 517

下面是复制后分区10的内容。如下所示,分区 8 的内容被复制(覆盖)到分区 10。

# mount /dev/sda10 /mnt
# cd /mnt
# ls -l
total 52
-rw-r--r-- 1 root root     0 2011-09-26 22:52 part8
-rw-r--r-- 1 root root    20 2011-09-26 22:52 test.txt

注意:当你跨不同文件系统的分区(例如 src : ext2 和 dst : ext4)进行复制时,目标分区的文件系统实际上会转换为源分区的文件系统(即:ext2)。

9. 使用 rm 从选定的硬盘中删除分区

要删除不需要或未使用的分区,请使用 parted rm 命令并指定分区号,如下所示。

(parted) rm
Partition number? 9                                                       
(parted)

在上面的 rm 命令之后,删除了 9 号分区,打印命令会显示 /dev/sda 磁盘中的可用分区列表,如下图所示。

(parted) print                                                            
Model: ATA WDC WD5000BPVT-7 (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos

Number  Start   End     Size    Type      File system     Flags
 1      1049kB  106MB   105MB   primary   fat16           diag
 2      106MB   15.8GB  15.7GB  primary   ntfs            boot
 3      15.8GB  266GB   251GB   primary   ntfs
 4      266GB   500GB   23GB   extended
 5      266GB   316GB   50.0GB  logical   ext4
 6      316GB   324GB   7999MB  logical   linux-swap(v1)
 7      324GB   344GB   20.0GB  logical   ext4
 8      344GB   364GB   20.0GB  logical   ext2
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。