首先,TEMU需要用gcc-3.4编译,而gcc-3.4已经消失在ubuntu的软件库中了。推荐到此下载deb安装包http://archive.ubuntu.com/ubuntu/pool/universe/g/gcc-3.4/。
所需安装包有:
gcc-3.4-base_3.4.6-6ubuntu3_i386.deb、如果直接1个1个安装的话会发现g++-3.4和libstdc++6-dev发生了循环依赖,真是很蛋疼。可以用dpkg的强制安装。最简单的是把这些安装包放在同一个目录下,然后在这个目录下运行
gcc-3.4_3.4.6-6ubuntu3_i386.deb、
cpp-3.4_3.4.6-6ubuntu3_i386.deb、
g++-3.4_3.4.6-6ubuntu3_i386.deb、
libstdc++6-dev_3.4.6-6ubuntu3_i386.deb
sudo dpkg -i *.debgcc-3.4安装成功后可以按照TEMU installation and user manual的指示安装。由于现在的QEMU已经全面转向KVM,所以原来的QEMU Accelerator (kqemu)已经被抛弃了。幸好TEMU还是支持新版的QEMU。如果要用kqemu加速,就只能下载旧版qemu手动安装了,有些老教程可以参考。TEMU在开始分析后是不支持KVM和kqemu加速的,但KVM和kqemu可以加快虚拟机准备的时间,比如装系统、拷病毒文件什么的。
常用的QEMU指令如下 :
qemu-img create -f qcow2 winxp.qcow2 20G # create a virtual disk基本就是这样,TEMU的指令参考manual。不过我有2个遗留问题:
qemu -hda winxp.qcow2 -cdrom winxp_sp3.iso -boot d -m 1024 # install windows xp sp3
qemu -hda winxp.qcow2 -cdrom winxp_sp3.iso -boot c -m 1024 # reboot and finish installing windows xp sp3
qemu winxp.qcow2 -m 1024 # boot
qemu-img create -f qcow2 -b winxp.qcow2 snapshot.qcow2 # create a snapshot, you can boot from snapshow.qcow2 and don't worry about damage the vm in winxp.qcow2
1、我必须额外加上-no-kvm的参数,才能启动vm,否则QEMU会停止在booting from cd-rom/disk的地方。不知道是什么原因,我查过kvm是支持我的CPU AMD Phenom II X4的。而且QEMU-KVM在启动时也没有任何报警信息说KVM不能用等等。也许我用的QEMU-KVM 0.12.5有bug?
2、我无法在QEMU中上网,本来应该是用默认的网络设置就可以上了(类似VirtualBox的NAT上网),但是我怎么试都不行。我还试了网上各种用tun/tap上网的教程,也没有成功。昨天在host中开了一个privoxy代理,成功上网了一阵,今天又不行了,怪异。传文件现在只能通过tftp和mount vm disk。SMB服务也没有尝试成功。
Mount virtual disk可以用 (refer to http://blog.loftninjas.org/2008/10/27/mounting-kvm-qcow2-qemu-disk-images/):
sudo modprobe nbd max_part=8
sudo qemu-nbd winxp.qcow2
sudo qemu-nbd --connect=/dev/nbd0 winxp.qcow2
mount /dev/nbd0p1 /mnt/disk_c
TEMU的功能众多,还在研究中。我装了个eclipse,慢慢调试它,逐渐理解它的功能。TEMU的文档不详细,docs中有一个doxygen生成的文档的压缩包,比较有用。
调试的时候遇到一个问题,eclipse老是由于system signal sigusr2而break。如果是用的是gdb的话,可以在从console的下拉中选择gdb console,输入:
handle SIGUSR2 nostop noprint pass
0 意見:
发表评论