我正在努力实现的目标:
- 我(家里)有一台安装了 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-vbox
Freenode 上还有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