红联Linux门户
Linux帮助

制作KVM-Qemu调试平台的步骤

发布时间:2014-12-03 15:35:56来源:linux网站作者:jinhongzhou

制作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就可以了。