QEMU简单教程(不断更新中...)

本文介绍了QEMU,一个由Fabrice Bellard开发的开源虚拟机和模拟器,以及KVM,一个基于QEMU的Linux内核模块。KVM通过硬件虚拟化支持使虚拟机性能接近主机。在Ubuntu 12.04下,QEMU安装后可使用kvm和kvm-img命令。QEMU默认使用NAT网络模式,但可以通过配置实现网桥连接。此外,文章还探讨了如何使用qemu-img创建和管理快照镜像,并提供了多个参考资料链接,包括QEMU用户文档和Ubuntu论坛的KVM配置教程。
部署运行你感兴趣的模型镜像

QEMU是一个开源的虚拟机和模拟器,由法国天才程序员Fabrice Bellard  所开发,可以模拟不同的处理器架构(x86,server and embedded PowerPC, and S390 guests)。官网为 http://wiki.qemu.org/Main_Page

KVM是构建在QEMU之上的虚拟机,其本身主要是一个Linux内核模块,只不过了整合了QEMU,目前受到Redhat公司的专门支持,是一个被相当看好的虚拟化项目,与Xen相比貌似有很多独特的优势。

kvm内核模块可以使QEMU虚拟机的运行速度接近于主机,但要有硬件上的支持,即CPU具有虚拟扩展(Intel VT or AMD-V)。官网为 http://www.linux-kvm.org/page/Main_Page

jimmy@ubuntu:~$ grep '(vmx|svm)' /proc/cpuinfo
查看cpu是否支持虚拟化,不支持也可以使用qemu,只不过没有qemu-kvm加速

jimmy@ubuntu:~$ sudo apt-get install qemu
ubuntu 12.04对应的版本为1.0,默认kvm加速模块也安装好了


jimmy@ubuntu:~$ mkdir images
jimmy@ubuntu:~/images$ cd images

jimmy@ubuntu:~/images$ qemu-img create -f qcow2 winxp_sp2.img 10G
创建格式为qcow2大小为10G的虚拟硬盘

jimmy@ubuntu:~/images$ qemu-system-i386 -h 
查看可用的命令参数

jimmy@ubuntu:~/images$ sudo qemu-system-i386 -hda ./winxp_sp2.img -cdrom ./WindowsXP_SP2.iso -localtime -boot d -m 512 -smp 2
系统镜像WindowsXP_SP2.iso已放在目录images中,如果安装的虚拟机是64位,则选择qemu-system-x86_64
-hda dev	指定虚拟硬盘,这里用我们刚刚创建的winxp_sp2.img
-cdrom dev	使用光盘镜像,如果要使用物理光驱的话就是 -cdrom /dev/cdrom
-localtime	使用本地时间,虚拟机时间和主机一致
-boot d	从光盘启动 (第一次安装系统要从光盘启动,从硬盘启动则为 -boot c )
-m 512	指定虚拟机使用的内存大小
-smp 2	指定处理器个数为2个(如果不开启此选项,则只能以单核模式运行)
还可加参数 -monitor stdio 将console窗口重定向到标准输出,即终端界面

jimmy@ubuntu:~/images$ sudo qemu-system-i386 ./winxp_sp2.img.img -m 512 
进入虚拟机后,可以使用快捷键
crtl+alt+f	切换为全屏
crtl+alt+2	切换到console界面
crtl+alt+1	切换回虚拟机
crtl+alt	从虚拟机中切出来(解除鼠标和键盘绑定,和VMware一样)

在ubuntu 12.04下安装qemu之后发现,kvm和kvm-img命令也可用,kvm链接到qemu-system-x86_64,kvm-img链接到qemu-img.

安装的kvm内核模块位于/lib/modules/3.2.0-23-generic-ape/kernel/arch/x86/kvm/.

qemu启动虚拟机默认采用的网络连接模式是NAT,虚拟机的IP为10.0.2.15,网关为10.0.2.2,在资源管理器输入\\10.0.2.2可以看到主机共享的文件夹

如果要采用网桥连接模式,配置如下:

#设置tun设备权限
su
chown root.usergroup /dev/net/tun 
chmod g+rw /dev/net/tun

#添加网桥br0
brctl addbr br0
ifconfig eth0 0.0.0.0 promisc
brctl addif br0 eth0
dhclient br0

# 创建tap0
apt-get install uml-utilities
tunctl -t tap0 -u username

# 启动tap0
brctl addif br0 tap0
ifconfig tap0 up 

#查看可用的虚拟网卡
qemu-system-i386 -net nic,model=? 
可以看到: Supported NIC models: ne2k_pci,i82551,i82557b,i82559er,rtl8139,e1000,pcnet,virtio

#退出root后以网桥模式启动
qemu-system-i386 ./winxp_sp2.img.img -net nic,model=rtl8139 -net tap

其中usergroup和username要设置成自己所使用的。

如果出现could not configure /dev/net/tun: Operation not permitted的问题,那就还是以root权限启动qemu。

进入虚拟机后会发现现在ip地址和主机是一个网段了。

参考自:http://stackoverflow.com/questions/4462799/how-does-work-network-in-qemus-guest-os

-----------------------------分割线-------------------------------------

QEMU用户文档:http://qemu.weilnetz.de/qemu-doc.html

非常全面地讲解QEMU的用法,尤其值得注意的是:

3.5 QEMU Monitor

3.6 Disk Images

-----------------------------分割线-------------------------------------

创建快照镜像snapshot.img(以winxp_sp2.img 为原始镜像,要为qcow2格式):

qemu-img create -f qcow2 -b winxp_sp2.img snapshot.img

查看快照镜像信息:

qemu-img info snapshot.img

如果从快照镜像启动:

qemu-system-i386 snapshot.img  

那么对系统的更改只会保存在快照镜像中,原始镜像不会改动。但对原始镜像的改动会影响快照镜像。

也可以创建临时快照:

qemu-system-i386 winxp_sp2.img -snapshot 

加-snapshot参数后,启动虚拟机后对系统的更改不会保存到原始镜像winxp_sp2.img,所以关闭后对系统的改动就丢失了

另外,进入系统后还可以在终端用命令savevm和loadvm分别创建和恢复多个快照,会保存在镜像文件中,下次启动就可以使用参数-loadvm,但是不能同时使用-snapshot,不然loadvm参数不起作用。

-----------------------------分割线-------------------------------------

其他有用的参考:

Ubuntu论坛置顶贴,详细讲解了怎么配置kvm的网桥连接

UbuntuWiki KVM教程:http://wiki.ubuntu.org.cn/Kvm%E6%95%99%E7%A8%8B

虚拟化之QEMU与KVM :http://blog.chinaunix.net/uid-23769728-id-3256677.html

这里kvm虚拟机与主机的运行速度进行了简单的对比,可以有一个感性认识。

这里非常详细地讲解kvm,博主计划出书。

您可能感兴趣的与本文相关的镜像

Anything-LLM

Anything-LLM

AI应用

AnythingLLM是一个全栈应用程序,可以使用商用或开源的LLM/嵌入器/语义向量数据库模型,帮助用户在本地或云端搭建个性化的聊天机器人系统,且无需复杂设置

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值