KVM虛擬機(jī)和QEMU |
發(fā)布時(shí)間: 2012/8/28 18:10:42 |
安裝 kvm 和 網(wǎng)卡橋接工具:sudo aptitude install kvm qemu bridge-utils uml-utilities 配置橋接網(wǎng)絡(luò)先創(chuàng)建 br0 設(shè)備: brctl addbr br0 # 創(chuàng)建一個(gè)橋接口 以后要添加網(wǎng)卡到這個(gè)橋接接口只需: brctl addif br0 eth0 # 添加eth0到br0,重要 我的網(wǎng)絡(luò)配置文件 /etc/network/interfaces 內(nèi)容如下: auto lo iface lo inet loopback #auto eth0 #iface eth0 inet dhcp auto br0 iface br0 inet dhcp bridge_ports eth0 主要思路:把 br0 接口配置成和以前正常工作的網(wǎng)口一樣(我這里是 eth0), 然后禁用以前網(wǎng)口的配置(我把 eth0 的配置注釋掉了),最后在 br0 配置里面 加上一句 "bridge_ports eth0" 。 說(shuō)明: 如果是靜態(tài)地址,可參照相應(yīng)設(shè)置更改。 啟動(dòng)虛擬機(jī)配置好虛擬機(jī),怎么使用就因人而異了,我的使用方式是,后臺(tái)執(zhí)行,使用 vnc 遠(yuǎn)程連接虛擬機(jī)。因此我用下面的小腳本啟動(dòng) uqkvm (如果你不了解 vnc ,或 者不太明白 shell 腳本,可能下面的說(shuō)明對(duì)你無(wú)用。由于精力和能力有限,下面 僅給出腳本,無(wú)法一一闡述明了。): #!/bin/sh # 簡(jiǎn)介:快速試用 KVM # KVM 程序地址 KVM_CMD=/usr/bin/kvm QEMU_IFUP=/etc/init.d/qemu-ifup HOST=172.16.70.3 # 默認(rèn)值 MEM=512 # 內(nèi)存 TAP=2 # 第幾塊網(wǎng)卡(0<TAP<10) # 您的磁盤映像 DISK= # 所有其他的 KVM 參數(shù) OTHER= test -n "$1" && TAP=$1 test -n "$DISK" && HDA="-hda $DISK" || HDA="-hda $2" shift 2 OTHER=$@ # 以來(lái)其他變量的變量要最后指明 NET="-net nic,macaddr=32:32:32:32:32:3$TAP -net tap,ifname=tap$TAP,script=$QEMU_IFUP" VNC="-vnc $HOST:$TAP" RUN_CMD="$KVM_CMD -m $MEM $HDA $NET $VNC -localtime --daemonize $OTHER" echo "運(yùn)行命令:$RUN_CMD" $RUN_CMD if test $? = 0; then echo "KVM 運(yùn)行成功,請(qǐng)用 VNC 鏈接 $HOST:$TAP ..." exit 0 else echo "KVM 運(yùn)行失敗,請(qǐng)檢查命令行是否有錯(cuò)誤!" exit 1 fi 其中用到的 /etc/init.d/qemu-ifup 文件如下: #!/bin/bash switch=br0 if [ -n "$1" ];then /sbin/ip link set $1 up sleep 0.5s /usr/sbin/brctl addif $switch $1 exit 0 else echo "Error: no interface specified" exit 1 fi uqkvm 腳本使用方法如下: ./uqkvm 3 GreenOS.img -cdrom /data/lab/LessWatts/GTGS-lesswatts_xfce-201004201555.iso -boot d 如果僅僅需要啟動(dòng)系統(tǒng): # ./uqkvm 3 GreenOS.img 運(yùn)行命令:/usr/bin/kvm -m 512 -hda GreenOS.img -net nic,macaddr=32:32:32:32:32:33 -net tap,ifname=tap3,script=/etc/init.d/qemu-ifup -vnc 172.16.70.3:3 -localtime --daemonize pci_add_option_rom: failed to find romfile "pxe-rtl8139.bin" KVM 運(yùn)行成功,請(qǐng)用 VNC 鏈接 172.16.70.3:3 ... 現(xiàn)在查看橋接設(shè)備情況: $ sudo brctl show bridge name bridge id STP enabled interfaces br0 8000.0001028c5009 no eth0 tap3 可見(jiàn) tap2 和 eth0 都在 br0 上。 RHEL/Fedora/CentOSyum install bridge-utils kvm bridge-utils是網(wǎng)卡橋接工具, 示例1:Redhat系統(tǒng)KVM創(chuàng)建磁盤# qemu-img create -f qcow2 turbo-10.5.5-rc2.img 20G Formatting 'turbo-10.5.5-rc2.img', fmt=qcow2, size=20971520 kB # file turbo-10.5.5-rc2.img turbo-10.5.5-rc2.img: QEMU Copy-On-Write disk image version 2, size 5 + 0 配置橋接配置 # cat /etc/sysconfig/network-scripts/ifcfg-br0 DEVICE=br0 ONBOOT=yes BOOTPROTO=static IPADDR=172.16.70.30 NETMASK=255.255.252.0 GATEWAY=172.16.68.1 TYPE=Bridge # cat /etc/sysconfig/network-scripts/ifcfg-eth0 # 3Com Corporation 3c905B 100BaseTX [Cyclone] DEVICE=eth0 #BOOTPROTO=dhcp #HWADDR=00:01:02:8C:50:09 ONBOOT=yes BRIDGE=br0 增加一個(gè)橋接網(wǎng)絡(luò)接口,并把剛才配置的eth0添加到橋接口 brctl addbr br0 # 創(chuàng)建一個(gè)橋接口 brctl addif br0 eth0 # 添加eth0到br0,重要 使用一個(gè)下面的腳本: # cat /etc/init.d/qemu-ifup #!/bin/bash switch=br0 if [ -n "$1" ];then /sbin/ip link set $1 up sleep 0.5s /usr/sbin/brctl addif $switch $1 exit 0 else echo "Error: no interface specified" exit 1 fi 使用橋接網(wǎng)卡可以使用橋接網(wǎng)卡啟動(dòng)qemu-kvm,并使用GTES10.5.5的兩個(gè)文件通過(guò) NFS安裝系統(tǒng): # qemu-kvm -m 512 -hda turbo-10.5.5-rc2.img -kernel vmlinuz \ -initrd initrd.img -net nic -net tap,script=/etc/init.d/qemu-ifup --daemonize 也可以使用iso安裝,這樣對(duì)于多張iso發(fā)行版的linux需要在qemu的控制 臺(tái)換盤: # qemu-kvm -m 512 -hda turbo-10.5.5-rc2.img -cdrom 你的iso路徑 \ -net nic -net tap,script=/etc/init.d/qemu-ifup -boot d --daemonize 進(jìn)入qemu的控制臺(tái),在鼠標(biāo)聚焦到qemu界面時(shí)候,按住 Ctrl+Alt+2 進(jìn) 入控制臺(tái): (qemu) change cdrom 你的另外一張iso 上面命令如果提示:"device not found"?赡苁窃O(shè)備映射出錯(cuò),可以這樣: (qemu) info block ... (qemu) change ide1-cd0 iso文件 QEMU常見(jiàn)使用使用vnc# qemu-kvm -m 512 -hda xp.img -net nic,macaddr=00:00:11:33:02:02 \ -net tap,ifname=tap2,script=/etc/init.d/qemu-ifup \ -localtime -vnc 172.16.70.30:2 --daemonize 上面讓kvm虛擬機(jī)在后臺(tái)運(yùn)行,并啟動(dòng)vnc服務(wù)器,這樣我們可以用vnc客 戶端鏈接172.16.70.30:5092這個(gè)地址。 QEMU選項(xiàng):一般選項(xiàng)
ar de-ch es fo fr-ca hu ja mk no pt-br sv da en-gb et fr fr-ch is lt nl pl ru th de en-us fi fr-be hr it lv nl-be pt sl tr
qemu -soundhw sb16,adlib hda qemu -soundhw es1370 hda qemu -soundhw all hda qemu -soundhw ?
USB選項(xiàng)
網(wǎng)絡(luò)選項(xiàng)
qemu linux.img -net nic -net tap
qemu linux.img -net nic,vlan=0 -net tap,vlan=0,ifname=tap0 \ -net nic,vlan=1 -net tap,vlan=1,ifname=tap1
# launch a first QEMU instance qemu linux.img -net nic,macaddr=52:54:00:12:34:56 -net socket,listen=:1234 # connect the VLAN 0 of this instance to the VLAN 0 of the first instance qemu linux.img -net nic,macaddr=52:54:00:12:34:57 -net socket,connect=127.0.0.1:1234
# launch one QEMU instance qemu linux.img -net nic,macaddr=52:54:00:12:34:56 -net socket,mcast=230.0.0.1:1234 # launch another QEMU instance on same "bus" qemu linux.img -net nic,macaddr=52:54:00:12:34:57 -net socket,mcast=230.0.0.1:1234 # launch yet another QEMU instance on same "bus" qemu linux.img -net nic,macaddr=52:54:00:12:34:58 -net socket,mcast=230.0.0.1:1234 下面的為用戶模式Linux的例子: # launch QEMU instance (note mcast address selected is UML's default) qemu linux.img -net nic,macaddr=52:54:00:12:34:56 -net socket,mcast=239.192.168.1:1102 # launch UML /path/to/linux ubd0=/path/to/root_fs eth0=mcast
# on the host qemu -redir tcp:6001::6000 [...] # this host xterm should open in the guest X11 server xterm -display :1 To redirect telnet connections from host port 5555 to telnet port on the guest, use the following: # on the host qemu -redir tcp:5555::23 [...] telnet localhost 5555
Linux啟動(dòng)選項(xiàng)
調(diào)試選項(xiàng)
組合鍵在圖形模擬時(shí),我們可以使用下面的這些組合鍵:
在模擬時(shí),如果我們使用`-nographic'選項(xiàng),我們可以使用Ctrl-a h來(lái)得到終端命令:
磁盤映像從0.6.1起,QEMU支持多種磁盤映像格式,包括增長(zhǎng)的磁盤映像,壓縮與加 密的磁盤映像. 我們可以用下面的命令來(lái)創(chuàng)建一個(gè)磁盤映像: qemu-img create myimage.img mysize 這里myimage.img是磁盤映像的文件名,而mysize是以K表示的尺寸.我們 可以使用M前綴來(lái)使用M表示尺寸或是G作為前綴使用G表示尺寸. qemu-img選項(xiàng) 可以支持下面的一些命令: `create [-e] [-b base_image] [-f fmt] filename [size]' `commit [-f fmt] filename' `convert [-c] [-e] [-f fmt] filename [-O output_fmt] output_filename' `info [-f fmt] filename 命令參數(shù)
本文出自:億恩科技【mszdt.com】 服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |