从 rc.local 挂载失败;如何正确挂载?

从 rc.local 挂载失败;如何正确挂载?

这是我的当前情况/etc/rc.local

#!/bin/sh -e

# Test 1
echo line1 > /home/myHome/rclog.txt

# the mount
mount /mnt/mediaDrive &> /home/myHome/mountlog.txt

# Test 2
echo line2 >> /home/myHome/rclog.txt

exit 0

是中的/mnt/mediaDrive。它是网络共享,因此安装在 中。noautofstabrc.local

上述脚本中的挂载在启动时不起作用。启动后,文件rclog.txt包含line1line2,并且mountlog.txt文件为空。这表明脚本中的所有命令都已成功运行,但是驱动器未挂载。

sudo /etc/rc.local在终端中手动运行挂载网络共享。

我看不到任何相关内容/var/syslog,权限为rc.local755。相关fstab条目:

//192.168.1.100/home  /mnt/mediaDrive  cifs  noauto,credentials=/home/myHome/.mediaCredentials,uid=myName,gid=myGroup  0  0

这里发生了什么?

答案1

问题肯定是在启动时你的网络尚未可用,这就是它挂载的原因启动。您必须使用其他机制来挂载设备,例如 upstart。使用 upstart 的示例:

# mount CIFS share

start on (local-filesystems and net-device-up IFACE!=lo)
stop on runlevel [!2345]

pre-start script /bin/mount /mnt/mediaDrive
pre-stop script /bin/umount /mnt/mediaDrive

您可以根据需要进行修改。文件名必须以 结尾,.conf并保存在/etc/init目录中。

答案2

正如 Braiam 所指出的,运行时rc.local由于某种原因没有可用的网络。

这就是我最初采用noauto+rc.local方法的原因。因此,尽管我不太清楚为什么,但这种方法是有缺陷的。

就我的情况而言,只需使用_netdev(而不是noauto/etc/fstab即可。

请注意,在我的例子中,我有几十个绑定挂载到网络驱动器上的位置。每个绑定挂载还需要一个_netdev选项/etc/fstab,位于选项旁边bind

答案3

只需在 rc.local 中的网络命令上方添加“sleep 5”

我在使用 osmc 安装 cifs 访问我的树莓派时遇到了问题,经过 5 秒,网络已启动,安装正常

答案4

添加noauto,x-systemd.automount到我的 fstab 行对我来说终于有用了。mount /media/share我的 rc.local 中也有一行,但我不确定这是否重要或多余。

_netdev对我来说/etc/fstab不起作用(无论是否在 rc.local 中有 mount 命令)

相关内容