升级到 20.04 后,我现在无法访问旧 nas 或旧 samba 服务器上的 samba shes。
我尝试编辑 smb.conf,并添加“client min protocol = CORE”。这部分修复了问题并进行了身份验证,允许您查看共享内的文件夹,但随后里面的所有文件都显示为文件夹。我无法将文件复制出来进行访问,也无法在 caja 中打开它们,我认为在 Nautilus 中也会这样。
除此之外我很享受 20.04 :)
提前致谢
比格利
答案1
我发现我的问题出在 Samba 客户端(因为我的设置中根本没有在任何地方运行 Samba 服务器)。
桌面客户端(MATE Caja 文件管理器)将看到名称错误的 NAS 服务器。它会看到 NAS 盒名称(mynas),而不是配置的 SMB 服务器名称(homebackup)。
当我使用时:
$ smbclient //homebackup/mybackup
我能够通过 smbclient 连接并浏览和复制文件。
因此我进入 Caja 并手动输入:
smb://homebackup/mybackup
然后 wala 份额就出现了。
所以对我来说唯一的问题是浏览网络而不是附加到共享。
即使以这种方式手动连接后,Caja 浏览器在网络下仍然显示 mynas 而不是 homebackup!!!
答案2
只是为了完整性...因为我无法从帖子中读出确切的说明。如果您有使用 SMB1 的 NAS(例如 FritzBox),您可以使用以下命令让 nautilus/gio 降级 smb 连接,如果您还没有 .smb/smb.conf 文件(像我一样):
mkdir ~/.smb
echo "[global]" > ~/.smb/smb.conf
echo "client min protocol = CORE" >> ~/.smb/smb.conf
作为 FritzBox 用户的替代方案,您可以使用实验性的 Fritz!Lab OS 将 FritzBox 升级到 SMB2/SMB3。请参阅https://en.avm.de/service/fritzbox/fritzbox-7490/knowledge-base/publication/show/3327_SMB-versions-supported-by-the-FRITZ-Box/
那么您可能不需要这个解决方法,但我还没有测试过。
文件显示为文件夹的错误现已在 Ubuntu 20.04 (focal) 中使用 smblibs 软件包版本 4.11.6+dfsg-0ubuntu1.2 进行修复
答案3
您有 2 个选择:
[1] 安装 PPA“修复”,以便您可以继续通过 caja 执行此操作。
错误报告中列出了详细信息:https://bugs.launchpad.net/ubuntu/+source/samba/+bug/1872476
PPA 可以在这里找到:https://launchpad.net/~sergiodj/+archive/ubuntu/samba-bug1872476-v2
[2] 我强烈建议您使用 CIFS 挂载。
这样,您就可以不管 smb.conf,而使用早期版本的 smb 为您的 NAS 盒创建特定的挂载。
这里的另一个问题中有一个关于如何做到这一点的示例:20.04 升级导致 NAS 不可用
编辑:我理解您不愿意在 fstab 中挂载,但可以将其设置为 systemd 自动挂载,这样它就不会在启动时挂载 - 仅当您访问挂载点时才会挂载。
以下只是建议。如果步骤 [1] 不起作用,则在 fstab 中进行设置毫无意义。
[1] 首先进行临时挂载以确保其正常工作:
** 创建一个挂载点(不要将其放在主目录或 /media 下):
sudo mkdir /mnt/NASx
** 进行临时挂载:
sudo mount -t cifs //nas-ip-address/share-name /mnt/NASx -o username=xxxx,password=yyyy,uid=1000,vers=1.0,sec=ntlm
[2] 如果步骤 [1] 有效,您可以在 fstab 中将其设置为自动挂载:
** 卸载共享:
sudo umount /mnt/NASx
** 将其添加到 /etc/fstab
//nas-ip-address/share-name /mnt/NASx cifs username=xxxx,password=yyyy,uid=1000,vers=1.0,sec=ntlm,noauto,x-systemd.automount 0 0
** 然后重置 systemd:
sudo systemctl daemon-reload
sudo systemctl restart remote-fs.target
** 然后访问 /mnt/NASx 来验证其内容。
禁止自动= 防止在启动时安装。
x-systemd.automount= 仅当访问挂载点时才挂载远程共享。