从 Windows Host 到 Freebsd Guest 的共享文件夹

从 Windows Host 到 Freebsd Guest 的共享文件夹

我正在努力实现的目标:

  • 我(家里)有一台安装了 Windows 7 的电脑
  • 我想在 Virtual Box 中运行 Unix,因为我更习惯在其上开发/编写脚本

我当时选择了Freebsd,并成功安装了它并配置了网络。下一步是将文件夹从 Windows 共享到 Freebsd,以便我可以轻松地在 Windows 和 Freebsd 上编辑文件。不幸的是,这似乎是一件尽管要做的事情。

我在网上查了一下,发现有两种不同的方法:

我使用在 freebsd 中安装了来宾添加项pkg_add -r virtualbox-ose-additions,安装进行得足够快,我编辑/etc/rc.conf添加了两个建议行:vboxguest_enable="YES"vboxservice_enable="YES"并重新启动。

它不起作用。挂载系统的命令最终出错:

# mount -t vboxsf shared /home/myuser/shared
mount: shared : Operation not supported by device

其中shared是我在虚拟机设置中为此虚拟机设置的文件夹的名称。

实际上可以vboxsf在 freebsd 中使用文件系统类型吗?一些评论似乎表明它不受支持,但查找最新信息很困难。

接下来,我转向桑巴舞方法。我基本上遵循了我链接的指南。不幸的是,最终结果是:

# mount_smbfs -N -I 192.168.56.1 //winuser@winmachinename/Shared /mnt/shared
mount_smbfs: unable to open connection: syserr = RPC struct is bad

其中Shared是我用windows配置的共享文件夹的名称,显然可以访问winuser。 ping 有效。

我想指出的是,我尝试连接的 Windows 来宾帐户没有密码,这看起来更容易,但也许它以某种方式困扰了 samba。

编辑:使用 PuTTY 工作时,我没有看到控制台中打印了一些消息:

smb_maperror: Unmapped error 3:31
smb_co_lock: recursive lock for object 1

两者都出现多次。/编辑结束

如果直接文件系统共享不起作用,知道如何让 samba 做到这一点吗?这篇文章表明至少有些人已经这样做了。

技术信息:

  • 主机:Windows 7家庭版(最新)
  • 访客:FreeBSD 9.0-RELEASE #0:UTC 2012 年 1 月 3 日星期二 07:15:25 [电子邮件受保护]:/usr/obj/usr/src/sys/GENERIC i386
  • 虚拟盒:4.1.16 r78094

我也愿意接受新的分享建议。如果可能的话,我希望避免来回传输文件:它不是特别有效,而且总是会产生令人困惑的错误。

我也对改变系统持开放态度。我喜欢 freebsd 的哲学,但如果它不起作用,我会毫不犹豫地转向 Linux。

编辑:

这个问题现在纯粹是理论上的兴趣。我改用 Ubuntu Server,并设法在没有 samba 的情况下进行设置,因为 vboxsf 得到了很好的支持。

答案1

FreeBSD 仍然不支持 VirtualBox 共享文件夹。

FreeBSD ports 提交者有证实了这一点截至 (2014-06-24) 的 FreeBSD 邮件列表中:

尚不支持 FreeBSD 来宾的共享文件夹 [...] 有一些草稿代码和一个内核模块,但它还不能工作。

如果您想了解端口的状态,请搜索邮件列表。#freebsd-vboxFreenode 上还有IRC 频道。它被发布到 freebsd-hackers 邮件列表的底部这个帖子。您会在那里找到开发人员。

virtualbox-ose-additions最后,根据 FreeBSD 手册第 22.2 章,该端口目前支持的内容如下:

VirtualBox™ 来宾添加功能提供以下支持:

  • 剪贴板共享。
  • 鼠标指针集成。
  • 主机时间同步。
  • 窗口缩放。
  • 无缝模式。

正如您所看到的,FreeBSD 尚不支持共享文件夹。

VirtualBox手册第4.3章指出:

Windows(2000 或更高版本)、Linux 和 Solaris guest 虚拟机均支持共享文件夹。

再次没有 FreeBSD。现在请按照其他人提到的说明使用 SMB 共享。

答案2

确保您已将 Windows 文件夹的共享配置给您希望在 freebsd 上共享的用户。

我喜欢将以下内容添加到 /etc/hosts 以便于使用。

<ip address of server>  vboxhost
eg.
192.168.56.1    vboxhost

首先测试安装文件夹:

mount_smbfs -I vboxhost //username@nameofwindowsbox/foldername /mnt

如果正确,系统将提示您输入 Windows 用户密码。

要使其在启动时挂载,请将以下内容添加到 /etc/fstab

//username@nameofwindowsbox/foldername  /mnt smbfs  rw,noauto  0 0

每次启动时都应该安装它

如果您不想提示输入密码,请在 /etc/nsmb.conf 中添加以下内容:

[default]
[NAMEOFWINDOWSBOX]              
addr=<ip address of host>
[NAMEOFWINDOWSBOX:USERNAME]
password=<myPassword>

答案3

我正在解决同样的问题。 Windows 端的一些事情让我最终让 mount_smbfs 在 FreeBSD 9.0 中工作:

  • 启用系统匿名访问

网络和共享中心 → 更改高级共享设置 → 关闭密码保护共享

  • 通过简单共享启用对文件夹的匿名访问

属性 → 共享 → 共享... → 添加“所有人”

在共享属性中有两种创建共享的方法;简单共享和高级共享。我当时使用的是高级共享,但出于某种原因我现在并不真正关心,这不起作用;我通过简单共享重新添加了共享,然后 mount/smbclient 终于工作了。

验证匿名登录是否适用于 smbclient:

[root@fileserv ~]# smbclient -N -I 192.168.56.1 '\\twblamer-pc\share'
Domain=[TWBLAMER-PC] OS=[Windows 7 Professional 7601 Service Pack 1] Server=[Windows 7 Professional 6.1]
smb: \> dir
  .                                  DR        0  Thu Dec 13 04:33:09 2012
  ..                                 DR        0  Thu Dec 13 04:33:09 2012
  mydirectory                         D        0  Thu Dec 13 01:55:45 2012

相关内容