TOP
|
QEMU+Accelerator:简单又快速的模拟OS |
[ 录入者:admin | 时间:2007-10-28 01:46:32
| 作者: | 来源:
| 浏览:389次 ] |
QEMU刚刚发布的Accelerator带来了QEMU革命,它不再是一个性能低等的模拟器 使用Accelerator的QEMU速度一下提升了5倍之多。OSNews报道: This means you could theoretically run Windows (or another OS) on a Linux machine at near native speeds without buying a commercial emulator. 今天赶紧升了级,果然不同反响,安装了RHEL4,Win2k,速度很好,也没有以前版本分出大于2G空间 造成硬盘检查出错的问题了,在模拟的linux中进行危险试验爽多啦。 :) QEMU安装也比win4lin/vmware简单,最主要QEMU是开源的,后两者都还需要序列号 :( 虽然Accelerator是专利产品,不过也是免费使用的,只是在分发上有一些限制. 总之是不错的东东喽,快试试吧! 不会装?不会用?看看我的安装,使用心得吧 ^_^ 注意:该方法仅适用于2.6.x内核,2.4内核请查看QEMU安装文档。
QEMU有两种模拟方式:
1.完整的系统模拟:这种模式下,QEMU模拟一个完整的系统(比如说,整个PC),包括CPU和周边的计算机设备。你可以不必重启就可以同时运行不同的系统来调试系统代码。
2.User mode模拟(只能在Linux宿主机下使用):这种模式下,QEMU能够在Linux下运行从一个CPU到另一个CPU的编译过程。这通常可以被用来运行Wine模拟器或者是交错式的编译和调试。
这里只说模拟整个PC :)
首先先下载,编译,安装: 目前只有CVS版本的QEMU才可以使用Accelerator(加速器),所以需要编译。而其他版本的QEMU,可以直接下载binary的,在/下解压缩即可使用,十分方便。不象win4lin,vmware这些模拟器还需要给内核打补丁。而且还不是开源的,安装比较麻烦。(至少我没成功安装过它们两个) 不过目前binary还不能使用加速器,所以速度会慢很多。相信很快binary版本就会加入这个加速器啦。 毕竟加速器刚出来没几天,值得期待。。。。 ^_^ OK,言归正传,开始来编译,安装CVS版本的QEMU,并且加入Accelerator支持: 首先从 http://www.dad-answers.com/qemu/ 下载当前CVS版本的qemu 我的版本是:qemu-snapshot-2005-02-22_23.tar.bz2 再从 http://fabrice.bellard.free.fr/qemu/kqemu-0.6.2-1.tar.gz 下载回来加速器 注意:编译kqemu需要内核源码包,将与当前内核版本完全相符的源码包解压在/usr/src下 并且确保/lib/modules/`uname -r`/build是正确指向内核源码目录的,如下所示: [root@LFS ~]#ls -l /lib/modules/2.6.10-lvm/build lrwxrwxrwx 1 root root 21 Feb 22 12:50 /lib/modules/2.6.10-lvm/build -> /usr/src/linux-2.6.10/ 如果没有正确指向内核源码目录,使用ln -s 命令建立链接: [root@LFS ~]#ln -s /usr/src/linux-2.6.10 /lib/modules/2.6.10-lvm/build 生成kqemu需要的内核源文件: [root@LFS ~]#cd /usr/src/linux-2.6.10 /root ------------> /usr/src/linux-2.6.10 [root@LFS linux-2.6.10]#make mrproper 确保内核源码纯净,保证kqemu编译出来可用。 [root@LFS linux-2.6.10]#cp /boot/config-2.6.10 .config 将当前内核配置文件复制过来 [root@LFS linux-2.6.10]#make [size=+0]scripts/ 生成kqemu需要的东东,没有这步,编译就会出错。
做好后就可以开始编译QEMU了,使用如下命令编译,安装: [root@LFS ~]#tar jxvf qemu-snapshot-2005-02-22_23.tar.bz2 [root@LFS ~]#tar zxvf kqemu-0.6.2-1.tar.gz -C qemu-snapshot-2005-02-22_23/ 使用-C qemu-snapshot-2005-02-22_23/ 将kqemu解压到qemu的目录中,让qemu支持kqemu [root@LFS ~]#cd qemu-snapshot-2005-02-22_23 /root ------------> /root/qemu-snapshot-2005-02-22_23 [root@LFS qemu-snapshot-2005-02-22_23]#./configure ...........略 KQEMU module configuration: --------->表示加入kqemu支持 kernel sources /lib/modules/2.6.10-lvm/build kbuild type 2.6 [root@LFS qemu-snapshot-2005-02-22_23]#make [root@LFS qemu-snapshot-2005-02-22_23]#make install 这样,qemu就安装到了/usr/local下,所有可执行文件在/usr/local/bin下,如果想安装到/usr: [root@LFS qemu-snapshot-2005-02-22_23]#./configure -->./configure --prefix=/usr
安装好后,kqemu模块安装在: /lib/modules/2.6.10-lvm/misc/kqemu.ko 并且安装脚本会自动在/dev/下创建一个kqemu设备: [root@LFS linux-2.6.10]#ls -l /dev/kqemu crw-rw-rw- 1 root root 250, 0 Feb 24 2005 /dev/kqemu [root@LFS linux-2.6.10]# 加载kqemu模块: [root@LFS linux-2.6.10]#modprobe kqemu [root@LFS linux-2.6.10]# 使用lsmod命令检查: [root@LFS linux-2.6.10]#lsmod |grep kqemu kqemu 41864 0 [root@LFS linux-2.6.10]#
如果你发现重启后/dev/kqemu消失了,需要重新创建它: [root@LFS linux-2.6.10]#mknod /dev/kqemu c 250 0 [root@LFS linux-2.6.10]#chmod 666 /dev/kqemu 你可以将上面两行命令加入到系统的启动脚本中,例如/etc/rc.d/rc.local 还有上面那个modprobe kqemu也一并加进去吧(如果你想每次系统启动自动加载kqemu模块) 注意的是,加到/etc/rc.d/rc.local时,命令最好写绝对路径,例如/sbin/modprobe
OK,现在QEMU,Accelerator都已经安装完成,可以开始安装OS啦。 这里我以安装RHEL4为例说一下qemu的基本用法,非常简单!
首先创建磁盘镜像文件: [root@LFS distro]#qemu-img create redhat.img 6G Formating 'redhat.img', fmt=raw, size=6291456 kB [root@LFS distro]# 这样就创建好了一个名为redhat.img的6G磁盘镜像。 注意:创建的磁盘镜像文件大小最好小于你实际分区剩余空间。
开始安装RHEL4: [root@LFS ~]#qemu -boot d -cdrom /rhel4/EL_disc1.iso -hda redhat.img --enable-audio -boot d :从光驱引导 a(软盘引导) c(硬盘引导) d(光驱引导) -cdrom : ISO文件,也可以直接使用光驱设备(/dev/cdrom)...别忘了插入光盘 :) -hda : 就是虚拟机里的硬盘啦,也就是刚才qemu-img创建出的东东。 -enable-audio : 声卡支持
安装过程中,要求换盘: 在qemu中按ctrl+alt+2切换到qemu monitor模式 输入?或help可以查看可用命令及使用说明。 (在其他版本的qemu中,运行qemu加载OS后,这个shell就会自动变成qemu monitor模式) change device filename -- change a removable media 看来它就是用来换盘的了 : change cdrom /rhel4/EL_disc2.iso
monitor下还有几个常用的命令: savevm filename 将整个虚拟机当前状态保存起来 loadvm filename 恢复 (最初我没用change换盘时,就是先savevm->重新运行qemu->loadvm :( ) sendkey keys 向VM中发送按键,例如你想在虚拟机里切换到另一个终端,按下了ctrl-alt-F2 不幸的是,切换的却是你的主系统,所以就需要用 sendkey了 sendkey ctrl-alt-f2 还有其他几个命令,自己看看啦。
经过N久终于装好了,现在可以启动试试: [root@LFS distro]#qemu redhat.img -enable-audio -user-net -m 64 -user-net 相当于VMware的nat,主系统可以上,虚拟机就可以 -m 64 使用64M内存,缺省下使用128M
ctrl-alt-f 全屏 ctrl-alt 主机/虚拟机鼠标切换 qemu还有一些其他参数,输入qemu可以查看其相关说明。
Good Luck ! ^_^
相关资源: http://fabrice.bellard.free.fr/qemu qemu 主页 download,doc,faq....etc http://www.dad-answers.com/qemu/ QEMU CVS Snapshot版本和一些有用的QEMU外围支持工具 http://www.dad-answers.com/qemu-forum/ qemu论坛
|
|
|
|