用 gPXE 開 AoE 提供的硬碟

用 gPXE 開 AoE 提供的硬碟

這部份是利用 AoE 分享的硬碟來開機的報告

需要利用到 gPXE 以提供網路的 bootloader, 像 PXE 一樣只是有了更多種通訊協定

測試過程是將 這邊做出來的硬碟** etch.img ****AoE Server** 分享出去,讓 client 直接可以網路硬碟開機。

Server 要做的事情有

下載與編譯 gPXE

\$ mkdir gpxe-git

\$ cd gpxe-git

\$ git clone git://git.etherboot.org/scm/gpxe.git

\$ cd gpxe/src

\$ make

\$ cp bin/undionly.kpxe /

安裝與設定DHCP Server

\$ apt-get install dhcp-server...

\$ vi /etc/dhcpd/dhcpd.conf

host pxe-client {

hardware ethernet 08:aa:bb:cc:dd:ee:ff; //這邊要輸入client的 mac address

if substring (option vendor-class-identifier, 0, 9) != "Etherboot" {

filename "/undionly.kpxe

} else {

option root-path "aoe:e0.0";

}

next-server 192.168.3.1;

}

\$ /etc/init.d/dhcpd restart

調整 Client 要用的系統

先 chroot 到系統 etch.img

\$ mount -o loop,offset=\$((63*512)) etch.img /mnt

\$ chroot /mnt

(chroot)\$ uname -r //確定kernel版本大於 1.6.18-5

確認 BUSYBOX=y

(chroot)\$ grep BUSYBOX /etc/initramfs-tools/initramfs.conf //確認 BUSYBOX=y

修改 fstab 與 menu.lst

(chroot)\$ vi /etc/fstab

/dev/etherd/e0.0p1 / reiserfs notail 0 1

(chroot)\$ vi /boot/grub/menu.lst

kernel /boot/vmlinuz..... root=/dev/etherd/e0.0p1 ro

新增 aoetools 到 initrd

新增 /etc/initramfs-tools/hooks/aoetools

#!/bin/sh

set -e

PREREQ=""

prereqs()

{

echo "\$PREREQ"

}

case \$1 in

prereqs)

prereqs

exit 0

;;

esac

. /usr/share/initramfs-tools/hook-functions

[ -x /sbin/aoe-discover ] && copy_exec /sbin/aoe-discover /sbin

manual_add_modules aoe

新增 /etc/initramfs-tools/scripts/local-top/aoetools

#!/bin/sh

set -e

PREREQ=""

prereqs()

{

echo "\$PREREQ"

}

case \$1 in

prereqs)

prereqs

exit 0

;;

esac

case \$ROOT in

/dev/etherd/e*)

INTERFACES=`awk -F: '/eth[0-9]*:/ { print \$1 }' < /proc/net/dev`

for i in \$INTERFACES; do

echo Bringing up interface \$i for AoE

ifconfig \$i up

done

sleep 5

modprobe aoe

aoe-discover

;;

esac

更新 initrd

(chroot)\$ update-initramfs -u -k all

(chroot)\$exit

\$ cd

\$ umount /mnt

\$ losetup -d /dev/loop0

調整完成開始測試

Server 分享硬碟

\$ apt-get install vblade

\$ vblade 0 0 eth1 etch.img

用 gPXE 開機

因為我的網卡沒有 gPXE 的 rom 所以改以光碟代替。

從 Server 的 gpxe-git 找到 gpxe.iso 檔燒成光碟,讓 client 用光碟開機即可!

當然如果有支援 gPXE 的網卡,就可以直接用網路開機測試了!

測試結果開機很正常

但是關機不正常,因為網路先斷掉所造成的

應該改一下順序即可? not sure....

表示未來應該可以嘗試 FreeBSD, MAC OS, windows 直接網路開機....

只要有支援 AoE 的驅動程式。

convert from Thomas blog post id 158 old convert log: ./154512/tag%3E2007%2009%20linux)

@2007 @09 @linux

Comments