no-mtab 选项不适用于挂载

no-mtab 选项不适用于挂载

我有一个脚本尝试挂载/dev/loop0到某个挂载点,比如/mnt/mpRHEL。我使用的命令如下。

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之后总是会更新。mountman mount

传统上,mount 和 umount 程序在文件 /etc/mtab 中维护当前已挂载的文件系统的列表。这个真正的 mtab 文件仍然受支持,但在当前的 Linux 系统上,最好将其设为 /proc/mounts 的符号链接,因为用户空间中维护的常规 mtab 文件无法可靠地与命名空间、容器和其他高级 Linux 功能一起使用。

RHEL7 似乎就是这样一个系统。

文件 /etc/mtab 和 /proc/mounts 可能不匹配

...

使用内核(/proc/mounts)作为有关文件系统信息的来源。该解决方案将在RHEL7中使用。

https://bugzilla.redhat.com/show_bug.cgi?id=751691#c1>

答案2

我不建议这样做,因为读取 /etc/mtab 的内容可能会损坏,但您可以这样做:

# cd /etc
# rm mtab
# touch mtab.real
# ln -s mtab.real mtab
# reboot

systemd 似乎没有更新 mtab,因此它仍然为空。

相关内容