我正在尝试在主操作系统 (openSUSE 42.1) 与来宾 Windows 7 虚拟机之间共享一个文件夹,但我无法正确设置它。
我从 访问虚拟机virt-manager
,并且我了解到实现此目的的最佳方法是使用 Samba。
我已将此部分添加到我的/etc/samba/smb.conf
[shared]
comment = my shared folder
guest ok = Yes
inherit acls = Yes
path = /home/user/shared
read only = No
browseable = Yes
/home/user/shared
我设置了to的权限drwxrwxrwx
,并确保它smb.service
已启动并运行。
但是,当我运行 Windows VM 并尝试连接到共享文件夹时,我既无法访问也无法看到它。
我该如何解决这个问题?
答案1
问题在于防火墙阻止了 Samba 使用的端口上的连接。
我必须添加必要的例外,现在它按预期工作。
答案2
我需要访问较旧的 Windows 7 虚拟机(来自 PopOS 19.04,尽管我毫不怀疑它也适用于 Ubuntu)并遇到了同样的问题。查阅了数十个网站,包括这个网站。我使用共享资源设置 smb.conf,没有问题。然后,我从 Windows 端反复尝试使用这些站点的说明来映射驱动器,全部其中说使用我的Linux帐户名(正确),KVM管理器的virbr0 IP地址(也正确,例如192.168.122.1。当然,这不是Linux机器本身的正常IP地址),并且选中“使用不同凭据连接”框 - 错误。经过多次尝试后,我决定看看如果不选中此框会发生什么。想象一下,当驱动器正确映射并且我能够对其进行读写时,我会感到多么惊讶!
对于 OP,请确保您已启用 Samba,使用:
systemctl 启用 smb.service
以便下次重新启动计算机时它会重新启动。
另请注意不需要对防火墙进行更改,这也与许多网站的建议相反。在这种情况下,使用从 Linux 主机到 Windows VM 的 virbr0 连接可以提供与主室内网络的隔离。
从 Windows 端创建 samba 连接时,也无需选择“登录时重新连接”;为了测试这一点,我关闭了虚拟机,然后重新启动它,然后单击我指向驱动器 Z:(这是我映射 Samba 共享的位置)的链接,它立即重新连接,而无需再次添加凭据。
我现在可以轻松地在 Linux 端和 Windows 端之间共享文件。注意:这是 Samba 4.10.0,它是来自 PopOS 和 Ubuntu 存储库的版本;旧版本可能需要其他调整。