题 如何在不重启的情况下验证fstab?


我修改了 /etc/fstab

我验证了新设备,我可以安装它们 mount 命令。

我如何验证对其所做的修改 /etc/fstab ?


77
2017-08-25 02:51






答案:


你可以简单地运行: mount -a

-一个       挂载fstab中提到的所有文件系统(给定类型)。

此命令将挂载fstab中提到的所有(尚未安装的)文件系统,并在引导期间用于系统脚本启动。


104
2017-08-25 02:57



...并在完成“sudo mount -a”后将其与/ etc / mtab进行比较,以确保所有选项都得到兑现。 - adebaumann
mount -a 通过重读 /etc/fstab 也会重新加载 /etc/mtab 所以他应该没事。 - Prix
这不是阿德鲍曼试图在这里提出的观点吗? mount -a可能会返回成功,但并不一定意味着所有特定的挂载选项都已得到兑现。既然这也会重新加载/ etc / mtab,你应该查看是否所有选项都正常? - RapidWebs


mount命令需要一个 --fake 要么 -f 简而言之。以下命令应该满足您的需求:

mount -fav

以下是文档中的内容 -f 选项:

Causes everything to be done except for the actual system call; if it's not obvious, this ``fakes'' mounting the filesystem. This option is useful in conjunction with the -v flag to determine what the mount command is trying to do.


44
2018-05-19 06:22



mount -fav不检查具有指定UUID的设备是否实际在系统中。还有人想将-f与-n结合起来不污染/ etc / mtab - Alexandr Priymak
我喜欢 mount --fake -a 但似乎又回来了 exit code($?)=0 总是。嗯.. - kujiy


我发现这个/问题/但解决方案不符合我的要求。

当使用/ etc / fstab中的任何无效条目重新引导时,例如缺少fsck无法检查的文件系统;系统将无法启动。如果你有一个无头盒子,这可能会更难处理。

这是我检查/ etc / fstab以避免此引导问题的解决方案:

    # cat /usr/local/bin/check-fstab-uuid-entries.sh
    #!/usr/bin/env bash

    for x in $(grep ^UUID /etc/fstab|cut -d \  -f 1|cut -d = -f 2)
    do
            if [ ! -h /dev/disk/by-uuid/$x ];then
                    echo $(grep $x /etc/fstab)  ..... not found
            fi
    done

3
2018-04-05 13:43





山-a 是检查/ etc / fstab的安全方法,否则错误的输入可能会破坏系统

还建议保留原始/ etc / fstab文件的备份副本。它可以复制到root的主目录


1
2017-11-28 07:36