我有一个条目/etc/fstab
可以安装 Windows 共享
//192.168.178.4/files /media/share/d cifs credentials=/home/arnold/.credentials,rw,dir_mode=0777,file_mode=0777 0 0
在启动/登录期间未安装。当我登录时,我看到共享未安装,但之后sudo mount -a
它已安装。在mint 论坛有人建议网络没有启动并运行。在/etc/network/if-up.d/fstab
(或其他名称) 中创建一个脚本可以解决问题。事实上,此目录旨在用于此类脚本。非常好的建议。我创建了脚本,但遗憾的是它不起作用。我添加了一些日志记录语句,脚本内容如下:
#!/bin/sh
date +"%m/%d/%Y %H:%M:%S $HOSTNAME fstab before mounting" >>/var/log/fstab.log
#mount -av >>/var/log/fstab.log
date +"%m/%d/%Y %H:%M:%S $HOSTNAME fstab mount executed" >>/var/log/fstab.log
echo " " >>/var/log/fstab.log
该脚本是可执行的,所有者是 root。当我登录后执行脚本时,共享已正确挂载。我确保日志文件为空,并在登录后直接复制它,其中显示:
01/03/2017 09:55:45 before mounting
/ : ignored
/data : already mounted
/home : already mounted
none : ignored
01/03/2017 09:55:45 mount executed
01/03/2017 09:55:45 before mounting
/ : ignored
/data : already mounted
/home : already mounted
none : ignored
01/03/2017 09:55:45 mount executed
01/03/2017 09:55:51 before mounting
/ : ignored
/data : already mounted
/home : already mounted
none : ignored
01/03/2017 09:55:51 mount executed
它执行三次(每个网络接口一次?)。下次运行时,sudo mount -av
我得到:
/ : ignored
/data : already mounted
/home : already mounted
none : ignored
/media/share/d : successfully mounted
通过比较这两个日志您可以看到,在启动期间没有(可见的)尝试通过 mount 挂载网络共享。
我确实在 Linux 论坛上收到了很多关于解决方法的优秀建议,但没有一个能回答为什么脚本的if-up.d
行为如此奇怪,而且我没有解决方案可以从终端给我一个挂载的共享(虽然可以通过文件浏览器访问)。我有以下问题:
- 是
if-up.d
安装文件共享的地方吗? - 如果是这样,那么它在我的系统上不起作用的原因是什么(我做错了什么?)
- 如果没有,那么通常去哪里购买这些坐骑?
我是 Linux 新手,我将这个问题视为 Linux 的速成课程 :-),但如果我不能立即理解建议,请耐心等待。
使用带有 mate 的 mint 18.1,服务器是具有最新固件的 QNAP NAS。
编辑我在日志中寻找提到安装此共享的位置,然后我发现了一些条目/var/log/syslog
:
Jan 3 09:19:53 lassus systemd[1]: Started Network Manager Wait Online.
Jan 3 09:19:53 lassus systemd[1]: Reached target Network is Online.
Jan 3 09:19:53 lassus systemd[1]: Mounting /media/share/d...
Jan 3 09:19:53 lassus systemd[1]: Starting /etc/rc.local Compatibility...
Jan 3 09:19:53 lassus mount[1301]: error 2 (No such file or directory) opening credential file /home/arnold/.credentials
Jan 3 09:19:53 lassus systemd[1]: media-share-d.mount: Mount process exited, code=exited status=2
Jan 3 09:19:53 lassus systemd[1]: Failed to mount /media/share/d.
Jan 3 09:19:53 lassus systemd[1]: Dependency failed for Remote File Systems.
Jan 3 09:19:53 lassus systemd[1]: remote-fs.target: Job remote-fs.target/start failed with result 'dependency'.
Jan 3 09:19:53 lassus systemd[1]: media-share-d.mount: Unit entered failed state.
凭证文件确实存在。我将所有者从我自己改为 root,但这也无济于事。
答案1
我收集这些评论作为答案,以防有人遇到同样的情况或有更好的知识来改进信息。
您注意到的行为似乎是由于在尝试挂载 Samba 共享时mount
无法访问凭据文件而导致的。
但是凭证文件存在,并且可以被读取mount
,所以问题似乎是/home
在需要时分区不可用(未安装)。
将凭证文件移动到/
分区内的某个位置(/etc
例如内部)可以解决问题。
答案2
以 root 身份使用 crontab:
@reboot until /usr/bin/fping -q 192.168.178.4; do sleep 1;done && /bin/mount -av