即使远程共享处于离线状态也能启动 Ubuntu

即使远程共享处于离线状态也能启动 Ubuntu

在我的系统中/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,它就会挂载。您还可以添加一个选项,让它在空闲时卸载。

相关内容