三、使用QEMU
现在考察一下使用QEMU虚拟化另一台带典型的桌面环境的机器的情况。仿真另一台机器与处理新计算机类似。第一步是安装操作系统。新计算机必须要有安装操作系统的空间,因此需要一个硬盘。QEMU提供了一条特殊的命令创建硬盘,此命令称为qemu-img。此工具可以创建各种格式的映象,但非常好的的格式(对于qemu)称为qcow(或qemu写时复制)。这种格式的优点在于磁盘映象的大小与表示映象的物理文件的大小不同。换言之,该格式允许实现更紧凑的磁盘映象。例如,一个空的4GB磁盘映象只需要16KB的空间。对于qemu-img,您需要提供操作类型(create创建新磁盘映象)、格式(qcow用于qemu映象格式)、大小和磁盘映象的名称。下面仿真的机器用于建立一个Windows XP系统。因此,将6GB的磁盘映象创建:
#/opt/qemu/bin/qemu-img create /data/winxp.img 6GB
#/opt/qemu/bin/qemu -m 256 -k en-gb -boot d -hda /data/winxp.img -cdrom /dev/dsk/ c2t0d0s2
ISO 映像是常见的 CD-ROM 格式(在其他地方称为 ISO 9660 文件系统)。现在,您已经仿真了硬盘(disk.img)和 CD-ROM,您可以在上面安装操作系统。下一步是在硬盘上安装操作系统。简单地使用 qemu 即可完成此任务:
下面系统开始安装,完成后从硬盘文件启动:
#/opt/qemu/bin/qemu -m 256 -k en-gb -boot c -hda /data/winxp.img
使用 qemu 时,您使用 hda 选项指定硬盘映像,使用 cdrom 选项指定 cdrom(ISO 映像所在的文件)。boot 选项指定从 CD-ROM 引导。参数 d 指定从 CD-ROM 引导,其中 a 指定从软盘引导,c 指定从硬盘引导(默认),而 n 指定从网络引导。图-3所示是OpenSolaris下运行Windows XP系统截图。
图-3 Opensolaris 下运行Windows XP系统截图
使用图形化工具:JQEMU
JQEMU是QEMU图形(GUI)界面,使用Java编写,需要先安装JDK和QEMU,非常容易使用。作为QEMU x86 PC模拟器的GTK前端程序,相信会给用户带来一些方便。JQemu具有创建并保存多个VM配置、直接从GUI创建磁盘映象文件、将配置存储在用户主目录中、将磁盘映象存储在任何位置、可在GUI中控制多数QEMU命令行选项等特性。功能简介:
- 使用简单,可以轻松通过用户界面实现QEMU模拟器操作。
- 可以简便地通过向导来创建模拟机。
- 使用友好的界面来实现Qemu的所有任务。
使用方法:
#wget http://cdnetworks-kr-2.dl.sourceforge.net/project/jqemu/jqemu/1.0.4/JQEMU. jar
#java -jar JQEMU.jar
JQemu常规设置的工作界面主如图-4 所示。
图-4 JQEMU常规设置工作界面
JQemu常规设置的工作界面用来设置硬盘、光驱、处理器等。
另外JQemu包括常规、网络如图-5、调试、USB几个设置界面。
图-5 JQemu网络设置界面
JQemu网络设置界面包括几种上网方式:
user mode :
这种方式实现虚拟机上网很简单,类似vmware里的nat,qemu启动时加入-user-net参数,虚拟机里使用dhcp方式,即可与互联网通信,但是这种方式虚拟机与主机的通信不方便。
tap:
这种方式要比user mode复杂一些,但是设置好后 虚拟机<-->互联网 虚拟机<-->主机 通信都很容易,这种方式设置上类似vmware的host-only,qemu使用tun/tap设备在主机上增加一块虚拟网络设备(tun0),然后就可以象真实网卡 一样配置它。
在计算机网络中,TUN与TAP是操作系统内核中的虚拟网络设备。不同于普通靠硬件网路板卡实现的设备,这些虚拟的网络设备全部用软件实现,并向运行与操作系统上的软件提供与硬件的网络设备完全相同的功能。
TAP 等同于一个以太网设备,它操作第二层数据包如以太网数据帧。TUN模拟了网络层设备,操作第三层数据包比如IP数据封包。操作系统通过TUN/TAP设备向绑定该设备的用户空间的程序发送数据,反之,用户空间的程序也可以像操作硬件网络设备那样,通过 TNU/TAP设备发送数据。在后种情况下,TUN/TAP设备向操作系统的网络栈投递(或"注入")数据包,从而模拟从外部接受数据的过程。
Socket:
创建一个VLAN n,并使用UDP 多址通信套掊口与其他的QEMU虚拟机进 行共享,尤其是对于每一个使用多址通信地址和端口的QEMU使用同一 个总线. 在这里我们要注意以下几点:
" 几个QEMU可以运行在不同的主机上但却使用同一个总线(在这里假设 为这些主机设置了正确的多址通信)
" mcast支持是与用户模式Linux相兼容的.
" 使用fd=h指定一个已经打开的UDP 多址通信套接口
JQemu调试设置界面如图-6 。
图-6 JQemu调试设置界面
JQemu调试设置界面包括是否关闭KQemu linux启动选项等。下面也要建立一个磁盘映像。如图-7 。
图-7 建立一个磁盘映像
设置完成后单击lanuch按钮即可开始安装,如图-8所示。
图-8设置完成后单击lanuch按钮即可开始安装
安装过程从略。