从Windows主机共享文件夹到Freebsd Guest


10

我要完成的工作:

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

目前,我选择了Freebsd,并设法安装了它并配置了网络。下一步是从Windows共享文件夹到Freebsd,这样我就可以轻松地在Windows和Freebsd上编辑文件。不幸的是,这似乎是一件麻烦事。

我在网上翻遍,发现了两种不同的方式:

我使用freebsd pkg_add -r virtualbox-ose-additions在guestbsd中安装了来宾添加项,安装过程非常明智,我进行了编辑/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中使用文件系统类型吗?一些评论似乎表明不支持此功能,但是很难找到最新信息。

接下来,我继续使用samba方法。我基本上遵循链接它的指南。不幸的是,最终结果是:

# 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 guest帐户上没有密码,这似乎比较容易,但也许它以某种方式困扰着samba。

编辑:从PuTTY工作,我还没有看到控制台上打印了一些消息:

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

都出现几次。/编辑结束

如果直接的文件系统共享不起作用,是否知道如何让samba做到这一点?文章建议至少已经有人完成了。

技术信息:

  • 主持人:Windows 7家庭版(最新)
  • 访客:FreeBSD 9.0-发布#0:星期二1月3日07:15:25 UTC 2012 root@obrian.cse.buffalo.edu:/ usr / obj / usr / src / sys / GENERIC i386
  • 虚拟盒子:4.1.16 r78094

我也乐于接受分享的新建议。如果可能的话,我宁愿避免来回传输文件:这不是特别有效,并且总是造成混乱的错误的根源。

我也乐于接受不断变化的系统。我喜欢freebsd的理念,但是如果它不起作用,那么我对迁移到Linux毫无疑虑。

编辑

现在,这个问题纯粹是理论上的关注。由于vboxsf得到很好的支持,因此我切换到使用Ubuntu Server并设法在没有samba的情况下进行设置。


您是否尝试过samba套件中的smbclient程序?
2012年

@arved:不,我没有。是否可以通过smb客户端配置自动挂载?(理想情况下,我不希望使用桑巴舞,但是,如果需要使用桑巴舞就可以了……)
Matthieu M.

我认为无法安装。但至少你可以验证是否有对Windows共享没有配置错误
arved

Answers:


5

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

从(2014-06-24)开始,FreeBSD端口提交者已在FreeBSD邮件列表中确认了这一点

尚不支持FreeBSD来宾的共享文件夹[...]有一些草稿代码和一个内核模块,但是尚无法使用。

如果要关注端口的状态,请搜索邮件列表。#freebsd-vboxFreenode上还有一个IRC频道。它已发布到此帖子底部的freebsd-hackers邮件列表中。您将在那里找到开发人员。

最后,virtualbox-ose-additions根据目前的FreeBSD手册第22.2章,这是端口当前支持的功能:

VirtualBox™guest虚拟机添加项支持以下功能:

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

如您所见,FreeBSD还没有共享文件夹支持。

VirtualBox手册的第4.3章指出:

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

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


4

确保已在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>

嗨,皮特。感谢您的回答。实际上,我改了臂并使用了Ubuntu Server,因为我更喜欢非桑巴解决方案,而且FreeBSD还不支持vboxfs。
Matthieu M. 2012年

1
您不需要为上面的解决方案安装samba,它可以从FreeBSD的默认安装中运行。
皮特2012年

如果您有时间,我建议您再给一次freebsd,因为我发现它的jail功能对于开发非常有用。目前我有5个监狱:www(apache22 + php53),www(apache22 + php54),MySQL,PostgreSQL,电子邮件服务器。我发现这对于测试不同版本的php和数据库而言是无价之宝
Pete

另外,由于FreeBSD在默认情况下有许多终端,所以alt + f1-> alt + f8意味着如果您与监狱一起使用,则可以并行构建它们,从而在使用端口系统时节省了时间。哎呀,你甚至可以建立监狱只是为了构建软件。我用qjail。
皮特

好吧,我的目的是破解Clang / LLVM,所以对我来说还不错。
Matthieu M.

1

我正在解决同样的问题。Windows方面的几件事使我终于可以在FreeBSD 9.0中使用mount_smbfs:

  • 为系统启用匿名访问

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

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

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

在共享属性中,有两种创建共享的方法:简单共享和高级共享。我使用的是“高级共享”,由于某种原因,我在这一点上并不十分在意,但这并不起作用。我通过简单共享重新添加了共享,然后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

感谢您的回答,最后我切换到了Ubuntu(因为可以访问使用它的朋友,这更加容易)。
Matthieu M.

1
是的,只是想尝试帮助任何未来的Google员工。
twblamer

非常感谢您这样做,我尝试时很难找到任何解决方案:)
Matthieu M.
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.