QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1619|回复: 1

QEMU+Accelerator:开始简单又快速的模拟OS吧

[复制链接]
发表于 2005-2-24 17:14:23 | 显示全部楼层 |阅读模式
QEMU刚刚发布的Accelerator带来了QEMU革命,它不再是一个性能低等的模拟器
使用Accelerator的QEMU速度一下提升了5倍之多。
OSNews报道:
[code:1]QEMU is a generic and open source processor emulator which achieves a good emulation speed by using dynamic translation. Its sporting a new module called the 'Accelerator' which can achieve near native speeds, and currently runs on Linux 2.4.x and 2.6.x kernels. This means you could theoretically run Windows (or another OS) on a Linux machine at near native speeds without buying a commercial emulator.[/code:1]
今天赶紧升了级,果然不同反响,安装了RHEL4,Win2k,速度很好,也没有以前版本分出大于2G空间
造成硬盘检查出错的问题了,在模拟的linux中进行危险试验爽多啦。
QEMU安装也比win4lin/vmware简单,最主要QEMU是开源的,后两者都还需要序列号  
虽然Accelerator是专利产品,不过也是免费使用的,只是在分发上有一些限制.
总之是不错的东东喽,快试试吧!


QEMU有两种模拟方式:

1.完整的系统模拟:这种模式下,QEMU模拟一个完整的系统(比如说,整个PC),包括CPU和周边的计算机设备。你可以不必重启就可以同时运行不同的系统来调试系统代码。

2.User mode模拟(只能在Linux宿主机下使用):这种模式下,QEMU能够在Linux下运行从一个CPU到另一个CPU的编译过程。这通常可以被用来运行Wine模拟器或者是交错式的编译和调试。

这里只说模拟整个PC
注意:该方法仅适于2.6.x内核。2.4内核请查看QEMU文档

首先先下载,编译,安装:

目前只有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 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论坛
发表于 2005-5-8 18:05:36 | 显示全部楼层
好文,支持一下
顺便请问一下怎样确认有没有安装加速模块,我的qemu是用apt直接安装的,不知道是否安装了加速模块
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-20 06:17 , Processed in 0.061469 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表