如何强制操作系统重新加载 fstab?

如何强制操作系统重新加载 fstab?

mount -a作为一次性动作,效果很好。但可移动媒体的自动挂载会恢复为上次重新启动时 fstab 中的设置。

如何使操作系统重新加载/etc/fstab,以便在连接介质时自动安装使用新设置?

使用 Raspbian (Debian) Stretch 看到的具体示例:

  • FAT格式的SD卡;配置 fstab 自动挂载;重新启动;卷自动挂载,但只读。

  • 更改了umask选项/etc/fstabmount -a当媒体已连接时,卷现在可以读写。

  • 卸载并重新插入介质;自动挂载有效,但使用上次重新启动时的选项/etc/fstab,因此卷是只读的。

  • 重启;操作系统加载已更新/etc/fstab;当介质已连接且卷可读写时,自动挂载将起作用。如何在不重启的情况下获得这种效果?

FWIW,(更新的)/etc/fstab语法是:

/dev/sdb1   /Volumes/boot   vfat    rw,user,exec,nofail,umask=0000  0   0

答案1

我怀疑这是由 systemd 的转换引起的/etc/fstab;传统mount不记得 的内容/etc/fstab

刷新 systemd 的世界观,包括更改/etc/fstab跑步

systemctl daemon-reload

答案2

为了详细说明回答来自@斯蒂芬·基特:例如,我在以下位置有此条目/etc/fstab

vnetsvr-home:/etc/skel   /etc/skel    nfs4   sec=krb5p,noauto,x-systemd.automount,x-systemd.idle-timeout=10min   0   0

并且只做sudo systemctl daemon-reload不会重新加载 fstab。我要做:

sudo systemctl daemon-reload
sudo systemctl restart remote-fs.target

要重新加载条目以挂载本地文件系统,您应该使用:

sudo systemctl daemon-reload
sudo systemctl restart local-fs.target

答案3

我知道这些解决方案可能不适用于每个 Linux 发行版和版本。然而,这种方法通常适用于所有 Linux 版本。
1- 进行配置并更改 fstab 文件
2- 使用此命令重新挂载已在 fstab 文件中更改其配置的 device_file:
# mount -o remount [device_file]
这样,您将挂载从“fstab”文件中读取的新配置的分区。
如果您从“fstab”文件中删除了一个分区,只需umount [device_file].确保重新启动后该分区保持未安装状态。

任何时候您都可以通过运行命令检查结果mount

相关内容