QEMU 網路開機進入 DRBL 無碟環境
QEMU
架構 QEMU 虛擬機器於 DRBL 環境之中
此篇重點講述當你要利用 QEMU 的虛擬機器於 DRBL 環境下的設定方式,重點在於網路設定。
QEMU 0.9.0 已經支援 PXE 開機,所以直接下 " -boot n" 就可以了;反之如果是0.9.0以前的版本,只要拿 DRBL 提供的 etherboot-nst.iso 來開機就可以了。所以重點是 host 的網路設定。
兩種情境分別介紹:
- QEMU 利用實體網路,Client 利用 QEMU 開啟虛擬機器取得 DRBL server 主機資源
- QEMU 虛擬網路介面,在 DRBL server 運作 QEMU 虛擬機器,測試 Client 環境。
情境一:
{{http://www.my-net.idv.tw/%7Ethomas/wp/wp-content/uploads/2007/06/drbl_qemu-s1.jpg
主要是利用 Bridge 方式將實體網路分享給虛擬機器使用
修改/etc/network/interface
# The loopback network interface
auto lo
iface lo inet loopback
# The bridge network interface(s)
auto br0
iface br0 inet static
address 192.168.1.2
network 192.168.1.0
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.1
bridge_ports eth0
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp off
#auto eth0
#iface eth0 inet dhcp
以上將原來的網路設備 eth0 設定 mark 起來,再新增 br0 這個 bridge,而 br0 就當作一搬網路介面操作。
關於選項的說明:
bridge_ports eth0 <表示 將 eth0 給 Bind 至 bridge 上>
bridge_fd 9 <轉送延遲時間>
bridge_hello 2 <傳送 Hello 封包的頻率>
bridge_maxage 12
bridge_stp off <關閉 spanning tree protocol 功能>
底下這段Script 將提供給 QEMU 啟動時使用。
儲存到 /etc/qemu-ifup
#!/bin/sh
echo "Executing /etc/qemu-ifup"
echo "Bringing up \$1 for bridged mode..."
sudo /sbin/ifconfig \$1 0.0.0.0 promisc up
echo "Adding \$1 to br0..."
sudo /usr/sbin/brctl addif br0 \$1
sleep 2
QEMU 啟動的程式
#!/bin/sh
ARGS="-hda win2k.img -boot c -net nic,vlan=0 -net tap,vlan=0,ifname=tap0,script=/etc/qemu-ifup -m 256 -localtime"
echo "Loading kqemu kernel module..."
sudo modprobe kqemu
echo "...."
echo "Starting QEMU with..."
echo \$ARGS echo "...."
exec qemu \$ARGS
情境二:
{{http://www.my-net.idv.tw/%7Ethomas/wp/wp-content/uploads/2007/06/drbl_qemu-s2.jpg
不特別產生 Bridge 而改用類似 Vmware 中 host 模式。
不需修改/etc/network/interface
產生 /etc/qemu-ifup
#!/bin/sh
echo "Executing /etc/qemu-ifup"
sudo /sbin/ifconfig \$1 192.168.3.254
sleep 2
QEMU 啟動的程式
#!/bin/sh
ARGS="-hda win2k.img -boot c -net nic,vlan=0 -net tap,vlan=0,ifname=tap0,script=/etc/qemu-ifup -m 256 -localtime"
echo "Loading kqemu kernel module..."
sudo modprobe kqemu
echo "...."
echo "Starting QEMU with..."
echo \$ARGS echo "...."
exec qemu \$ARGS
重新 drblpush -i
完成後 DRBL 環境就多了供 QEMU 使用的網路裝置
以上兩種情境要使用網路開機的話可將 ARGS 換成
ARGS="-hda win2k.img -boot n -net nic,vlan=0 -net tap,vlan=0,ifname=tap0,script=/etc/qemu-ifup -m 256 -localtime"
就變成使用PXE網路開機,此時 QEMU 透過實體網卡/ host 向 DRBL 索取IP與開機選單
ARGS="-hda win2k.img -cdrom=etherboot-net.iso -boot d -net nic,vlan=0 -net tap,vlan=0,ifname=tap0,script=/etc/qemu-ifup -m 256 -localtime"
就變成使用etherboot網路開機,此時 QEMU 透過實體網卡/ host 向 DRBL 索取IP與開機選單
{{http://www.my-net.idv.tw/%7Ethomas/wp/wp-content/uploads/2007/06/qemu-pxe.png
{{http://www.my-net.idv.tw/%7Ethomas/wp/wp-content/uploads/2007/06/qemu-pxelinux.png
{{http://www.my-net.idv.tw/%7Ethomas/wp/wp-content/uploads/2007/06/qemu-pxemenu.png
convert from Thomas blog post id 96 old convert log: ./120721/tag%3E2007%2006%20linux%20drbl)
@2007 @06 @linux @drbl
Comments