Fedora Core 8 上的qemu設定

這篇文章寫的是VirtualBox, 但我參考其內容來用在qemu上:

http://linux-cisco.blogspot.com/2008/01/fedora-8virtualbox.html

這一篇也值得參考

http://blog.yam.com/longbird/article/8547201

這篇文章寫的比較適合我用, 至少我用上面的東西改一下後, 可以run了.

之前看了很多, 不是不能用在fedora上, 就是少了個什麼的.

我的script如下:( host ip : 192.192.222.133, router 192.192.222.254 )

tunctl -t tap0 -u root
brctl addbr br0
ifconfig eth0 0.0.0.0 promisc up
brctl addif br0 eth0
brctl addif br0 tap0
ifconfig tap0 0.0.0.0 promisc up
ifconfig br0 192.192.222.133 netmask 255.255.255.0 up
route add default gw 192.192.222.133 dev br0

跑完這些後, 進入虛擬機器中再修改ip, 此時你就把這個虛擬機器當做是連到和你host一樣的網路節點上, 自己去設ip吧.

我準備用這個方法來設定備援主機, 因為可以自由的更改mac

附帶我可以run的qemu script

qemu-kvm test.img -net nic,model=rtl8139,macaddr=00:12:44:4C:58:88 -net tap,ifname=tap0,script=no -m 256 -smp 1 -usb -usbdevice tablet -localtime

如果不想在host上出現視窗(因為我在guest os 上裝了vnc), 那可以用以下的script

/usr/bin/qemu-kvm -M pc -m 256 -smp 1 -monitor pty -boot c -hda /root/test.img -cdrom /dev/sr0 -net nic,model=rtl8139,macaddr=00:12:44:4C:58:88 -net tap,ifname=tap0,script=no -usb -usbdevice tablet -vnc 127.0.0.1:0

當希望在host上看畫面時, 使用vnc連至 127.0.0.1:0 即可

備註: 要裝uml-utilities, 可以到http://rpm.pbone.net中尋找,我的主機是Fedora 8 x86_64,因此我用OpenSuSE10.0的uml-utilities-20040406-75.x86_64.rpm(文中使用uml-utilities-20040406-75.i586.rpm)

另外, 關於qemu的網路設定, 在以下的連結有詳細的說明

http://calamari.reverse-dns.net:980/cgi-bin/moin.cgi/FrequentlyAskedQuestions

qemu討論區上的文章

http://qemu-forum.ipi.fi/viewtopic.php?f=4&t=3707&p=11431&hilit=ifconfig#p11431

後記:

後來研讀了forum上的文章後發現, 其實比較『標準』的作法是:

  1. 先建立bridge network
  2. 建立/etc/qemu-ifup檔, ( 預設檔名是這個, 也可以在script中指定 )
  3. 在每個vm的qemu script中指定不同的ifname ( ifname=tap0, ifname=tap1等…), 然後也指定不同的mac address
  4. 進入vm後, 再更改vm的ip address ( 不知有沒有方法在script中更改ip address)

依此作法, 則要完成以下的動作:

1. bridge network的建立

/usr/sbin/brctl addbr br0
/sbin/ifconfig eth0 0.0.0.0 promisc up
/usr/sbin/brctl addif br0 eth0
/sbin/ifconfig br0 192.192.222.133 netmask 255.255.255.0 up
/sbin/route add default gw 192.192.222.254 dev br0

2.建立/etc/qemu-ifup檔

#!/bin/sh
sudo /sbin/ifconfig $1 0.0.0.0 promisc up
sudo /usr/sbin/brctl addif br0 $1

3.在每個vm的qemu script中指定不同的ifname

qemu-kvm test.img -net nic,model=rtl8139,macaddr=00:02:12:2C:58:90 \
-net tap,ifname=tap3,script=/etc/qemu-ifup \
-m 256 \
-smp 1 -usb -usbdevice tablet -localtime

4.進入vm後, 再更改vm的ip address

另外, 安裝後別忘了安裝qemu加速器,否則虛擬機器的速度會慢到讓你受不了。安裝方式請參考官方網站

http://bellard.org/qemu/kqemu-doc.html

如果你有以下的錯誤訊息, 表示你沒有安裝kernel-devel

Could not find kernel includes in /lib/modules or /usr/src/linux – cannot build the kqemu module

此時可以用yum install kernel-devel 安裝後, 即可再安裝kqemu

依據官網的安裝方式後(要記得執行/sbin/modprobe kqemu)

這裏有關於kqemu的安裝說明

http://www.5anet.com/index.php?module=article&action=showarticle&id=22633

後記:

因為我用HP dc7700p安裝qemu, 發現它沒有開啟VT, 要從BIOS中的OS Security去開啟VT功能。你可以用 dmesg | grep kvm 來看有沒有關於kvm的訊息( 如果kvm被關掉 ,這裏可以看到)

開啟Intel CPU 的VT功能後, qemu執行起來比之前快多了。

找了網路上的資料後發現, 好像有幾款的HP 筆記型電腦不能由bios開啟vt功能。

當你網路也設好了, 也可以進去, 但guest os 卻只能ping到host, 而不能ping 到外部, 檢查host的防火牆設定吧。

另外, 如何建立image file給qemu用, 則可以參考以下的連結

http://b2d.phc.edu.tw/modules/tadbook2/view.php?book_sn=5&bdsn=1068

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *

What is 9 + 9 ?
Please leave these two fields as-is:
IMPORTANT! To be able to proceed, you need to solve the following simple math (so we know that you are a human) :-)