已经可以在VirtualBox中正常的使用Mac进行开发了,但是现在想要把一些文件从WIn7下共享到VirtualBox中的Mac中去,所以需要去折腾一些,VirtualBox中的Mac,如何和Win7之间实现共享。
1.打算先去试试VirtualBox本身自带的文件夹共享功能:
选择虚拟机,然后点击设置,找到共享文件夹,点击那个带加号的文件夹:
然后设置对应的路径:
确定后,就创建好了:
但是注意到了上面提示了“该功能需要在虚拟电脑中安装增强包”。
而之前就在VirtualBox官网的手册中看到“VirtualBox does not provide Guest Additions for Mac OS X Server at this time.”,即暂时不提供这个增强功能包,所以,暂时也就无法使用此方式实现Win7和VirtualBox中的Mac共享了。
而且后来也找到其他很多人,比如这个,提到此问题,因为本身Mac OS X操作系统就不允许装在非Mac的机子(硬件上),所以有很多限制的。
总之,此法失效。
2.看到这里提到说可以通过共享上网,然后利用Mac中的SMB和主机Win7之间实现文件夹共享。
这个也是我之前就在别的地方看到的,所以就继续折腾SMB的方法。
3.网上找到的一些资料,都没有解决办法: 1,
找到个教程,却还是说的是主机是Mac,虚拟机是WinXP的。
4.先去关闭Mac虚拟机,看了下,默认的共享上网方式是 网络地址转换(NAT):
而列表中所提供的选项有:
未指定
网络地址转换(NAT)
桥接网卡
内部网络
仅主机(Host-Only)适配器
通用驱动
这些方式之间的区别,后来找到了很好的解释:
所以去设置为 桥接网卡:
然后再去启动Mac看看是否可以正常上网。
结果证明是可以正常用Safari上网的。
不过,另外,看到Win7中的网卡,有个Host-Only,不知道是刚出来的还是之前用NAT时就有的:
对应IP为 196.254.54.175:
而本身的Local Area Network的IP是 192.168.3.75:
看起来好像不是桥接网络弄出来的。
先不管,先去按照:
介绍的试试,看看能否通过Mac的SMB直接访问Win7。
结果连接不成功,窗口闪动了几下,还是保持在当前窗口。
另外,也去试了试,使用"客人"去连接,结果也显示没有“对服务器 xxx上您的账户的访问已被拒绝”:
又折腾了一下,点击浏览:
从Finder中找到的局域网里面的PC:
点击 连接失败:
结果又是那个对话框,然后最后还是上面同样的错误,都是无法连接。
5. 最后,参考:
Re: Shared Folder not accessible in Mac image for me
去一步步操作:
(1)在win7中共享一个文件夹
(2)再关闭Mac虚拟机,重新把网络方式改回NAT
(3)重新打开Mac虚拟机
结果却很悲催的启动不了了,出现错误Sound assertion in AppleHDAEngine at line 7160:
不过更改一下网卡设置,还是设置为NAT,然后再重启一下,就又好了,可以进入Mac了。
然后 Finder->前往->连接服务器,输入smb加上win7的ip地址,点击连接:
结果,还是连接不上,然后试了试,把用户名换为我这里的大写的CLI,结果就可以成功连接上了:
选择对应的所共享出来的文件夹,即可看到对应文件夹的内容了:
注意,此处所看到的tmp,是我刚才就共享出来的文件夹,倒是上面共享出来的tmp下面的music,没有独立显示出来的。无论如何,反正操作是一样的,知道如何操作就好了。
【总结】
对于主机是Win7,在VirtualBox中安装了虚拟机Mac来说,首先要明白的逻辑关系是:
主机 = Host OS = Win7
客户机 = 虚拟机中的系统 = Guest OS = (VirtualBox中的)Mac
想要做的事情是:
从VirtualBox中的Mac虚拟机,可以访问到主机Win7中的文件夹。
具体操作步骤是:
1.在主机Win7中共享出来一个文件夹
注:
A。可根据需要自己设置相应权限。我一般都设置为Everyone + Read/Write。
B。自己确保的确已经共享成功了,确保可以在网络邻居 -> 自己的计算机中能查看到该共享出来的文件夹。
2.将VirtualBox的Mac的网络连接方式设置为 网络地址转换(NAT)
注:
A。一般默认都是此设置,所以其实不需要做任何改动即可。
B。经过后来的折腾而验证,不论是使用默认的NAT还是桥接网卡,后面的smh都是可以找到Win7中共享出来的文件夹的,当前前提是用户名和密码要正确。。。
3.从VirtualBox中运行Mac
4.打开Finder -> 前往 -> 连接服务器
5. 输入 smb://192.168.3.75
注:其中192.1683.75是Win7的IP。可以在 控制面板 -> 网络 -> 局域网地址 中找到对应的值。
6. 在跳出的对话框中,默认选择的 连接身份 是 注册用户,然后输入你Win7主机中的管理员的用户名和密码。
注:其实,如果你Win7中有多个注册用户,且有对应的权限,按理来说,每个用户都可以登入的。
注:在Win7下添加的共享文件夹,即使设置了Everyone,且是Read/Write,但此处如果“连接方式”选择“客人”的话,还是会遇到“对服务器 xxx 上您的账户的访问已被拒绝。 请联系您的系统管理员以获得更多信息”
7.然后smb中就可以帮你列出来Win7中所共享出来的那些文件夹了,比如此处的tmp文件夹,然后点击打开,就可以看到共享的内容了。
注:后来发现,VirtualBox中的Mac访问Win7共享文件夹后,会生成一个.DS_Store文件的。
提示:
1. 我此处,在Win7中共享出来的文件夹,有的可以在Mac的smb中找到,有的却找不到。很是奇怪。
相应的,在Mac的smb中找不到的文件夹,在Win7中的全部共享中,也找不到。
注:在win7中查看当前所有的共享,办法是:网络邻居中,点开你自己的计算机,就可以看到所有的共享了。
或者在共享某个文件夹操作完毕后,有个Show me all the network shares on this computer,也是打开对应的地址而已。
比如我这里的就是:\\PC-CLI-1,其中PC-CLI-1是我的计算机名。而当前ip是192.168.3.75,所以和:\\192.168.3.75,的效果是一样的。
【后记】
后来还是根据该帖子,但是是另外别人的回复:
Re: Shared Folder not accessible in Mac image for me
然后再去试试,使用桥接,是否真的可行。
1. 然后就再去设置为 桥接网卡,但是却又出现上述的错误:
Sound assertion in AppleHDAEngine at line 7160
然后网上找了一堆,也还是没解决。
不过,关于这句话,倒是有点明白了,好像就是所谓的,Mac对硬件的型号会去扫描匹配度,如果发现不是自己的硬件,会报错的,就是指的这里的,发现不是Mac自己的声卡,所以才报错的。
不过由后续的可以运行Mac系统来说,好像不是严重的错误,或者说可以被VirtualBox绕过去?所以才可以继续运行Mac的?但是之前看到VirtualBox官网说不会帮你绕过这些东西的啊。。。所以,还是不是很清楚。。。
先不管,再去尝试把声卡从 Intel HD音频,换为ICH AC97:
结果却又死在了:
SMC smcReadKeyAction ERROR BEMB
2. 再去把声卡改为SoundBlaster 16:
结果竟然是可以进入Mac系统了。。。
然后再去试了试smb,结果也是可以正常找到Win7中共享出来的文件夹的:
到此,也更加深入的明白了VirtualBox中的网络连接方式:
网络地址转换NAT:
虚拟机Mac没有自己独立的IP的。
虚拟机是虚的,不存在与真实的网络中的。
虚拟机可以访问主机Win7而已,但是Win7无法访问到(虚的)Mac。
桥接网卡:
虚拟机有独立的IP,就像同处一个局域网中的其他的计算机一样。
因此,可以在Mac的smb中找到类似于Win7中看到的 网上邻居一样的效果,可以看到其他各个同局域网内的计算机,当然也包括此台Host的Win7所对应的计算机了。
所以,只要本身Win7共享出来了文件夹了,那么此时在Mac中肯定也是可以访问到该共享文件夹的。
更多关于两者的区别,可参考:VirtualBox虚拟机网络设置(四种方式)
不过,目前看来,好像如果使用桥接网卡,则偶尔会导致Mac虚拟机无法启动,而之前一直使用默认的NAT方式,则很少出现此类问题。
转载请注明:在路上 » 【已解决】实现VirtualBox中的(Guest OS)Mac和主机(Host OS)Win7之间的文件和文件夹共享