制作KVM-qemu调试平台的步骤:
1.解压缩新版kvm:tar -xzvf qemu-kvm-0.13.0.tar.gz
2.解决依赖sudo apt-get build-dep qemu-kvm
3.配置安装路径:./configure—prefix=/usr/local/kvm
make
sudo make install
4.安装好后,加载模块
sudo modprobe kvm
sudo modprobe kvm-intel / kvm-amd,以CPU类型为准
5./usr/local/kvm/bin/qemu-imgcreate -f qcow2 name.img 10G
//-fqcow2的意思是创造一个文件,最大大小是10G
//create意思是创建一个新的磁盘,-f指定该磁盘的类型,可以创建raw的,也可以创建vmware兼容的, //这里选择qcow2,qemu自己的类型来安装系统,接下里的参数就是虚拟磁盘的文件名,可以放在你喜欢的 //任何地方,然后就是磁盘初始大小,一般5G,10G
//都可以,qemu的磁盘大小是随着需要可以自动的增大的,所以初始可以选择小点。
//name.img中name是虚拟磁盘名字
6.虚拟磁盘创建好了,我们就可以安装系统了。在name.img中安装操作系统
首先,打开在bios的advance中的VT技术,有的机器CPU没有VT技术。从kvm的官方网站上可知,无论386还是64位的机器都用qemu-system-x86_64,接下来:
sudo/usr/local/kvm/bin/qemu-system-x86_64-hda ./name.img -cdrom ./ubuntu.iso -boot d -m 1024-no-acpi
//-hda指定了ubuntu的硬盘是那个虚拟磁盘,这里用我们刚刚创建的name.img
//-cdrom指定cdrom是那一个,可以用iso文件,也可以用机器的光驱,我们选择用iso文件,如果用光驱尝试-//cdrom/dev/cdrom
//-boot指定ubuntu启动的时候从磁盘、硬盘,光驱还是网路上启动,我们安装的时候选择从光盘启动,所以用d
//-m虚拟机使用的内存大小,单位是MB,默认是128mb,我用的是1024
//-no-acpi由于qemu支持不太好会导致系统很慢,所以我们暂时禁止掉。
//具体的其他参数可以用man来查看qemu-system-x86_64的说明
也可以尝试:
安装系统img,斜体字部分要根据自己情况改:
sudo/usr/local/kvm/bin/qemu-system-x86_64 \
-drivefile=./ubuntu.img,cache=writeback,aio=native \ #指定硬盘,优
化性能
-cdrom~/Backup/ubuntu-10.10-desktop-i386.iso \ #光驱加载镜像
-bootd \ #从光驱启动
-netnic,vlan=0,model=rtl8139,macaddr=52-54-00-12-34-01 \ #配置一
块网卡,设置参数
-nettap,vlan=0,ifname=tap0,script=no \设置tap0网络接口给虚拟机用,将涉及到搭建网桥,虚拟网桥接口名/////要和这里的tap0匹配
-m512 \
-usb
例如我的机器安装脚本为:
#!/bin/sh
sudo/usr/local/kvm/bin/qemu-system-x86_64 -drivefile=./ms-10-10-i386.img,cache=writeback,aio=native -cdrom~/Study/大四/软件收集/ubuntun.iso/ubuntu-10.10-desktop-i386.iso-boot d -net nic,vlan=0,model=rtl8139,macaddr=52-54-00-12-34-01 -nettap,vlan=0,ifname=kvm0,script=no -m 512 -usb
7.等待系统安装
8.配置网络
(1).设置主机网络环境
安装所需包
apt-get install bridge-utils,用于网桥配置
sudo apt-get install uml-utilities,用于tap配置
打开/etc/network/interfaces文件,根据自己的情况增加如下内容
auto tap0 //虚拟网络接口
iface tap0 inet manual //建立一个网络接口tap0,指定inet类型,manual表
示参数不在这设置,还可以用static,dhcp
upifconfig $IFACE 0.0.0.0 up //指定当ifconfigtap0 up 时,执行命令ifconfig
tap 0 0.0.0.0 up
down ifconfig $IFACE down
tunctl_user wokao \\wokao是我主机的用户名,在这里换为你的用户名,将
设备使用权附给用户。
auto br0 //网桥br0
iface br0 inet static//建立网桥,static表示在这里配置参数
bridge_ports eth0 tap0 //桥接网卡和虚拟网络接口
address1.0.0.155 //我主机的ip地址
netmask 255.255.255.0
gateway 1.0.0.3 //网关
(2).启用设备
sudo/sbin/ifup tap0
sudo/sbin/ifup br0
此时再执行ifconfig,这时应该能看到多了br0和tap0这2个设备,其中br0
的ip地址就是主机的ip地址。
这里启动时有一个顺序,必须先启动tap0,再启动br0,并且启动完执行
ifconfig命令 时 ,eth0的信 息 中 不 能 有ip地址 。 如 果 此 时 使 用 network-
manager,即窗口右上的网络连接工具重新连接eth0,那么eth0将又会有ip
地址,此时就会出现ping内网可以,但是访问不了外网的问题(IP地址冲突,
内网ping用mac地址没问题)。解决方法是按br0,tap0, eth0 顺序关闭,再打
开eth0,tap0,br0就可以了。
安装kgdb调试环境,请看另外一篇文章。