我的 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-fs
systemd 单元:
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
完成了!现在对我来说它完美运行了!
参考:
- [我的答案]https://raspberrypi.stackexchange.com/a/63690/49091
- https://www.raspberrypi.org/documentation/linux/usage/rc-local.md
- 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
关于我答案的编辑,我有一个英语语法后续问题: