2015-05-15 10:16:07
来 源
中存储网
Ubuntu
假期闲来无事,想对三平台多做些了解,无奈不是土豪负担不起一台MacBook, 出于经济和方便测试的考虑,选择了在Windows上的VMWare中搭建Win/Mac/Linux三个平台的虚拟机。 搭建中使用的软件版本如下: 宿主机Windows 2008 R2 Standard VMWare Workstation 7.1.

假期闲来无事,想对三平台多做些了解,无奈不是土豪负担不起一台MacBook,

出于经济和方便测试的考虑,选择了在Windows上的VMWare中搭建Win/Mac/Linux三个平台的虚拟机。

搭建中使用的软件版本如下:

宿主机Windows 2008 R2 Standard

VMWare Workstation 7.1.3

虚拟系统使用的安装盘有:

Windows XP Professional SP3 MSDN VOL(iso镜像)

Mac OS X Snow Leopard 10.6.3 Retail(原版dmg镜像)

Ubuntu 10.10(iso镜像)

笔记本的CPU为i5 450M,支持VT.

其中Windows XP和Ubuntu的安装无需多说,按部就班即可,其中Ubuntu 10.10甚至识别到了自己是安装在虚拟机中,安装好了以后机器名即为compcj-virtual-machine。

只有Mac OS X由于VMWare官方不对其提供支持,因而多费了一番周折...

建立FreeBSD 64bit的虚拟机,分配了40G的虚拟磁盘,

然后自己用记事本打开虚拟机的配置vmx文件,找到里面的"GuestOS"一项,修改为GuestOS="darwin10",

这时重启VMWare, 就会发现虚拟机的操作系统变成了"Mac OS X Server",这个操作是实现兼容的关键。

按照教程使用了RebelEFI和darwin300两张引盘,结果发现都无法引导,VMWare总是显示如下提示:

A virtual CPU has entered the shutdown state. This would have caused a physical machine to restart. This can be caused by an incorrect configuration of the virtual machine, a bug in the operating system or a problem in the VMware Workstation software. Press OK to restart the virtual machine or Cancel to power off the virtual machine.

后来查询,才发现老的darwin300是无法正常引导较新的snow leopard安装盘的,

要用darwin_snow_legacy.iso这个引盘,实质上这个引盘就是EmpireEFI,换用该引盘以后安装一切顺利。

安装完成后根据教程装好声卡驱动以后就可以正常使用了,并且darwin_snow_legacy.iso其实就是VMWare Tools,安装之,虚拟机的分辨率就可以调节了,同时可以通过在虚拟机属性页里面设置Shared Folders来共享文件了。

本以为到这里就大功告成了,开始放心地软件更新打算升级到10.6.6,结果升级完重启以后就悲剧了——鼠标键盘完全不能使用,从开机的引导信息来看,是IOUSBFamily.kext这个内核扩展发生了符号错误。搜索Google,发现有人提到10.6.6更新的新版本的IOUSBFamily.kext存在兼容性问题,解决办法就是还原到10.6的kext(IOUSBFamily版本为3.7.8),无奈键盘鼠标已不能用,又如何还原?想到用VMWare挂载虚拟磁盘,却又发现磁盘是特别的HFS文件系统,需要MacDrive之类的软件才能读取。

正当心灰意冷打算重来时,偶然找到一张新版的darwin300引盘(darwin.iso),换用之,键盘和鼠标居然又恢复了生机!看来这个是EmpireEFI的一个缺陷。

可惜好景不长,用了新引盘以后,虽然刚开机正常,只要持续一段时间不使用,键盘鼠标就会失效,必须重启。Google此问题,居然发现,不光是黑苹果,很多真苹果在更新到10.6.6以后也出现了同样的问题!

参见

No USB Keyboard or Mouse after 10.6.5 update

http://discussions.apple.com/thread.jspa;jsessionid=C27896684FCD45A027079E3956957663.node0?messageID=12716230&#12716230

查阅苹果开发者页面,10.6.5和10.6.6使用的IOUSBFamily.kext同为4.1.7,看起来这个版本的兼容性的确不太好。

刚好一个群里的朋友是Apple的付费开发者,能够下载任意版本的kext,要来10.6.4的IOUSBFamily.kext版本(4.0.2)替换以后(记得替换前用cp -R来备份4.1.7版),问题解决。

P.S.用Safari打开含有Flash的页面就假死...还没找到什么好的解决办法...只好另外装了个Firefox用...

三平台虚拟机就这样完成啦...好好玩.. 

声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。