在我之前尝试过的所有 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
重新启动后,挂载文件夹为空,并且未在挂载中列出。我查看了 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.
但是,该方言消息不会在每次重新启动时出现。
我必须添加sudo mount -a
到 crontab @restart 才能让它们显示出来,但是 Debian 10 是否有更“正确”的方式来识别 fstab,就像其他 Debian 一样?
systemd
将使用传统/etc/fstab
文件的内容来动态创建“挂载单元”。您需要检查相应挂载单元的状态以了解其失败的原因:请运行systemctl status Share.mount
.最可能的原因是当安装尝试发生时,NetBIOS 名称解析不可用(即 Samba
nmbd
尚未运行),正如相应的 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 勒索软件的攻击,并且无法修复,因此现在所有最新的操作系统都应该被编程为讨厌该版本并且除非特别要求,否则不要使用它. (如果您的服务器仍然无法支持任何较新的协议版本,则需要升级该服务器。)在此处发布此内容,希望对某人有所帮助。花了我4个多小时。
在 Debian 10 上,我需要运行:
我正在使用 fstab 参数:
如果在 Debian Buster 上使用 SysVinit(而不是 SystemD),在 fstab 字段中似乎两者
auto
都_netdev
需要<options>
它来自动挂载。另外<pass>
(最后一个字段)可能应该是3
,而不是0
出于一致性原因,如果没有别的原因(但我没有测试它是否在没有该更改的情况下失败)所以
我刚刚在
fstab
. 事实证明,在启动时,当网络尚未准备好时就尝试了挂载。只需安装即可
network-manager
解决问题。