From: http://mzli.iteye.com/blog/1094823
系統配置:
1.顯示配置:
qemu使用SDI接口來顯示客戶系統,這裏咱們有兩個選擇,一個是qemu自己來顯示,二是經過VNC來顯示。默認狀況下是由qemu本身顯示,要使用vnc的話咱們須要加上-vnc :1參數,所以kvm運行命令就變成:
sudo qemu-system-x86_64 -hda winxp.img -boot d -m 384 -no-acpi -vnc :1
你也能夠-vnc :2用過vnc的人就知道那個數字是什麼意思,也就是一個標識,這樣的話kvm運行時就沒有任何的輸出了,咱們直接用vncviewer :1來鏈接kvm裏的vncserver進行顯示。
進入XP系統後,顯卡是默認的顯卡只支持1024*768大小的顯示,若是咱們想調整到更大,啓動時加上參數-std-vga就能夠了,進入XP後能夠調整顯卡到更高的屏幕參數。若是客戶機是linux,還能夠支持opengl,詳細的設置可參考官方的說明:http://kvm.qumranet.com/kvmwiki/HOWTO_VMGL linux
2. 鼠標設置:
默認的qemu在窗口模式下會發現鼠標很慢,可是若是調整成全屏模式就沒有這個問題,鼠標移動很平滑,很順暢。若是是VNC的模式會發現老是有兩個鼠標,並且移動很慢,這個時候只要咱們在qemu啓動的時候加上-usbdevice tablet就能夠解決VNC下的問題了。 shell
3. 聲卡設置:
若是須要聲音,只要在啓動的時候加上參數:-soundhw all就能夠,也能夠用qemu -soundhw ?列出所支持的聲卡硬件,用-soundhw <sound card>
選用指定的硬件。 ubuntu
4. 網絡設置
首先在kvm的sourceforge下載頁面: http://sourceforge.net/project/showfile ... _id=180599能夠看到除了kvm還有kvm-guest-drivers-windows的驅動,下載此驅動,而後想辦法放到虛擬機中(經過共享,或者直接在虛擬機下載)在kvm啓動參數中增長-net nic,model=virtio參數,而後從新啓動xp,進入xp後就會提示你有新設備須要安裝,彈出驅動安裝窗口,從下載的kvm-guest-driver中選擇合適的驅動程序進行安裝便可。這樣安裝的網卡速度上更快,幾乎能夠接近物理網卡的速度,具體我也沒有測試先後差異有多大,不過網上應該能找到,反正使用起來感受還不錯,特別是用KVM跑服務器的話,該驅動就更應該安裝了。 windows
網卡驅動安裝方法二: bash
一、下載最新的virto for win驅動 服務器
http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin/ 網絡
有兩個:
virtio-win-1.1.11-0.vfd
virtio-win-1.1.11-0.iso
前者是windows安裝時候加驅動用的(軟盤鏡像),後者是裝好了再加驅動(光盤鏡像)
本文主要敘述安裝時候加載驅動的辦法。(硬盤驅動在安裝時候加載,網卡能夠裝好了再加載 dom
二、安裝網卡驅動 測試
安裝好XP,能正常啓動之後,咱們添加以下啓動參數,將網卡改成virtio,同時加載那張驅動光盤。 .net
[shell]
sudo /usr/local/kvm/bin/qemu-system-x86_64 -m 512 -drive file=pathX/winxp.img,cache=writeback,if=virtio,boot=on -net nic,model=virtio -cdrom pathX/virtio-win-1.1.11-0.iso
[/shell]
啓動完畢會提示新驅動,在光盤中找就OK了!
qemu的網絡配置有3種,更VMware所支持的同樣:nat, host-only, bridge.
1)nat方式:
這是最簡單的一種,直接在啓動參數中加上-net user便可,主機打開DHCP功能,客戶機經過DHCP獲取IP,該置下客戶機能夠上網,但不能跟主機通信。
2)host-only:
使用tap/tun虛擬出一個網卡,須要內核支持tap/tun模塊(通常都支持),還須要配置iptables轉發,由於tap網卡上的ip不能和主機上ip在同一個網段。客戶使用該網卡能夠跟主機通信也能夠上網,但局域網內的其餘機器不能直接訪問客戶機,須要主機經過端口轉發或者其餘方式來訪問。具體配置能夠參見:
http://cisco7200-dynamips-dynagen-pemu. ... p?tid=1544
個人簡單配置(內核須要支持tap/tun):
(1)修改/etc/sysctrl.conf, 將net.ipv4.ip_forward=1打開,也就是ip轉發功能打開,修改完後須要reboot機器。
(2)創建一個腳本kvm-ifup.sh,內容很簡單:
#!/bin/bash
sudo ifconfig $1 172.0.100.1 netmask 255.255.255.0 up
該腳本就是配置tap虛擬網卡設備的ip。$1一般會是tap0,根據你在qemu啓動參數中給定的名字而定。
(3)在qemu啓動參數中給定相關的虛擬網卡設備名,和相關的設備初始化腳本,也就是上面的這個腳本:
sudo qemu-system-x86_64 -hda /virtualOS/winxp.img -m 1024 -no-frame -localtime -no-acpi -usb -net nic,model=virtio -net tap,ifname=tap0,script=/home/chao/kvm-ifup.sh -usb -usbdevice tablet -std-vga
(4)在客戶機中,手動的配置ip,網關和DNS,跟tap虛擬網卡的ip同一網段,而網關就是虛擬網卡的ip,好比個人xp配置:
IP: 172.0.100.101
MASK: 255.255.255.0
GATEWAY:172.0.100.1
(5)配置iptables的NAT:
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
我是放在一個啓動腳本里,每次啓動kvm會執行一下,也能夠在主機系統啓動的時候就添加這條規則。
3)橋接模式:
這種應該是功能最全的一種,虛擬客戶機的ip和主機處在同一個網段,客戶機就如局域網中的一臺主機同樣,既能夠和主機通信也能夠上網,同時網路中的其餘主機也能夠訪問客戶機而不須要主機轉發,不過若是在無線網卡上作橋接會遇到必定的問題,極可能就不成功,反正我嘗試的結果就是失敗,客戶機能夠ping主機但就是不能ping其餘的地址,網上查了一下跟無線網卡驅動有必定的關係(見http://www.linuxfoundation.org/en/Net:Bridge),最後只有放棄了,但以太網卡上我測試是沒有問題的。具體配置能夠參照: http://linux.chinaunix.net/bbs/viewthre ... tid=788174
5. USB設備
KVM是經過qemu來支持USB設備的,能夠在啓動的時候就指定須要鏈接的USB設備,也能夠系統啓動後動態的添加刪除.經過qemu的help可知,使用qemu的usb_add host:xxx:xxx來添加usb設備,那麼如何知道對應的host:xxx:xxx呢,有2種方法:
1)在host主機ubuntu中執行lsusb獲得這些信息
好比在我機器上ipod的信息以下:
Bus 006 Device 002: ID 05ac:1204 Apple Computer, Inc. iPod [Photo]
Bus 006 Device 001: ID 1d6b:0002
Bus 001 Device 001: ID 1d6b:0002
....
05ac:1204就是咱們須要的了。
2)進入虛擬機後,經過ctrl+alt+2調出qemu控制檯,輸入info usb來列出相關的信息,在個人機器上:
Device 4.2, speed 12 Mb/s
Class e0: USB device 044e:300d, UGX
Device 2.11, speed 480 Mb/s
Class 00: USB device 05ac:1204, iPod
...
頗有可能你在執行上述命令的時候會遇到這樣的錯誤:
Could not open /dev/bus/usb/devices
能夠參考:https://bugs.launchpad.net/ubuntu/+source/qemu/+bug/156085去解決,主要就是把 /etc/init.d/mountdevsubfs.sh腳本中的如下幾行打開(默認被註釋掉了) # # Magic to make /proc/bus/usb work # mkdir -p /dev/bus/usb/.usbfs domount usbfs "" /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644 ln -s .usbfs/devices /dev/bus/usb/devices mount --rbind /dev/bus/usb /proc/bus/usb 而後手工執行: $ sudo /etc/init.d/mountdevsubfs.sh start 或者重啓機器就ok了。 取得了上述USB設備的信息後,能夠在kvm啓動的時候就鏈接指定的USB設備,經過啓動參數-usbdevice host:xxx:xxx 來添加相應設備。也能夠在kvm的客戶系統啓動後添加,在客戶系統中按ctrl+alt+2(ctrl+alt+1回到客戶系統)調出qemu控制檯,經過usb_add host:xxx:xxx來添加設備,經過info usb能夠查看已經添加的usb設備信息,經過usb_del來刪除鏈接的usb設備。