QEMU 網路開機進入 DRBL 無碟環境

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