通过 fstab 挂载 CIFS 不会在启动时挂载

通过 fstab 挂载 CIFS 不会在启动时挂载

我的 NAS 上有一个 CIFS 共享,我想在启动时挂载它 - 我的 MythTV 服务器使用它作为主媒体存储。我添加了一个条目fstab以将其挂载,但并没有挂载。查看我的系统日志后,似乎fstab在我的网络接口上线之前就读取了它。我可以对该fstab条目进行任何编辑来改变这种情况吗?

fstab安装共享的条目是:

\\192.168.0.26\mythtv\media  /media/mybooklive  cifs  username=user,password=pass,umask=002,uid=136,gid=144,iocharset=utf8   0       0

当我启动时,它可以在启动后正常安装sudo mount -a,并且没有其他问题。

谢谢!

答案1

如果_netdev不起作用,请尝试此选项:

x-systemd.automount

它的工作原理是在第一次访问时安装驱动器。

要测试自动挂载,请卸载您的共享(如果当前已挂载):

sudo umount /media/mybooklive

然后重新启动remote-fssystemd 单元:

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

答案2

您是否尝试过将此选项添加_netdev到您的fstab条目中?您可以将其与字符串中的其他选项一起添加,如下所示

//192.168.0.26/mythtv/media  /media/mybooklive  cifs  username=user,password=pass,_netdev,umask=002,uid=136,gid=144,iocharset=utf8   0       0

_netdev应该延迟挂载直到网络连接之后。

答案3

我使用的是 2017-09-07 版本的 Raspbian-Stretch,也遇到了同样的问题。不过,我能够通过进入 raspi-config 并在启动选项菜单下启用“启动时等待网络”选项来解决这个问题。

答案4

  • 使用正斜杠(/)并没有为我解决这个问题。
  • 此外,将该选项添加_netdev到我的/etc/fstab条目中并没有为我解决这个问题。

我为解决这个问题(在我的 Pi3 上)所做的是修改/etc/rc.local为休眠 20 秒(通过调用sleep 20),然后调用mount -a。这样,即使系统第一次读取文件时网络尚未连接fstab,因此挂载会失败,我也会强制系统在这里等待 20 秒(给网络连接时间),然后我强制它mount -a再次调用以挂载文件中的所有驱动器fstab

这是我的/etc/rc.local文件现在的样子:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Print the IP address
# GS notes: a *minimum* of `sleep 10` is required for the mount below to
# work on the Pi 3; it failed with `sleep 5`, but worked with `sleep 10`,
# `sleep 15`, and `sleep 30`
sleep 20
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
  mount -a #GS: mount all drives in /etc/fstab
fi

exit 0

完成了!现在对我来说它完美运行了!

参考:

  1. [我的答案]https://raspberrypi.stackexchange.com/a/63690/49091
  2. https://www.raspberrypi.org/documentation/linux/usage/rc-local.md
  3. http://elinux.org/RPi_Email_IP_On_Boot_Debian- 他们有一个类似的rc.local文件,其中有一条注释:
    # Print the IP address if it doesn't work ad sleep 30 before all your code
    

关于我答案的编辑,我有一个英语语法后续问题:

  1. https://english.stackexchange.com/questions/568348/need-help-identifying-if-this-is-1-grammatically-correct-and-2-an-infinitive

相关内容