简介
欢迎来到 Linux 存储设备配置实验。对于任何 Linux 系统管理员来说,管理存储都是一项基本技能。当你向系统中添加新的硬盘或固态硬盘(SSD)时,它并不会立即投入使用。你必须先通过创建文件系统来准备它,然后将其挂载到目录树中,使其能够被访问。
在本实验中,你将完成添加新存储设备的完整生命周期。你将学习如何:
- 识别新挂载的磁盘。
- 在磁盘上创建标准的 Linux 文件系统(
ext4)。 - 将磁盘挂载到目录以使其可访问。
- 验证磁盘使用情况并向其写入数据。
- 安全地卸载并移除磁盘。
我们将使用 lsblk、mkfs.ext4、mount、df 和 umount 等命令。通过本实验,你将扎实掌握如何在 Linux 环境中管理基础存储设备。
挂载虚拟磁盘
在本实验环境中,系统已通过自动化设置过程为你创建了一个虚拟磁盘。这模拟了向系统添加新存储设备的过程。设置脚本会创建一个 100MB 的虚拟磁盘文件,并将其关联到一个回环设备(loop device),然后创建一个符号链接 /dev/sdb 以保持一致性。
你的第一个任务是确认操作系统能够识别这个新磁盘。lsblk(列出块设备)命令非常适合此操作。它以树状格式显示所有可用块设备的信息。
在终端中运行以下命令来列出块设备:
lsblk
你应该会看到类似下面的输出。请寻找一个 100MB 的回环设备(它可能被命名为 loop4、loop14 或其他可用的回环设备编号),该设备当前未挂载,且没有列出挂载点。
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 4K 1 loop /snap/bare/5
loop1 7:1 0 91.4M 1 loop /snap/lxd/35819
...
loop4 7:4 0 100M 0 loop
...
vda 252:0 0 40G 0 disk
├─vda1 252:1 0 1M 0 part
├─vda2 252:2 0 200M 0 part /boot/efi
└─vda3 252:3 0 39.8G 0 part /
这确认了磁盘已被系统识别,并准备好进行下一步:格式化。
如果你没有看到该回环设备,可以运行以下命令来创建它:
## 创建一个 100MB 的文件作为我们的虚拟磁盘
dd if=/dev/zero of=/tmp/disk.img bs=1M count=100 &> /dev/null
## 查找下一个可用的回环设备
LOOP_DEVICE=$(sudo losetup -f)
## 将文件关联到回环设备,模拟物理磁盘
sudo losetup $LOOP_DEVICE /tmp/disk.img
## 为实验的一致性创建符号链接
sudo ln -sf $LOOP_DEVICE /dev/sdb
然后再次运行 lsblk 命令以确认回环设备已创建。
使用 mkfs.ext4 /dev/sdb 命令格式化磁盘
在这一步中,你将格式化新磁盘。未格式化的磁盘就像一张白纸;操作系统不知道如何在其上存储文件。格式化(也称为创建文件系统)会在磁盘上写入数据结构,使其能够组织和存储文件。
我们将使用 ext4 文件系统,它是 Linux 系统中可靠且广泛使用的标准。创建 ext4 文件系统的命令是 mkfs.ext4。
警告: 此命令具有破坏性。它将擦除指定设备上的所有数据。在运行之前,请务必仔细检查设备名称。
现在,格式化 /dev/sdb 磁盘。由于这是一个修改设备的特权操作,你必须使用 sudo。
sudo mkfs.ext4 /dev/sdb
该命令将输出有关正在创建的文件系统的信息,包括 inode 和块的数量。输出内容如下所示:
mke2fs 1.46.5 (30-Dec-2021)
Creating filesystem with 25600 4k blocks and 25600 inodes
Allocating group tables: done
Writing inode tables: done
Creating journal (1024 blocks): done
Writing superblocks and filesystem accounting information: done
磁盘 /dev/sdb 现在已使用 ext4 文件系统格式化,准备好进行挂载。
将磁盘挂载到 /mnt/data 目录
在这一步中,你将使格式化后的磁盘对文件系统可见。这个过程称为“挂载”(mounting)。挂载将设备上的文件系统连接到特定的目录,即“挂载点”。一旦挂载,你就可以通过访问挂载点目录来读取和写入设备。
首先,我们需要创建一个目录作为挂载点。通常的做法是在 /mnt 下创建子目录用于临时挂载。让我们创建一个名为 /mnt/data 的目录。
sudo mkdir /mnt/data
现在,使用 mount 命令将 /dev/sdb 设备挂载到 /mnt/data 目录。语法为 sudo mount [设备] [挂载点]。
sudo mount /dev/sdb /mnt/data
如果成功,该命令执行后不会有任何输出。要验证磁盘是否已挂载,可以再次使用 lsblk 命令。
lsblk
注意在下面的输出中,回环设备(/dev/sdb 指向的设备)现在显示 /mnt/data 作为其 MOUNTPOINT。
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 4K 1 loop /snap/bare/5
loop1 7:1 0 91.4M 1 loop /snap/lxd/35819
...
loop4 7:4 0 100M 0 loop /mnt/data
...
vda 252:0 0 40G 0 disk
├─vda1 252:1 0 1M 0 part
├─vda2 252:2 0 200M 0 part /boot/efi
└─vda3 252:3 0 39.8G 0 part /
磁盘现在可以使用了。
使用 df -h 命令检查磁盘使用情况
在这一步中,你将验证挂载的磁盘是否可用并检查其剩余空间。df(disk free)命令用于报告文件系统的磁盘空间使用情况。使用 -h(--human-readable)标志可以使输出更易于阅读,以 1024 的幂(例如 K、M、G)显示大小。
运行 df -h 命令查看所有已挂载的文件系统,包括我们新挂载的磁盘:
df -h
在输出中查找对应 /dev/sdb 的行。它将显示总大小、已用空间、可用空间和挂载点。
Filesystem Size Used Avail Use% Mounted on
...
/dev/sdb 98M 2.5M 89M 3% /mnt/data
...
现在磁盘已挂载,/mnt/data 目录充当了新磁盘的根目录。让我们向其中写入一个文件以确认它工作正常。我们将使用 tee 和 sudo,因为挂载点的所有者是 root。
echo "Hello LabEx" | sudo tee /mnt/data/test.txt
你可以通过列出目录内容来验证文件是否已创建:
ls /mnt/data
输出应该显示你的新文件:
test.txt
你已经成功格式化、挂载并向新存储设备写入了数据。
卸载并移除磁盘
在最后一步中,你将学习如何安全地卸载并移除存储设备。在从系统中移除底层设备之前,卸载文件系统至关重要。这可以确保所有待处理的数据都已写入磁盘,从而防止数据丢失或损坏。
卸载文件系统的命令是 umount。你可以指定设备名称或挂载点。我们将使用挂载点。
sudo umount /mnt/data
要确认磁盘已卸载,请再次运行 lsblk。你会看到回环设备不再关联任何挂载点。
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 4K 1 loop /snap/bare/5
loop1 7:1 0 91.4M 1 loop /snap/lxd/35819
...
loop4 7:4 0 100M 0 loop
...
vda 252:0 0 40G 0 disk
├─vda1 252:1 0 1M 0 part
├─vda2 252:2 0 200M 0 part /boot/efi
└─vda3 252:3 0 39.8G 0 part /
现在文件系统已卸载,我们可以“移除”(detach)虚拟磁盘。在我们的模拟环境中,这意味着解除回环设备的关联。由于 /dev/sdb 是指向实际回环设备的符号链接,我们需要将其解析为实际的设备路径才能正确移除它。
## 通过解析符号链接来移除回环设备
sudo losetup -d $(readlink -f /dev/sdb)
## 删除符号链接
sudo rm /dev/sdb
最后,让我们清理一下,删除我们创建的挂载点目录。
sudo rmdir /mnt/data
你现在已经成功完成了添加、使用和移除存储设备的完整周期。
总结
恭喜你完成了本次实验!你已经成功掌握了在 Linux 环境中配置新存储设备的基本工作流程。
在本实验中,你练习了以下关键技能:
- 使用
lsblk命令识别新的块设备。 - 使用
mkfs.ext4在原始磁盘上创建文件系统。 - 使用
mkdir创建挂载点。 - 使用
mount命令挂载文件系统以使其可访问。 - 使用
df -h检查磁盘使用情况。 - 使用
umount命令安全地卸载文件系统。 - 使用
losetup -d移除回环设备以模拟磁盘移除。
这些是管理任何 Linux 服务器或工作站存储的基础操作。你现在可以将这些知识应用于管理真实的硬盘、SSD 或 USB 驱动器。我们鼓励你继续探索更高级的存储主题,例如逻辑卷管理(LVM)、RAID 以及不同的文件系统类型。



