这是我的当前情况/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
。它是网络共享,因此安装在 中。noauto
fstab
rc.local
上述脚本中的挂载在启动时不起作用。启动后,文件rclog.txt
包含line1
和line2
,并且mountlog.txt
文件为空。这表明脚本中的所有命令都已成功运行,但是驱动器未挂载。
sudo /etc/rc.local
在终端中手动运行做挂载网络共享。
我看不到任何相关内容/var/syslog
,权限为rc.local
755。相关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 命令)