如何在 Linux 上对驱动器进行分区
为了能够在 Linux 下访问,每个硬盘上必须至少有一个分区。分区是一种逻辑上分隔磁盘不同部分的方法。例如,一个 4 TB 硬盘驱动器可以有四个不同的 1 TB 分区,并且所有分区都将在操作系统下显示为单独的存储系统。或者,硬盘可以仅包含跨越整个卷的单个分区。配置完全取决于用户。
无论您为硬盘决定什么配置,设置分区都是使用操作系统时要执行的最重要和最危险的任务之一。可以创建新分区、删除分区以及缩小或扩展现有分区。在下面的部分中,我们将假设您需要向当前未分区或已包含某些分区的硬盘添加新分区。
在本教程中,我们将介绍在现有 Linux 系统上对硬盘驱动器或固态驱动器进行分区的分步说明。我们将展示全新磁盘和磁盘上已有一个或多个分区的必要步骤。您将看到命令行和 GUI 方法的步骤,因此您可以按照您最熟悉的一组说明进行操作。让我们开始吧。
在本教程中您将学习:
如何将分区添加到新的空白磁盘
如何添加、删除现有分区表以及调整现有分区表的大小
如何通过命令行对驱动器进行分区
如何通过 GUI 对驱动器进行分区
如何通过命令行在 Linux 上对驱动器进行分区
在 Linux 上对硬盘驱动器进行分区的步骤会有所不同,具体取决于您的磁盘是否已包含现有分区。例如,如果您的硬盘已包含跨越整个卷的分区,那么您首先需要缩小现有分区,以便能够向磁盘添加新分区。
在下面的分步说明中,我们将使用分区表初始化磁盘、创建新分区、检查分区对齐、调整分区大小以及删除现有分区。这应该涵盖各种场景,具体取决于您是尝试对新磁盘进行分区还是对现有分区进行分区。
使用分区表初始化设备
我们将在这些步骤中使用的设备是
/dev/sdX
。要在交互模式下运行,我们必须以root权限启动parted,将我们想要操作的设备的路径作为参数传递给命令,在本例中:$ sudo parted /dev/sdX
将打开parted 提示符:
GNU Parted 3.4 Using /dev/sdX Welcome to GNU Parted! Type 'help' to view a list of commands. (parted)
首先,需要可视化驱动器的当前状态。这将告诉我们当前分区表是什么样子,或者是否存在。因此我们将使用
print
命令:(parted) print Error: /dev/sdX: unrecognised disk label Model: VMware, VMware Virtual S (scsi) Disk /dev/sdX: 42.9GB Sector size (logical/physical): 512B/512B Partition Table: unknown Disk Flags:
如您所见,由于
/dev/sdX
不包含分区表,parted 仅向我们显示有关磁盘型号、总大小和扇区大小的信息。为了能够使用磁盘,我们需要对其进行初始化,因此我们必须在其上创建分区表。允许我们创建分区表的命令是
mklabel
。如果我们没有指定要创建什么样的分区表,parted会在提示中询问我们:(parted) mklabel New disk label type? msdos
在本例中,我们创建一个传统的
msdos
分区表。其他有效值包括“aix”、“amiga”、“bsd”、“dvh”、“gpt”、“loop”、“mac”、“pc98”和“sun”。如前所述,我们还可以将分区表的类型指定为 mklabel 命令的参数。创建分区
接下来,我们将在设备上创建第一个分区。我们需要提供分区类型(在主分区或扩展分区之间进行选择)、文件系统类型(可选)、分区起点和分区终点。同样,如果没有直接提供,则将以交互方式请求这些值。创建分区的命令是
mkpart
:(parted) mkpart Partition type? primary/extended? primary File system type? [ext2]? ext4 Start? 0% End? 100%
在此示例中,我们选择创建一个主分区,使用 ext4 文件系统进行格式化,并且让该分区跨越整个磁盘,因此它从 0% 开始,到 100% 结束。或者,您可以以 MiB 或 GiB 值而不是像我们上面那样指定百分比来指定开始和结束。
现在我们可以再次运行
print
命令来查看我们刚刚创建的分区:(parted) print Model: VMware, VMware Virtual S (scsi) Disk /dev/sdX: 42.9GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 1049kB 42.9GB 42.9GB primary ext4 lba
检查分区对齐
分区的对齐是优化性能的一个非常重要的因素。通过
parted
,我们可以检查两种类型的对齐方式:minimal
和optimal
。在最小模式下,程序检查分区是否遵守物理块的最小对齐值,而在最佳模式下,它检查分区是否与物理块大小的倍数对齐,以提供最佳性能。用于执行这些检查的命令是align-check:(parted) align-check alignment type(min/opt) [optimal]/minimal? minimal Partition number? 1 1 aligned
在交互模式下运行该命令后,系统会提示我们提供要检查的对齐类型(默认情况下使用最佳对齐方式)和分区号 (1)。在这种情况下,parted 确认分区已正确对齐。
调整分区大小
调整分区大小也是一个非常危险的操作,特别是当分区已经包含文件系统时。请注意,当更改分区的大小时,
parted
永远不会使文件系统适应它,因此,尤其是在收缩时,您必须首先使用专用工具来调整正在使用的文件系统的大小。用于执行分区大小调整的命令是resizepart
。我们的分区大小目前消耗了 100% 的磁盘;例如,如果我们想将其扩展为仅覆盖设备的 50%,我们可以输入:(parted) resizepart Partition number? 1 End? [42.9GB]? 50% Warning: Shrinking a partition can cause data loss, are you sure you want to continue? Yes/No? yes
该分区现在仅覆盖设备上的一半空间。
删除分区
删除分区也同样简单。显然,我们应该非常谨慎地执行这样的操作。在这种情况下使用的命令是 rm:
(parted) rm Partition number? 1
警告
没有确认提示,因此在运行此命令来销毁现有分区之前请三思。要在退出
parted
之前确认更改,请使用print
命令,然后使用quit
退出parted:(parted) print
和 :
(parted) quit
如何通过 GUI 在 Linux 上对驱动器进行分区
有许多 GUI 程序也可用于在 Linux 上创建或编辑硬盘分区。在本教程中,我们将重点介绍使用 gparted
,顾名思义,它是我们上面使用的命令行 parted
工具的 GUI 版本。
您可以使用下面适当的命令通过系统的包管理器安装 gparted。
要在 Ubuntu、Debian 和 Linux Mint 上安装 gparted:
$ sudo apt install gparted
要在 Fedora、CentOS、AlmaLinux 和 Red Hat 上安装 gparted:
$ sudo dnf install gparted
要在 Arch Linux 和 Manjaro 上安装 gparted:
$ sudo pacman -S gparted
安装完成后,请按照以下步骤使用 gparted 创建、调整大小和删除分区:
首先在桌面环境的应用程序启动器中搜索 gparted 应用程序。打开程序时,系统将提示您输入 root 密码。
我们需要做的第一件事是从右上角选择我们将使用的正确设备。在我们的测试系统上,这将是
/dev/sdb
,如下面的屏幕截图所示。创建新分区
如您所见,您的磁盘当前没有分区。让我们通过转到“设备”>“创建分区表”来添加一个。
接下来,选择您要创建的分区类型。我们将在教程中坚持使用
msdos
,但也可以随意选择其他内容。对于大小大于 2 TB 的硬盘,建议使用 GPT。现在分区表已经创建,我们可以继续向硬盘添加新分区。可以通过前往“分区”>“新建”找到此选项。
在此菜单上,我们可以选择新分区的大小。无需使用精确值,您可以随意使用鼠标滑块来配置您想要的大小。对于我们的示例,我们将简单地创建一个跨越整个硬盘大小的分区。准备好继续后,单击“添加”。
注意
ext4
是推荐在 Linux 系统上使用的文件系统,除非您有特殊原因需要使用其他类型的磁盘进行格式化。更改尚未写入磁盘,但我们可以在预览窗格中看到我们将要应用的配置。准备就绪后,单击“编辑”>“应用所有操作”。
调整分区大小
单击“分区”>“调整大小”以调整当前选定分区的大小。
输入分区的新起点和终点。或者,只需使用滑块来调整分区的大小。在这种情况下,我们会将分区缩小到大约一半大小。
您可以看到我们所做的新更改。要完成写入,请单击“编辑”>“应用所有操作”。
删除分区
要删除分区,只需在 gparted 中选择它并导航到“分区”>“删除”。完成后,单击“编辑”>“应用所有操作”以确认更改。
结束语
在本教程中,我们了解了如何在 Linux 系统上通过命令行和 GUI 对硬盘驱动器进行分区。管理分区是一项危险的任务,执行时应格外小心。事实证明,命令行和 GUI 都是管理分区的可行方法,尤其是在 parted
和 gparted
的情况下,它们是密切相关的工具。