我正在关注MountWindowsSharesPermanently在启动时挂载 samba 共享
正如 wiki 中所述,我添加了以下几行/etc/fstab
:
# auto-mounting the samba share 'Seagates' on raspberry pi
//192.168.2.2/Seagates /home/edward/samba/raspberry cifs uid=1000,gid=1000,credentials=/home/edward/.smbcredentials,iocharset=utf8,sec=ntlm 0 0
然后,由于它是一个受密码保护的共享,我添加了登录凭据~/.smbcredentials
并重新启动
安装失败并出现以下错误,取自journalctl | grep samba
:
Nov 10 22:39:27 flippingbits systemd[1]: Mounting /home/edward/samba/raspberry...
Nov 10 22:39:33 flippingbits systemd[1]: home-edward-samba-raspberry.mount: Mount process exited, code=exited status=32
Nov 10 22:39:33 flippingbits systemd[1]: Failed to mount /home/edward/samba/raspberry.
Nov 10 22:39:33 flippingbits systemd[1]: home-edward-samba-raspberry.mount: Unit entered failed state.
Nov 10 22:39:58 flippingbits smbd[2613]: pam_unix(samba:session): session closed for user nobody
但是如果我sudo mount -a
在启动后使用它来安装,它就可以工作。
笔记:在同一页上 (这里)他们展示了一种解决方法username=guest
来解决这个问题。但我无法做到这一点,因为我正在以另一个用户的身份安装它,该用户写在~/.smbcredentials
我在 Ubuntu 15.10
答案1
我提到的 Ubuntu Wiki 有点过时,无法正常工作systemd
。systemd 最初是在 Ubuntu 15.04 中引入的。
问题可能是任何问题,到/etc/fstab
读取时网络尚未启动,或者到/etc/fstab
读取时samba
服务尚未准备就绪,或者可能是任何问题,我没有阅读太多日志。
但基本上 wiki 中显示的方法不起作用。
在网上搜索后,我终于找到了解决方案,那就是在文件x-systemd.automount,x-systemd.device-timeout=3,
中的其余选项之前添加fstab
这:
//192.168.2.2/Seagates /home/edward/samba/raspberry cifs uid=1000,gid=1000,credentials=/home/edward/.smbcredentials,iocharset=utf8,sec=ntlm 0 0
会变成
//192.168.2.2/Seagates /home/edward/samba/raspberry cifs x-systemd.automount,x-systemd.device-timeout=3,uid=1000,gid=1000,credentials=/home/edward/.smbcredentials,iocharset=utf8,sec=ntlm 0 0
如果第一次尝试时驱动器未安装,systemd 将等待,然后放弃尝试自动安装。这也不会影响/增加启动时间,因为 systemd 不会等待此过程完成并继续加载系统的其余部分。