运行 Fedora 15 的 Virtualbox 不断丢失其 Windows 共享的 CIFS 挂载

运行 Fedora 15 的 Virtualbox 不断丢失其 Windows 共享的 CIFS 挂载

我有一个在 Windows XP 机器上运行 Fedora 15 的 virtualbox 实例。Windows 机器 (Z8GQ9439) 正在共享一个文件夹 (rlevesq)。

我正在 /etc/fstab 中安装该驱动器,如下所示:

//Z8GQ9439/rlevesq  /mnt/rlevesq        cifs    uid=500,gid=500,rw,exec,file_mode=0755,dir_mode=0755,credentials=/home/rlevesq/.cifscred    0 0

我可以正常安装驱动器。我可以写入和读取它。

问题是,最终挂载将无法从 Linux 访问。当我在 Windows 中执行 I/O 密集型操作(例如编译 C++ 代码)时,似乎会发生这种情况。

发生这种情况时,我无法运行ls /mnt/rlevesq。即使sudo umount /mnt/rlevesq不起作用。事实上,当我运行这些命令时,它们会锁定运行它们的 shell。

dmesg 给出以下错误

[63823.762680] CIFS VFS: Server Z8GQ9439 has not responded in 300 seconds. Reconnecting...
[64070.860398] CIFS VFS: Unexpected lookup error -512
[64101.643986] CIFS VFS: did not end path lookup where expected namelen is 0

此时,无论我等待多长时间,该文件夹仍然无法访问。我发现的唯一解决方案是重新启动虚拟机。

  1. 有没有办法可以在不重新启动 Linux 系统的情况下恢复?
  2. 有什么办法可以防止这种情况发生吗?我错过了什么安装选项吗?

答案1

当我们丢失主域控制器时,类似的设置给我们带来了很多麻烦。cifs 安装突然消失,我们需要重新启动。

解决方案是创建一个本地 winxp 用户进行挂载,而不是使用域用户。

注意:我们使用了 vmware。我们已经不再使用 cifs,现在使用 vmware 工具和 hgfs 进行共享。如果您可以不再使用 cifs,那就这样做吧。我看到 vbfs 可以与之媲美。您试过吗?

答案2

我猜测这个问题是由 VirtualBox 中创建的客户端的默认 NAT 网络引起的。有了这个 NAT 网络,主机操作系统无法自由地与客户端通信(无法 ping,无法发起会话),因此出现了这个问题。

我的解决方案是在客户机中创建一个仅主机网络,这样我的客户机操作系统就有两个网络:用于互联网连接的 NAT 和用于共享文件的仅主机网络。这很简单,通常你只需要启用客户机操作系统的网络适配器 2 并让它连接到“仅主机适配器”。重新启动客户机后,你应该能够像以前一样挂载主机的共享目录,并且挂载应该是可靠的。要验证仅主机网络是否真的有效,你可以尝试从主机 ping 客户机。

相关内容