配置持久化挂载

LinuxBeginner
立即练习

介绍

除非系统配置了持久化挂载,否则手动挂载在重启后会失效。在 Linux 中,/etc/fstab 文件定义了系统启动时或执行 mount -a 命令时需要挂载的文件系统。一个正确的条目需要包含源路径、挂载点、文件系统类型、挂载选项以及 dump 和 fsck 检查字段。

在本实验中,你将配置一个安全的实验专用持久化挂载。实验环境已在 /home/labex/project/persistent-disk.img 中准备好了一个 ext4 文件系统。你将向 /etc/fstab 添加一行配置,使用 loop 选项将该镜像挂载到 /home/labex/project/persistent-mount,然后通过 mount -a 进行验证。在此过程中,你不会修改任何现有的系统挂载条目。

检查准备好的文件系统

在这一步中,你将在修改 /etc/fstab 之前检查准备好的文件系统镜像和挂载点。在确认源路径和目标路径后再进行持久化挂载会更安全。

进入项目目录。

cd /home/labex/project

检查镜像文件和挂载目录。

ls -lh persistent-disk.img
ls -ld persistent-mount

读取当前的 /etc/fstab。此时,你仅需查看该文件,以便在添加实验专用条目之前了解现有的系统挂载配置。

cat /etc/fstab

向 fstab 添加实验条目

在这一步中,你将添加一个持久化挂载条目。/etc/fstab 中的一行包含六个字段:源路径、挂载点、文件系统类型、选项、dump 标志以及文件系统检查顺序。

在编辑之前,先备份 /etc/fstab。在实际的系统管理工作中,备份文件可以让你在需要时进行对比或恢复。

sudo cp /etc/fstab /etc/fstab.lab40.bak

追加实验专用条目。源路径为镜像文件,目标为 persistent-mount,类型为 ext4,选项中包含 loop 以便通过回环设备挂载文件。nofail 选项可以防止该实验条目被视为关键的启动文件系统。

printf '/home/labex/project/persistent-disk.img /home/labex/project/persistent-mount ext4 loop,nofail,rw 0 0\n' | sudo tee -a /etc/fstab >/dev/null

查看你添加的条目。

grep -F '/home/labex/project/persistent-mount' /etc/fstab

从 fstab 进行挂载

在这一步中,你将使用 /etc/fstab 而不是在 mount 命令中手动指定源设备。mount -a 命令会要求 Linux 挂载 /etc/fstab 中尚未挂载的所有条目。

运行 mount -a。如果命令执行成功,通常不会有任何输出,这是正常现象。

sudo mount -a

检查挂载路径。

findmnt -T persistent-mount

检查文件系统容量。

df -h persistent-mount

验证持久化挂载的写入功能

在这一步中,你将证明挂载的文件系统是可用的。只有当目标路径表现得如同你预期的文件系统一样时,挂载才算真正完成。

将挂载文件系统的所有权赋予 labex 用户。

sudo chown labex:labex persistent-mount

在挂载的文件系统上创建一个测试文件。

printf 'persistent mount ok\n' > persistent-mount/persistent.txt

读取文件内容。

cat persistent-mount/persistent.txt

再次确认测试文件位于挂载路径下。

findmnt -T persistent-mount/persistent.txt

总结

你成功配置了一个持久化挂载,且未改动任何现有的系统挂载配置。你检查了预备好的 ext4 镜像和挂载点,备份了 /etc/fstab,使用 loop 和 nofail 选项追加了实验专用条目,通过 mount -a 进行了挂载,并使用 findmnt 和 df 检查了文件系统,最后写入了一个测试文件。这为你接下来的故障排除实验打下了基础,在后续实验中,错误的挂载配置将成为你需要诊断的问题。