各种虚拟机体验杂谈 --- 兼发布 google chrome os (chromiumos) vmware版本

来源:互联网 发布:扬子石化热电厂优化 编辑:程序博客网 时间:2024/04/29 02:44

前两天赶时髦,把笔记本换上了win8 pro。


换win8pro的原因,一个是价格真的很有诚意,另一个就是从DP版本开始就一直用,虽然兼容性问题多多,但作为宿主主机还行。

而且xenclient也实在是让人窝火,号称裸机虚拟,其实硬盘速度慢如蜗牛;尤其是电源管理缺陷多多,用在笔记本上非常影响感受。 前不久citrix收购了一家同类公司,把收购来的产品作为xenclient的新版发布了,性能,体验确实改进很多,电源管理貌似改进其实更差了。 在实在是看不到改进的情况下,无奈放弃了xenclient。


win8 pro另一个很有诚意的地方,就是继承了hyper-v虚拟机。多年来hyper-v一直是只听到楼梯响,但是大家对hyper-v的评价期待还是蛮高的。 尤其是win8 pro集成的hyper-v还带了一个非常让人心动的功能: hyper-v副本。这个功能可以实现虚拟机的同步,达到在线/离线都能使用的目的。

这个虚拟机同步功能是我一直在寻找的功能,微软把它简单的说成了"副本",差点就把它略过去了。 citrix和vmware也都具备这个功能,但是都以非常复杂,尤其是臃肿的企业架构的方式实现的,在简单的测试后我就把xenclient的同步服务器给彻底删除了。


为了这个副本,是很犹豫了一会要不要投靠到hyper-v阵营时。后来决定先测试下,勾上win8的hyper-v功能,安装了最为常见的linux系统ubuntu 12.04。结果很是让人失望,直接在半途中就死掉了。而且是彻底的死了,不仅是虚拟机,连win8的宿主也死掉了。

于是搜了下hyper-v支持的系统,貌似只支持windows,linux只有一个suse在列。彻底失望,只能放弃了。 hyper-v号称一类虚拟,要支持通用系统应该是很简单的,要不支持一种系统才会需要多做些工作。 windows系统,玩玩也就算了;既然要虚拟,自然是用到多种系统,不支持linux系统真有点难以揣测。

ps:安装完hyper-v后,就不能安装其他的虚拟系统了,会提示冲突。


好吧,绕了一圈,还是回到老土的vmware上来。(其实经过使用这些虚拟系统,发现最有潜力的还是kvm,可惜kvm太过于通用,以至于没有一个特别专职好用的dom0。而且我也木有多余的电脑可以拿来折腾了,以后有机会再试一试吧)。


换到vmware上来之后,就寻思是不是用个精简的上网本系统专门来上网。 首先考虑到的是出师未捷身先死的meego,拉下来最新的版本,不出意外的挂了;然后是尚未出师的chrome os。 这个系统刚出来时测试过他的vmware版本,当时觉得挺好笑的。现在想下个新版本,却找不到了。 原来提供发布的网站,只提供 virtulbox的版本了。下来后折腾一番,没能转起来。由于网上还找不到较新的vmware版本的chromiomos,于是决定自己动手,从源代码里编译一份出来。


操作倒是挺简单的,官方网站上就有详细的指导。过程则有点小曲折,虽然浪费了一些功夫,整体还算顺利。

这里呢,一是把握编译好的现成版本发布出来,共需要的人下载;另外呢就是把编译过程中碰到的一些问题简单描述下,避免后来人再走一些不必要的弯路。


注意事项1:用于编译的系统必须是x64的系统,最好是ubuntu 12.04版。

其实这个官方指导里也提到了,我没细看。刚好有个ubuntu 12.04版的系统,直接就在上面干了。结果下完半天源码(2G左右),编译的时候才提示报错,必须在64为系统下才能编译。只好又重新下了个x64的ubuntu 12.04。中间倒换数据浪费不少时间。


注意事项2:拉下来的源代码,不要移动目录。

我就因为数据考来考去(从32位ubuntu考到新装的64位ubuntu上),编译不能通过,浪费半天工夫,最后还是在官方的讨论组里找到了答案:原来源代码中的某个库(貌似adobe的某个库),引用的方式不规范,导致拷贝后找不到原来的引用。 以后的版本会修正这个缺陷。临时的解决办法也很简单,不过我既然在这里提醒了,估计读的人不会犯同样的错了。


注意事项3:在源码目录留好空间。

整个源代码约2G,下载下来占空间4.5G左右(一半代码一半库)。

启动编译时还会下载约300M的工具,编译过程中还会随时检查并下载需要的组件,第一次编译要有耐心(以后编译会快很多)。 我就是因为看着老是不动,fetch 一个组件 个把小时没啥变化,以为网络不通,来来回回中断、重新启动,重新联网,上vpn等折腾好久。后来想通过了,启动编译后扔那里就去睡觉了。第二天起来一看,出错了。就重新启动编译。多试几次,就编译通过了。

编译完成占空间约 24G。我预先分配的20G硬盘,出错后又重新增加的空间。


编译完成后,打包镜像,并把镜像输出成目标格式。 第一次调用  image_to_vm.sh 忘了加 --format vmware (其实是指导里隐藏到某处才提到可以使用--format参数)。 输出的是默认的 qemu kvm的虚拟机格式。 输出的镜像 有两个,一个带qemu名称的bin文件,约5G, 另一个不带qemu名称的bin文件,只有一半约2.3G大小。

这两个文件的大小都有点出乎我的意料,毕竟去年的版本中才300M左右。 于是加上vmware参数重新输出了一次,这次好多了,输出的 ide.vmdk,只有800M。同时还输出了虚拟机配置文件chromiumos.vmx。

到这一步,整个代码目录所占空间32G(虚拟磁盘的大小)。


注意事项4:找不到网卡的bug。

上面生成的 chromiumos.vmx 和ide.vmdk,就可以直接在vmware里打开了。但是会卡在配置的第一屏,因为找不到网卡。这是个bug,原因在于内置的驱动已经适应不了新版 的vmware了,需要在chromiumos.vmx里加一句 ethernet0.virtualDev = "e1000"  强制vmware使用e1000的网卡类型,就大功告成了。


对于懒得编译的朋友,下面是我编译好的 chromiumos.vmx 和 ide.vmdk。代码是2012-11-04更新的。

http://www.kuaipan.cn/file/id_9967944784208515.htm


原创粉丝点击