制作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調試環境,請看http://www.linuxidc.com/Linux/2011-12/49116.htm。