如何在 Linux 中对存储设备进行分区和格式化
介绍
准备用于 Linux 系统的新磁盘是一个简单的过程。如果您有特殊需求,有许多工具、文件系统格式和分区方案可能会改变流程,但基本原理保持不变。
本指南将涵盖以下过程:
- 识别系统上的新磁盘。
- 创建一个跨越整个驱动器的分区(大多数操作系统都希望分区布局,即使只有一个文件系统存在)
- 使用 Ext4 文件系统格式化分区(大多数现代 Linux 发行版中的默认设置)
- 安装和设置启动时自动安装文件系统
第 1 步 — 安装 Parted
要对驱动器进行分区,您将使用 parted
实用程序。与低级文件系统交互所需的大多数命令在 Linux 上默认可用。创建分区的 parted
是仅有的偶尔例外之一。
如果您在 Ubuntu 或 Debian 服务器上并且没有安装 parted
,您可以通过键入以下命令来安装它:
- sudo apt update
- sudo apt install parted
如果您使用的是 RHEL、Rocky Linux 或 Fedora 服务器,则可以通过键入以下内容来安装它:
- sudo dnf install parted
本教程中使用的所有其他命令都应预先安装,以便您可以继续下一步。
第 2 步 — 识别系统上的新磁盘
在设置驱动器之前,您需要能够在服务器上正确识别它。
如果这是一个全新的驱动器,在您的服务器上识别它的一种方法是查找是否存在分区方案。如果您要求 parted
列出磁盘的分区布局,对于没有有效分区方案的任何磁盘都会产生错误。这可用于帮助识别新磁盘:
- sudo parted -l | grep Error
对于未分区的新磁盘,您应该会看到 unrecognized disk label
错误:
OutputError: /dev/sda: unrecognized disk label
您还可以使用 lsblk
命令并查找没有关联分区的正确大小的磁盘:
- lsblk
OutputNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
vda 253:0 0 20G 0 disk
└─vda1 253:1 0 20G 0 part /
注意:在进行更改之前,请记住每次重新连接到服务器时都要检查 lsblk
。 /dev/sd*
和 /dev/hd*
磁盘标识符在引导之间不一定是一致的,这意味着如果分区或格式化错误的磁盘存在一些危险您没有正确验证磁盘标识符。
考虑使用更持久的磁盘标识符,如 /dev/disk/by-uuid
、/dev/disk/by-label
或 /dev/disk/by-编号
。有关详细信息,请参阅我们的 Linux 存储概念和术语介绍一文。
当您知道内核分配给您的磁盘的名称时,您可以对驱动器进行分区。
第 3 步 — 对新驱动器进行分区
如简介中所述,您将在本指南中创建一个跨越整个磁盘的分区。
选择分区标准
为此,您首先需要指定要使用的分区标准。有两种选择:GPT 和 MBR。 GPT 是一个更现代的标准,而 MBR 在旧操作系统中得到更广泛的支持。对于典型的云服务器,GPT 是更好的选择。
要选择 GPT 标准,请使用 mklabel gpt
将您识别的磁盘传递给 parted
:
- sudo parted /dev/sda mklabel gpt
要使用 MBR 格式,请使用 mklabel msdos
:
- sudo parted /dev/sda mklabel msdos
创建新分区
选择格式后,您可以使用 parted -a
创建一个跨越整个驱动器的分区:
- sudo parted -a opt /dev/sda mkpart primary ext4 0% 100%
您可以按如下方式分解此命令:
parted -a opt
运行 parted,设置默认的最优对齐类型。/dev/sda
是您要分区的磁盘。mkpart primary ext4
使用 ext4 文件系统制作一个独立的(即可启动,而不是从另一个分区扩展)分区。0% 100%
表示这个分区应该从磁盘的开始到结束。
有关详细信息,请参阅 Parted 的手册页。
如果您检查 lsblk
,您应该会看到可用的新分区:
- lsblk
OutputNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
└─sda1 8:1 0 100G 0 part
vda 253:0 0 20G 0 disk
└─vda1 253:1 0 20G 0 part /
您现在创建了一个新分区,但尚未将其初始化为文件系统。这两个步骤之间的区别有些随意,并且是 Linux 文件系统工作方式所特有的,但它们在实践中仍然是两个步骤。
第 4 步 — 在新分区上创建文件系统
现在您有了可用的分区,您可以将其初始化为 Ext4 文件系统。 Ext4 不是唯一可用的文件系统选项,但它是单个独立 Linux 卷的最直接选项。 Windows 使用 NTFS 和 exFAT 等文件系统,但它们在其他平台上的支持有限(这意味着它们在某些情况下将是只读的,不能用作其他操作系统的启动驱动器),而 macOS 使用 HFS+ 和 APFS,有同样的警告。还有比 Ext4 更新的 Linux 文件系统,例如 ZFS 和 BTRFS,但它们提出了不同的要求,它们通常更适合多磁盘阵列。
要初始化 Ext4 文件系统,请使用 mkfs.ext4
实用程序。您可以使用 -L
标志添加分区标签。选择一个可帮助您识别此特定驱动器的名称:
注意:确保提供分区路径而不是整个磁盘的路径。在 Linux 中,磁盘的名称如 sda
、sdb
、hda
等。这些磁盘上的分区在末尾附加了一个数字。所以你会想要使用像 sda1
这样的东西,而不是 sda
。
- sudo mkfs.ext4 -L datapartition /dev/sda1
如果以后要更改分区标签,可以使用 e2label
命令:
- sudo e2label /dev/sda1 newlabel
您可以使用 lsblk
查看识别分区的所有不同方法。您应该找到分区的名称、标签和 UUID。
lsblk
的某些版本将使用 --fs
参数打印所有这些信息:
- sudo lsblk --fs
您还可以使用 lsblk -o
后跟相关选项手动指定它们:
- sudo lsblk -o NAME,FSTYPE,LABEL,UUID,MOUNTPOINT
您应该会收到这样的输出。突出显示的输出表明您可以使用不同的方法来引用新文件系统:
OutputNAME FSTYPE LABEL UUID MOUNTPOINT
sda
└─sda1 ext4 datapartition 4b313333-a7b5-48c1-a957-d77d637e4fda
vda
└─vda1 ext4 DOROOT 050e1e34-39e6-4072-a03e-ae0bf90ba13a /
记下此输出,因为您将在下一步安装文件系统时使用它。
第 5 步 — 挂载新文件系统
现在,您可以挂载文件系统以供使用。
文件系统层次结构标准建议使用 /mnt
目录或其下的子目录用于临时安装的文件系统(如可移动驱动器)。它没有建议在何处安装更多永久存储,因此您可以选择您喜欢的任何方案。对于本教程,您将在 /mnt/data
下安装驱动器。
使用 mkdir
创建该目录:
- sudo mkdir -p /mnt/data
临时挂载文件系统
您可以通过键入以下命令临时挂载文件系统:
- sudo mount -o defaults /dev/sda1 /mnt/data
开机自动挂载文件系统
为了在每次服务器启动时自动挂载文件系统,您将在 /etc/fstab
文件中添加一个条目。该文件包含有关您系统的所有永久磁盘或常规安装磁盘的信息。使用 nano
或您最喜欢的文本编辑器打开文件:
- sudo nano /etc/fstab
在最后一步中,您使用了 sudo lsblk --fs
命令来显示文件系统的标识符。您可以在此文件中使用其中任何一个。此示例使用分区 标签,但您可以使用注释掉的行中的其他两个标识符查看这些行的外观:
. . .
## Use one of the identifiers you found to reference the correct partition
# /dev/sda1 /mnt/data ext4 defaults 0 2
# UUID=4b313333-a7b5-48c1-a957-d77d637e4fda /mnt/data ext4 defaults 0 2
LABEL=datapartition /mnt/data ext4 defaults 0 2
除了 LABEL=datapartition
元素之外,这些选项的工作方式如下:
/mnt/data
是挂载磁盘的路径。ext4
表示这是一个 Ext4 分区。defaults
表示此卷应使用默认选项安装,例如读写支持。0 2
表示文件系统应在出现错误时由本地计算机验证,但作为第二
优先级,在您的根卷之后。
注意:您可以通过查看其手册页了解 /etc/fstab
文件中的各个字段。有关可用于特定文件系统类型的挂载选项的信息,请查看 man [filesystem]
(如 man ext4
)。
完成后保存并关闭文件。如果您使用的是 nano
,请按 Ctrl+X
,然后在提示确认时按 Y
,然后按 Enter
。
如果您之前没有挂载文件系统,您现在可以使用 mount -a
挂载它:
sudo mount -a
测试坐骑
安装卷后,我们应该检查以确保文件系统可以访问。
您可以在 df
命令的输出中检查磁盘是否可用。有时 df
会在 df
输出中包含关于名为 tmpfs
的临时文件系统的不必要信息,您可以通过附加 -x tmpfs来排除这些信息代码>:
- df -h -x tmpfs
OutputFilesystem Size Used Avail Use% Mounted on
/dev/vda1 20G 1.3G 18G 7% /
/dev/sda1 99G 60M 94G 1% /mnt/data
您还可以通过写入测试文件来检查磁盘是否具有读写功能:
- echo "success" | sudo tee /mnt/data/test_file
回读文件以确保写入正确执行:
- cat /mnt/data/test_file
Outputsuccess
您可以在确认新文件系统正常运行后删除该文件:
- sudo rm /mnt/data/test_file
结论
您的新驱动器现在应该已分区、格式化、安装并可以使用了。这是将原始磁盘转换为 Linux 可用于存储的文件系统的一般过程。有更复杂的分区、格式化和挂载方法,在某些情况下可能更合适,但以上是一般用途的良好起点。
接下来,您可能想了解如何使用 SSHFS 通过 SSH 挂载远程卷。