在 Linux 中创建和删除分区是一种常见的做法,因为存储设备(例如硬盘驱动器和 USB 驱动器)在使用前必须以某种方式进行结构化。在大多数情况下,大型存储设备被划分为称为分区的独立部分。分区还允许您将硬盘驱动器划分为隔离的部分,其中每个部分都充当自己的硬盘驱动器。如果您运行多个操作系统,分区尤其有用。
在 Linux 中,有很多强大的工具可以用于创建、删除和以其他方式操作磁盘分区。在本文中,我将解释如何使用 parted
命令,该命令对于大型磁盘设备和许多磁盘分区尤其有用。parted
与更常见的 fdisk
和 cfdisk
命令之间的区别包括
- GPT 格式:
parted
命令可以创建全局唯一标识符分区表 GPT),而fdisk
和cfdisk
仅限于 DOS 分区表。 - 更大的磁盘: DOS 分区表最多可以格式化 2TB 的磁盘空间,尽管在某些情况下最多可以达到 16TB。但是,GPT 分区表可以寻址高达 8ZiB 的空间。
- 更多分区: 使用主分区和扩展分区,DOS 分区表仅允许 16 个分区。使用 GPT,默认情况下您可以获得多达 128 个分区,并且可以选择拥有更多分区。
- 可靠性: DOS 分区中仅存储分区表的一个副本。GPT 保留分区表的两个副本(在磁盘的开头和结尾)。GPT 还使用 CRC 校验和来检查分区表完整性,而 DOS 分区则不执行此操作。
随着当今磁盘越来越大以及在处理它们时需要更高的灵活性,建议使用 parted
来处理磁盘分区。在大多数情况下,磁盘分区表是在操作系统安装过程中创建的。当向现有系统添加存储设备时,直接使用 parted
命令最有用。
尝试使用“parted”
以下内容解释了使用 parted
命令分区存储设备的过程。要尝试这些步骤,我强烈建议使用全新的存储设备,或者您不介意擦除其内容的设备。
1. 列出分区: 使用 parted -l
来识别您要分区的存储设备。通常,第一个硬盘 (/dev/sda
或 /dev/vda
) 将包含操作系统,因此请查找另一个磁盘以找到您想要的磁盘(例如,/dev/sdb
、/dev/sdc
、/dev/vdb
、/dev/vdc
等)。
$ sudo parted -l
[sudo] password for daniel:
Model: ATA RevuAhn_850X1TU5 (scsi)
Disk /dev/vdc: 512GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 525MB 524MB primary ext4 boot
2 525MB 512GB 512GB primary lvm
2. 打开存储设备: 使用 parted
开始处理选定的存储设备。在本例中,该设备是虚拟系统上的第三个磁盘 (/dev/vdc
)。指示您要使用的特定设备非常重要。如果您仅输入 parted
而不带设备名称,它将随机选择一个存储设备进行修改。
$ sudo parted /dev/vdc
GNU Parted 3.2
Using /dev/vdc
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)
3. 设置分区表: 将分区表类型设置为 GPT,然后键入“Yes”以接受它。
(parted) mklabel gpt
Warning: the existing disk label on /dev/vdc will be destroyed
and all data on this disk will be lost. Do you want to continue?
Yes/No? Yes
mklabel
和 mktable
命令用于相同的目的(在存储设备上创建分区表)。支持的分区表有:aix、amiga、bsd、dvh、gpt、mac、ms-dos、pc98、sun 和 loop。请记住,mklabel
不会创建分区,而是创建分区表。
4. 查看分区表: 显示有关存储设备的信息。
(parted) print
Model: Virtio Block Device (virtblk)
Disk /dev/vdc: 1396MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
5. 获取帮助: 要了解如何创建新分区,请键入:(parted) help mkpart
。
(parted) help mkpart
mkpart PART-TYPE [FS-TYPE] START END make a partition
PART-TYPE is one of: primary, logical, extended
FS-TYPE is one of: btrfs, nilfs2, ext4, ext3, ext2, fat32, fat16, hfsx, hfs+, hfs, jfs, swsusp,
linux-swap(v1), linux-swap(v0), ntfs, reiserfs, hp-ufs, sun-ufs, xfs, apfs2, apfs1, asfs, amufs5,
amufs4, amufs3, amufs2, amufs1, amufs0, amufs, affs7, affs6, affs5, affs4, affs3, affs2, affs1,
affs0, linux-swap, linux-swap(new), linux-swap(old)
START and END are disk locations, such as 4GB or 10%. Negative values count from the end of the
disk. For example, -1s specifies exactly the last sector.
'mkpart' makes a partition without creating a new file system on the partition. FS-TYPE may be
specified to set an appropriate partition ID.
6. 创建分区: 要创建新分区(在本例中,分区 0 上为 1,396MB),请键入以下内容
(parted) mkpart primary 0 1396MB
Warning: The resulting partition is not properly aligned for best performance
Ignore/Cancel? I
(parted) print
Model: Virtio Block Device (virtblk)
Disk /dev/vdc: 1396MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 17.4kB 1396MB 1396MB primary
文件系统类型 (fstype) 不会在 /dev/vdc1
上创建 ext4 文件系统。DOS 分区表的分区类型为主分区、逻辑分区和扩展分区。在 GPT 分区表中,分区类型用作分区名称。在 GPT 下提供分区名称是必须的;在上面的示例中,primary 是名称,而不是分区类型。
7. 保存并退出: 当您退出 parted
时,更改会自动保存。要退出,请键入以下内容
(parted) quit
Information: You may need to update /etc/fstab.
$
明智之言
添加新存储设备时,请务必在开始更改其分区表之前识别正确的磁盘。如果您错误地更改了包含计算机操作系统的磁盘分区,则可能会使您的系统无法启动。
评论已关闭。