在我之前尝试过的所有 Linux 上,只要/etc/fstab在机器重新启动时将某些东西放入其中就会自动挂载,但是在安装 Debian 10 之后,相同的机制似乎不起作用。
fstab 条目如下所示:
//hostname/Share /Share cifs _netdev,dir_mode=0777,file_mode=0777,username=<NAME>,password=<PASSWORD>,rw,uid=1000,gid=1000 0 0
Run Code Online (Sandbox Code Playgroud)
重启后挂载文件夹为空,不在挂载列表中。我查看了 dmesg,这些是唯一提到的 mounts 或 cifs:
[ 3.067180] FS-Cache: Netfs 'cifs' registered for caching
[ 3.067243] Key type cifs.spnego registered
[ 3.067247] Key type cifs.idmap registered
[ 3.068769] No dialect specified on mount. Default has changed to a more secure dialect, SMB2.1 or later (e.g. SMB3), from CIFS (SMB1). To use the less secure SMB1 dialect to access old servers which do not support SMB3 (or SMB2.1) specify vers=1.0 on mount.
Run Code Online (Sandbox Code Playgroud)
但是,这种方言消息不会在每次重新启动时出现。
我必须添加sudo mount -a到 crontab @restart 才能让它们出现,但是 Debian 10 是否有更“正确”的方式来像其他 Debian 那样识别 fstab?
systemd将使用传统/etc/fstab文件的内容动态创建“挂载单元”。您需要检查相应安装单元的状态以了解它失败的原因:请运行systemctl status Share.mount.
最可能的原因是nmbd当挂载尝试发生时,NetBIOS 名称解析不可用(即 Samba尚未运行),如适当的 Debian Wiki 页面中所建议的。
有关man systemd.mount您可以在/etc/fstab. 例如,您可以将其x-systemd.automount用作解决方法:有了它,systemd 应该在第一次尝试使用它时自动挂载文件系统。
另外,请检查systemctl status network-online.target:如果您有静态网络配置,系统可能无法检测到网络连接何时正确“在线”,并因此过早地尝试挂载网络文件系统。检查配置文件中的新增WAIT_ONLINE_IFACE=和WAIT_ONLINE_METHOD=设置,/etc/default/networking以了解使网络在线检测更可靠的可能方法。
此外,要使方言消息静音,您应该添加vers=N.N到您的安装选项中。有关可用值man mount.cifs列表N.N和相应的 Windows 版本,请参阅。如果服务器至少是 Windows Server 2008R2,则可以使用vers=2.1.
旧的协议版本vers=1.0在 2017 年容易受到臭名昭著的 WannaCry 勒索软件的攻击,并且无法修复,因此现在所有最新的操作系统都应该被编程为讨厌该版本并且除非特别要求否则不要使用它. (如果您的服务器仍然无法支持任何较新的协议版本,则该服务器需要升级。)
小智 5
在此发布此内容,希望对某人有所帮助。我花了4个多小时。
在 Debian 10 上我需要运行:
systemctl enable systemd-networkd-wait-online.service
Run Code Online (Sandbox Code Playgroud)
我正在使用 fstab 参数:
NFS-Server-IP:/FolderName /mnt/FolderName nfs rw,bg,intr,hard,timeo=600,nfsvers=3 0 0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8086 次 |
| 最近记录: |