以前曾经想用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地址是
serif”>10.0.2.15。
我发现GUEST机可以用SSH访问HOST机,GUEST机也可以通过HOST机访问外网, 但HOST机不能访问GUEST机,而且两者都PING不通对方。
6.把GUEST的GUI定向到HOST机上。
资料来源:学网(www.xue5.com),原文地址:http://www.xue5.com/itedu/200707/124137.html
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,总是报告打开显示设备失败,真是奇怪。欢迎光临学网,点击这里查看更多文章教程 [1] [2] [3] [4]
后来用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上。
一:介绍一下QEMU
相信不少朋友玩过虚拟机,比如VMWARE,MS VPC。现在我给大家介绍一下基于GPL协议的开放源代码并且跨平台的虚拟机软件:QEMU。QEMU的好处是不用安装庞大的虚拟机系统。并且介于它的免安装、绿色、小巧的特点,我们有理由选择它,当然它不能完全取代VMWARE之类的虚拟机软件(由于QEMU是完全虚拟了一个真实的CPU,故CPU占用 率较高)。
QEMU适用于Linux ,Windows, FreeBSD and MaxOS X这几个平台,由于本人水平有限,仅仅介绍一下WINDOWS平台下的QEMU。经我测试对有些系统支持的不够好,比如网友们自己定制出来的 WINDOWS系统维护光盘不能够良好运行。不过瑕不掩瑜,QEMU对LINUX支持的比较好,对于一些LINUX新手来说,如果不想破坏硬盘上已有的 Windows系统,就可以用QEMU来试试。
请到这里下载QEMU FOR WINDOWS的最新版本http://free.oszoo.org/ftp/qemu/win32/daily/ 再下载 http://free.oszoo.org/ftp/qemu/win32/daily/QemuInstall-20051120.exe 完毕之后安装之。安装目录中QEMU.exe便是主程序了,它是基于命令行界面的32位程序,其余的诸如bios.bin、vgabios.bin之类看名称就知 道是虚拟机的主板BIOS程序还有显卡BIOS了。
QEMU并不提供BIOS设置的相关内容(好象是由于版权问题),作为一个小巧的虚拟机软件,它也没有必要对这方面提供支持。因为在后面看到QEMU里用强大的参数,照样可以实现BIOS启动选择的功能。具体就是从虚拟磁盘启动还是从可引导光盘镜像启动, 当然也包括了软盘启动。
二:如何启动QEMU
1运行批处理文件
新建一文本文件,在其中输入如下语句
REM Start qemu on windows.
@ECHO OFF
START qemu.exe -L . -m 128 -hda linux.img -enable-audio -localtime
CLS
EXIT
并且另存为*.bat批处理文件。
简单说明一下语句中的linux.img就是默认启动的Linux磁盘镜像,-L设置的是BIOS目录,-hda是设置硬盘硬盘镜像,磁盘镜像文件可以由 qemu-img.exe生成,并且可以设置磁盘空间大小。
例如要设置一个10MB的虚拟硬盘空间,在命令行中键入以下命令:qemu-img.exe create harddisk.img 10M, 这样就会在当前目录建立了一个10MB大小,名称为harddisk.img的虚拟磁盘。-enable-audio参数表示开启了声音,- locoltime则表示使用主机设置的时间。在运行虚拟机的时候,如果鼠标丢失(在虚拟机的运行窗口出不来时,只要同时按CTRL和ALT键就可以将鼠 标释放到主机,这点和VMWARE一样)
2使用快捷方式启动
建立一个指向QEMU.exe的快捷方式,在快捷方式的属性里设置QEMU相应的运行参数(参数如上述),然后双击这个快捷方式即可
3运行安装目录中的QEMUMenu.bat(推荐)
这个是我最常用的运行QEMU的批处理了,可以在此完成大部分的操作,比如设置光盘镜像路径,生成虚拟磁盘文件等。
例如:
QEMU_BIOS_DIR= oolsurningOperatingSystemQEMUios
=== QEMU Menu (v20041121) ===
QEMU Menu (C) 2004 Garth Dahlstrom (ironstorm@users.sf.net)
QEMU (C) 2004 Fabrice Bellard
QEMU Settings:
Memory (256MB) BIOS DIR ( oolsurningOperatingSystemQEMUios)
ISO/CD (-cdrom “C:Documents and SettingsAdministrator桌面SUSE-10.0-LiveDVD.
iso” -boot d)
Network ()
Boot QEMU using image:
[1] harddisk
Settings/Toggles:
[C]reate image file [M]emory [I]SO/CD [N]etwork [Q]uit
Enter your choice now []:
在光标处键入C即可创建磁盘镜像,键入M即可设置内存大小,键入I即可设置光盘镜像,键入N设置网卡,键入Q退出,很方便
4用GUI来操作QEMU(推荐)
想必在图形界面下习惯了的用户都不太适应命令行界面了,这里推荐QEMU MANAGER(也是GNU软件),个人认为这个是最好的QEMU前端工具了(可惜不支持UNICODE,请设置路径和文件名为英文名称),其最新版下载 链接为:http://www.davereyn.co.uk/,它照顾了习惯使用VMWARE用户,其向导很不错。
三:如何测试光盘镜像
最后简单介绍一下命令行测试光盘镜像的例子
在README-en.txt文件中我们看到了具体参数的使用方法:
以说明文件中自带的例子为例:
qemu.exe -L . -m 128 -boot a -fda floppy.img -hda harddisk.img -cdrom cdimage.iso
参数的定义如下
-L : BIOS位置,上面的“.”表示当前目录
-m : 内存大小 (单位:MB)
-boot : 引导设备 软盘启动为(a), 虚拟硬盘启动为?, 虚拟光盘引导为(d)
-fda : 软盘镜像
-hda : 硬盘镜像
-cdrom : 光盘镜像
现在我们开始测试一个Linux LIVECD:Damn Small Linux,这是个小巧的Linux可引导光盘镜像,我们就拿它做试验。
将下载得到的dsl.iso镜像文件放到QEMU程序目录,编辑批处理文件如下:
REM Start qemu on windows.
@ECHO OFF
START qemu.exe -L . -m 128 -boot d -hda linux.img -cdrom dsl-0.9.2.iso -enable-audio -localtime
CLS
EXIT
这里设置的是从光盘引导(字母d表示光盘引导,前面已有说明),并且这里所虚拟的是一台磁盘镜像为linux.img,内存容量为128MB大小的虚拟机。
下面存盘退出,运行这个编辑好的批处理文件,如果编辑没错的话,就能看到系统已经正常启动了。
四:综述:
在使用QEMU有段时间之后,偶发现QEMU用来安装系统不太可取,因为其过程相当漫长,用QEMU来测试LiveCD对我来说是个不错的选择
=========================================================================================
对于用户来说,首要需要了解的格式是 raw 和 qcow 格式,raw 格式是一种”直读直写”的格式,不具备特殊的特性,但如其名一样,它容易被其他程序所读,比如,用户直接可以以回环(loop)设备来将它 mount 到一个目录里。
而 qcow 格式是 Qemu 的专用格式,有一些高级的特性,可以对它进行加密和压缩,以节省磁盘空间并保证数据安全,但一旦损坏将很难恢复。
除此以外,Qemu 还支持其它虚拟机格式,如 Virtual PC,VMWare 的 vpc, vmdk 格式,支持 bochs 和 Mac OS X 上所使用的 dmg 格式,用户可以在其间随意进行选择或者转换,仅需要使用 qemu-img 即可。下面的用法在网上查找得到的非常有用:
1 $qemu-img create -f qcow disk.img 128M
2 $qemu -hda disk.img -cdrom /root/cflinux-1.0.iso -boot d –enable-audio
-boot d :从光驱引导 a(软盘引导) c(硬盘引导) d(光驱引导)
-cdrom : ISO文件,也可以直接使用光驱设备(/dev/cdrom)…别忘了插入光盘
-hda : 就是虚拟机里的硬盘啦,也就是刚才qemu-img创建出的东东。
-enable-audio : 声卡支持
其它参数:
-full-screen :Start in full screen.
-usb: Enable the USB driver (will be the default soon)
-kernel bzImage:Use bzImage as kernel image.
-append cmdline:Use cmdline as kernel command line
-initrd file:Use file as initial ram disk.
3 $qemu -hda disk.img
4 monitor下有几个常用的命令:
savevm filename 将整个虚拟机当前状态保存起来
loadvm filename 恢复
sendkey keys 向VM中发送按键,就需要用 sendkey了 sendkey ctrl-alt-f2 ,In the virtual consoles, you can use Ctrl-Up, Ctrl-Down, Ctrl-PageUp and Ctrl-PageDown to move in the back log.
5 虚拟机上网。
$qemu redhat.img -enable-audio -net nic -net user -m 64
-m 64 使用64M内存,缺省下使用128M
6 ctrl-alt-f 全屏
ctrl-alt 主机/虚拟机鼠标切换
Ctrl-Alt-n Switch to virtual console ’n’. Standard console mappings are:
1 Target system display
2 Monitor
3 Serial port
7 宿主和客系统之间的文件共享
QEMU为你配置了一个虚拟局域网和DHCP服务器.
首先在宿主上配置好Samba,然后这样启动qemu(这里假设你有个qemu_share文件夹)
代码:
qemu -smb $HOME/qemu_share -m 384 -localtime windows.img
在客系统Windows下,这样来访问共享文件
net use e: \10.0.2.2qemu_share
而且宿主机的IP地址永远是10.0.2.2,因此如果你在宿主Ubuntu上运行了服务器,同样可以访问,比如
ftp:\10.0.2.2,等等.
8 qemu-img convert -f qcow <file_to_convert> -O raw <rawformat_filename>
将qcow格式的虚拟硬盘转换为raw格式。
9 export SDL_VIDEO_X11_DGAMOUSE=0
如果你遇到鼠标始终挂在右下角,请在启动QEMU前运行。
10. qemu -hda redhat9_4G.img -boot c -net tap -net nic,model=rtl8139