如何修复 fstab samba 挂载未加载

如何修复 fstab samba 挂载未加载

我在 fstab 文件中有两个 mount 语句,但它们不起作用。这里有一个例子 - 我可以使用下面的文本执行 sudo mount,它完美地工作了。

sudo mount //192.168.0.200/Movies /mnt/NAS1HD -o username=XXX,password=XXX

但是 /etc/fstab 中的下面一行没有挂载共享。

//192.168.0.200/Movies  /mnt/NAS1HD  cifs username=XXX,password=XXX,iocharset=utf8,sec=ntlm  0  0 

我是 Linux 新手,所以我肯定我的语法不正确,而且无法弄清楚。

提前致谢!

答案1

我还没有完全找到我的问题(2)的答案,所以让我们这样做:

**sec=ntlm是一个非常合法的选项,仍然有效,但由于您可以在没有它的情况下手动挂载共享,所以我认为您不需要它。将其从您的 fstab 语句中删除。

** 重新启动您的机器。

** 前往 /mnt/NAS1HD 验证它是否未挂载

** 然后运行此命令:

sudo mount -a

现在它安装了吗?

如果它在运行后确实挂载了sudo mount -a,那么很可能在启动过程中网络堆栈启动之前读取了您的 fstab。“修复”此问题的一种方法是:

[1] 创建一个新文件:/etc/network/if-up.d/fstab

[2] 添加以下内容:

#!/bin/sh
mount -a

[3] 使文件可执行:

sudo chmod +x /etc/network/if-up.d/fstab

任何放置在 if-up.d 中的脚本都只能在网络启动并运行后运行,因此如果在启动过程中过早读取 fstab,这应该可以解决时间问题。

答案2

@rob-l- 如果您的电影目录所在的文件服务器与 Windows 10 的 SMB3.0 共享,并且您需要凭据才能访问文件,则需要将安全选项从NTLM 目录韓國。然后要授予读写权限,需要指定用户组或用户用户ID。指定用户比指定组更容易,否则您需要将 Windows 安全组转换为 Unix gid。

//192.168.0.200/Movies  /mnt/NAS1HD  cifs username=XXX,password=XXX,iocharset=utf8,sec=ntlm  0  0  ```

然后,如果您希望它在收到连接时挂载,请使用_netdev作为最后的选择

//192.168.0.200/Movies  /mnt/NAS1HD  cifs uid=ubuntuusername,username=XXX,password=XXX,iocharset=utf8,sec=ntlmssp,_netdev  0  0 

您还可以将凭据存储在具有权限的文件中:

echo username=NETWORKUSERNAME > ~/.smbcredentials
echo password=NETWORKPASSWORD >> ~/.smbcredentials
CHMOD 600 ~/.smbcredentials
//192.168.0.200/Movies  /mnt/NAS1HD  cifs uid=ubuntuusername,credentials=/home/ubuntuusername/.smbcredentials,iocharset=utf8,sec=ntlmssp,_netdev  0  0 

... 只需阅读这里的其余内容,有机大理石就具有版本=3.0是替代选择sec=ntlmssp

答案3

删除sec=ntlm。此功能自 17.10 以来就不再起作用,但仍有很多旧网页建议您将其包括在内。

这是我的 18.04 fstab 中的一条工作行的[已编辑]示例。

//[IP address]/ST8-E-Drive /media/ST8-E-Drive cifs vers=3.0,credentials=/home/[username and file],iocharset=utf8,file_mode=0777,dir_mode=0777,uid=[uid],gid=[gid],nofail 0 0

答案4

我认为 ifupdown 包在 Ubuntu 18.04 中已经过时,并被 netplan.io 取代。无论如何,从 fstab 延迟挂载对我来说不起作用。

我也尝试了 systemd .mount 文件,但没有成功我发现的唯一(丑陋的)解决方案是编写一个每分钟执行 mount -a 的 cronjob。

相关内容