如何在 Linux 中分区磁盘

学习如何使用“parted”命令在 Linux 中分区存储设备。
282 位读者喜欢这篇文章。
Storage units side by side

Scott Meyers。由 Opensource.com 修改。CC BY-SA 2.0。

在 Linux 中创建和删除分区是一种常见的做法,因为存储设备(例如硬盘驱动器和 USB 驱动器)在使用前必须以某种方式进行结构化。在大多数情况下,大型存储设备被划分为称为分区的独立部分。分区还允许您将硬盘驱动器划分为隔离的部分,其中每个部分都充当自己的硬盘驱动器。如果您运行多个操作系统,分区尤其有用。

在 Linux 中,有很多强大的工具可以用于创建、删除和以其他方式操作磁盘分区。在本文中,我将解释如何使用 parted 命令,该命令对于大型磁盘设备和许多磁盘分区尤其有用。parted 与更常见的 fdiskcfdisk 命令之间的区别包括

  • GPT 格式: parted 命令可以创建全局唯一标识符分区表 GPT),而 fdiskcfdisk 仅限于 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

mklabelmktable 命令用于相同的目的(在存储设备上创建分区表)。支持的分区表有: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. 
$

明智之言

添加新存储设备时,请务必在开始更改其分区表之前识别正确的磁盘。如果您错误地更改了包含计算机操作系统的磁盘分区,则可能会使您的系统无法启动。

标签
danieloh
技术营销、开发者倡导者、CNCF 大使、公共演讲者、已出版作者、Quarkus、Red Hat Runtimes

评论已关闭。

© . All rights reserved.