假期闲来无事,想对三平台多做些了解,无奈不是土豪负担不起一台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官方不对其提供支持,因而多费了一番周折…
参考了这里教程:VMware Workstation 7.0 虚拟机安装雪豹Snow Leopard 10.6
http://www.linuxidc.com/Linux/2011-02/32205.htm
建立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(即这里http://www.linuxidc.com/Linux/2011-02/32205.htm提供的darwin300)是无法正常引导较新的snow leopard安装盘的,
要用darwin_snow_legacy.iso这个引盘(下载在这里http://www.linuxidc.net/thread-1806-1-1.html),实质上这个引盘就是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�
查阅苹果开发者页面,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用…
三平台虚拟机就这样完成啦…好好玩…