在我的系统中/etc/fstab
我使用以下内容:
//192.168.5.167/H /mnt/ssd ssd credentials=/root/.smbreds 0 0
但是如果 Windows 上的驱动器未连接或 Windows 机器未运行,则包含此设备的 Ubuntu/etc/fstab
将无法启动。
答案1
您应该考虑使用用户 autofs 而不是 fstab。AutoFS 将根据需要挂载共享。
使用以下命令安装要求
sudo apt install autofs smbclient cifs-utils
将以下行添加到/etc/auto.smb
。
sudo /cifs /etc/auto.smb --timeout=300
当然创建文件夹
sudo mkdir /cifs
重启服务
sudo systemctl restart autofs
创建包含凭证的文件夹
mkdir /etc/creds
chmod 600 /etc/creds
创建文件/etc/creds/192.168.5.167
(或服务器名称)并将当前内容复制到 /root/.smbreds。它应该看起来像:
username=<smb username>
password=<smb password>
domain=<smb domain>
您的共享现在应该会自动安装:
cd /cifs/192.168.5.167 #Or servername if you changed to servername)
如果你需要与以前相同的路径,你甚至可以创建一个符号链接
umount /mnt/ssd
rmdir /mnt/ssd
ln -s /cifs/192.168.5.167 /mnt/ssd
答案2
如果你读了这篇man fstab
文章,你会看到你可以尝试以下选项:
noauto do not mount when "mount -a" is given (e.g., at
boot time)
nofail do not report errors for this device if it does
not exist.
下一步可能是 cron 中的脚本,检查主机可用性并使用mount /mnt/ssd
命令连接您的 Windows 共享。
这里是一个通过脚本检查主机可用性的示例。
答案3
//192.168.5.167/H /mnt/ssd ssd 凭证=/root/.smbreds 0 0
你的意思:
//192.168.5.167/H /mnt/ssd cifs 凭证=/root/.smbreds 0 0
卸载共享:
sudo umount /mnt/ssd
编辑 fstab 并添加两个选项:禁止自动和x-systemd.automount:
//192.168.5.167/H /mnt/ssd cifs credentials=/root/.smbreds,noauto,x-systemd.automount 0 0
然后执行 systemd 的两步:
sudo systemctl daemon-reload
sudo systemctl restart remote-fs.target
禁止自动将阻止在启动时安装。
x-systemd.automount访问时将挂载共享。这将是无缝的。只需转到 /mnt/ssd,它就会挂载。您还可以添加一个选项,让它在空闲时卸载。