最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【已解决】实现VirtualBox中的(Guest OS)Mac和主机(Host OS)Win7之间的文件和文件夹共享

VirtualBox crifan 9237浏览 0评论

已经可以在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

而列表中所提供的选项有:

多种网络方式

未指定

网络地址转换(NAT)

桥接网卡

内部网络

仅主机(Host-Only)适配器

通用驱动

 

这些方式之间的区别,后来找到了很好的解释:

VirtualBox虚拟机网络设置(四种方式)

所以去设置为 桥接网卡:

桥接网卡

然后再去启动Mac看看是否可以正常上网。

结果证明是可以正常用Safari上网的。

不过,另外,看到Win7中的网卡,有个Host-Only,不知道是刚出来的还是之前用NAT时就有的:

VirtualBox Host-Only Network

对应IP为 196.254.54.175:

virtualbox host-only ip

而本身的Local Area Network的IP是 192.168.3.75:

LAN IP

看起来好像不是桥接网络弄出来的。

先不管,先去按照:

[mac] mac os访问win共享文件夹

介绍的试试,看看能否通过Mac的SMB直接访问Win7。

Finder

前往 连接服务器

输入smb加上win7的ip

正在连接 smb

输入Mac的用户名和密码

结果连接不成功,窗口闪动了几下,还是保持在当前窗口。

另外,也去试了试,使用"客人"去连接,结果也显示没有“对服务器 xxx上您的账户的访问已被拒绝”:

对服务器 上您账户的访问已被拒绝

又折腾了一下,点击浏览:

点击 浏览

从Finder中找到的局域网里面的PC:

pc-cli-1

连接失败

点击 连接失败:

点击 连接失败

结果又是那个对话框,然后最后还是上面同样的错误,都是无法连接。

5. 最后,参考:

Re: Shared Folder not accessible in Mac image for me

去一步步操作:

(1)在win7中共享一个文件夹

share with

select everyone

click add

choose read write

click share

share done

(2)再关闭Mac虚拟机,重新把网络方式改回NAT

change back to NAT

(3)重新打开Mac虚拟机

结果却很悲催的启动不了了,出现错误Sound assertion in AppleHDAEngine at line 7160:

Sound assertion in AppleHDAEngine at line 7160

不过更改一下网卡设置,还是设置为NAT,然后再重启一下,就又好了,可以进入Mac了。

然后 Finder->前往->连接服务器,输入smb加上win7的ip地址,点击连接:

smb connect

input win7 usr pwd

结果,还是连接不上,然后试了试,把用户名换为我这里的大写的CLI,结果就可以成功连接上了:

select shared folder

选择对应的所共享出来的文件夹,即可看到对应文件夹的内容了:

mac in virtualbox can access win7

注意,此处所看到的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:

ICH AC97

结果却又死在了:

SMC smcReadKeyAction ERROR BEMB

SMC smcReadKeyAction ERROR BEMB

 

2. 再去把声卡改为SoundBlaster 16:

SoundBlaster 16

结果竟然是可以进入Mac系统了。。。

然后再去试了试smb,结果也是可以正常找到Win7中共享出来的文件夹的:

桥接网卡 同样smb可用

到此,也更加深入的明白了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之间的文件和文件夹共享

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
82 queries in 0.239 seconds, using 22.12MB memory