QEMU使用笔记
转载时请注明出处和作者联系方式
作者联系方式:李先静 <xianjimli at hotmail dot com>
那台跟了我四年多的老电脑,终于经不住深圳酷热的天气,在一个炎热的下午罢工了。折腾了一个晚上也没有搞好,真有些可惜。不过也好,旧的不去新的不来,前几天去配置了一台新电脑,AMD 双核64位CPU,在上面安装了Fedora 7,感觉很爽。
不过我在编译phoneme的时候,发现编译64位的代码有点问题,按网上文章中所说的,给gcc加了几个参数,结果还是不行,最后决定在虚拟机上安装一个32位的系统。平常都是在windows下使用VMWare安装虚拟机,对VMWare比较熟悉,所以想在linux下使用VMWare,但是在编译内核模块时遇到了麻烦,折腾了好久还是以失败告终,只好放弃了。
接下来我想试试xen,到官方网站下载时,发现要注册用户才能下载,懒得去注册。
想了想,何不试试qemu呢,以前曾经想用qemu去模拟运行我们的手机环境,没有成功,感觉qemu又慢又难用,对它没有什么好感。没有什么别的办法了,只好试试,找了几篇文档看了看,发现其使用竟出奇的简单。
1.安装qemu软件包。 FC7的安装盘里已经带有qemu,使用rpm安装即可。
rpm -ivh qemu-0.9.0-2.fc7.x86_64.rpm
2.创建虚拟硬盘。用dd创建一个数据文件即可。
dd if=/dev/zero of=linux.img bs=1024 count=8000000
3.安装Fedora 6。先把光盘放进光盘(直接在-cdrom后面指定iso文件也行)。-boot d表示从光盘起动。接下来和正常安装没有什么差别。
qemu -hda /work/qemu/linux.img -cdrom /dev/cdrom -boot d
4.运行虚拟机。记得这次要用boot c,从硬盘起动。
qemu -hda linux.img -boot c -localtime -m 256 -usb
5.配置网络。网络不需要特殊配置,在GUEST机上使用DHCP就OK了,它获得的IP地址是10.0.2.15。
我发现GUEST机可以用SSH访问HOST机,GUEST机也可以通过HOST机访问外网, 但HOST机不能访问GUEST机,而且两者都PING不通对方。
6.把GUEST的GUI定向到HOST机上。
GUEST机是在虚拟机上运行的,速度有点慢,为了减轻它的负载,我决定把GUI显示到HOST上。本来这个很简单,通过DISPLAY环境变量就行了。不过,没有想的那样顺利。
我的HOST机有两块网卡,一个网卡接笔记电脑,IP是192.168.0.1,另外一个通过天威上外网,IP是用DHCP获得的。
在GUEST机上:export DISPLAY=192.168.0.1:0
在HOST机上:xhost +10.0.2.15
但在GUEST上运行gedit,总是报告打开显示设备失败,真是奇怪。后来用ps查看 Xorg 的运行参数,发现有-nolisten tcp一项,原来X不支持TCP连接。
修改 /usr/share/gdm/defaults.conf中的DisallowTCP为false,让其支持TCP连接。
reboot之后重新再试,发现还是不行。打开/var/log/Xorg.0.log,发现里面的错误信息竟是rejected from IP 192.168.0.1。奇怪,IP为什么是HOST的IP而不是GUEST的IP呢?先不管它,用xhost把 192.168.0.1也加入进去吧。
在HOST机上:xhost +192.168.0.1
再运行gedit,一切OK了,界面显示到HOST上。
~~end~~