我有一个脚本尝试挂载/dev/loop0
到某个挂载点,比如/mnt/mp
RHEL。我使用的命令如下。
mount /dev/loop0 /mnt/mp --no-mtab -o ro
这不应该在 中创建任何条目/etc/mtab
。在 RHEL 6 之前此命令可以正常工作,但在 RHEL 7 上此命令会在/etc/mtab
.可能是什么原因?如何在 RHEL 7 上抑制它?
答案1
在现代系统上,/etc/mtab 是 /proc/mounts 的符号链接。 /proc/mounts 是内核提供的虚拟文件,显示所有挂载的当前状态。因此在任何操作/proc/mounts
之后总是会更新。mount
看man mount
。
传统上,mount 和 umount 程序在文件 /etc/mtab 中维护当前已挂载的文件系统的列表。这个真正的 mtab 文件仍然受支持,但在当前的 Linux 系统上,最好将其设为 /proc/mounts 的符号链接,因为用户空间中维护的常规 mtab 文件无法可靠地与命名空间、容器和其他高级 Linux 功能一起使用。
RHEL7 似乎就是这样一个系统。
文件 /etc/mtab 和 /proc/mounts 可能不匹配
...
使用内核(/proc/mounts)作为有关文件系统信息的来源。该解决方案将在RHEL7中使用。
答案2
我不建议这样做,因为读取 /etc/mtab 的内容可能会损坏,但您可以这样做:
# cd /etc
# rm mtab
# touch mtab.real
# ln -s mtab.real mtab
# reboot
systemd 似乎没有更新 mtab,因此它仍然为空。