[2009-04-18]
pxe boot from AoE
ずいぶん長く手こずっていたけど、ようやく上手くいったので記録代わりにメモ。後で追記するかも。
環境の用意
ストレージ用のネットワークとして、ルータで区切ってクローズドな Gigabit LAN を用意した。
OS イメージの実体を置くサーバは、RAID5 + LVM2 の箱を使う。
net boot の用意 (クライアント側)
NIC の機能では AoE の boot はできないので、gpxe に頼る。NIC から chainloading させるために tftp 用のイメージを使うけど、一応 USB 版も用意しておいた。
$ mkdir gpxe $ cd gpxe $ git clone git://git.etherboot.org/scm/gpxe.git $ sudo aptitude install syslinux mtools $ make $ dd if=bin/gpxe.usb of=/dev/sdX $ sudo cp bin/undionly.kpxe /var/lib/tftpboot
このあたりで、クライアント側 NIC の MAC アドレスを調べてどこかにメモしておく。IP アドレスや vblade のスロット番号あたりも、決めておく必要あり。
net boot の用意 (サーバ側)
起動時に AoE の参照先を教えるため DHCP を設置。
$ sudo aptitude install dhcp3-server
$ sudo vi /etc/dhcp3/dhcpd.conf
host aoeclient { hardware ethernet xx:xx:xx:xx:xx:xx; fixed-address n.n.n.n; if exists user-class and option user-class = "gPXE" { filename ""; option root-path "aoe:eX.X"; } else { filename "undionly.kpxe"; } }
$ sudo /etc/init.d/dhcp3-server restart
ストレージサーバ (AoE target) の用意
$ sudo modprobe aoe
$ sudo aptitude install aoetools vblade
$ sudo lvcreate -L 8G -n ${LVM-LV} ${LVM-VG}
$ sudo vbladed X X ethX /dev/${LVM-VG}/${LVM-LV} $ sudo aoe-discover $ sudo aoe-stat
わけると面倒なので、パーティションは最大サイズで 1つだけ作成する。
$ sudo fdisk /dev/etherd/eX.X
作成したパーティションが見えずにしばらくハマったけど、udev を再起動すると見えるようになった。
$ sudo /etc/init.d/udev stop $ sudo /etc/init.d/udev start $ sudo aoe-stat
ディスクイメージの用意
ストレージサーバ上で、debootstrap と chroot を使ってあれこれ作業。filesystem は軟弱に ext3 を使った。
$ sudo mke2fs -j /dev/etherd/eX.Xp1 $ sudo mount /dev/etherd/eX.Xp1 /mnt $ sudo debootstrap --components=main,contrib,non-free sid /mnt http://${MIRROR_SITE}/debian $ sudo chroot /mnt
ここからは chroot 内での作業。
# mount -t proc proc /proc # mount -t sysfs none /sys # apt-get install sudo aoetools grub locales console-setup linux-image-2.6.* # vi /etc/default/console-setup
XKBLAYOUT="jp" XKBVARIANT="" XKBOPTIONS="ctrl:nocaps"
# /etc/init.d/console-setup restart # dpkg-reconfigure locales # tzselect # adduser ${USER} # passwd ${USER} # vi /etc/sudoers # vi /etc/fstab
proc /proc proc defaults 0 0 /dev/etherd/eX.X / ext3 noatime 0 1
# vi /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
# vi /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
# update-initramfs -u -k all
# mkdir /boot/grub # cp -r /usr/lib/grub/${ARCH}/. /boot/grub # ln /dev/etherd/eX.X /dev/sda # ln /dev/etherd/eX.Xp0 /dev/sda1 # vi /boot/grub/device.map
(hd0) /dev/sda
# grub
> root (hd0,0) > setup (hd0) > quit
# vi /boot/grub/menu.lst
title Debian root (hd0,0) kernel /vmlinuz ro root=/dev/etherd/eX.Xp1 vga=791 initrd /initrd.img
これで一通り完了のはず。クライアントから gpxe で無事起動できたので、次は nfs home かな。
参考 URL
トラックバック - http://d.hatena.ne.jp/lurdan/20090418/1240097435
リンク元
- 7 http://www.google.co.jp/search?hl=ja&client=firefox-a&rls=org.mozilla:ja-JP-mac:official&hs=1Mu&q=initramfs.conf+netboot+ifconfig&btnG=検索&lr=lang_ja
- 5 http://ezsch.ezweb.ne.jp/search/?sr=0101&query=AOE
- 5 http://www.google.co.jp/search?hl=ja&client=firefox-a&channel=s&rls=org.mozilla:en-US:official&q=aoe+windows+boot&btnG=検索&lr=
- 4 http://www.google.com/search?hl=ja&rls=com.microsoft:ja:IE-SearchBox&rlz=1I7GGLG&q=aoe+boot&btnG=検索&lr=lang_ja&aq=f&oq=
- 3 http://www.google.co.jp/search?hl=en&safe=off&client=firefox&rls=org.mozilla:ja:official&num=100&q=AoE+PXE+&btnG=Search&lr=lang_ja&aq=f&oq=
- 2 http://d.hatena.ne.jp/
- 2 http://ezsch.ezweb.ne.jp/search/ezGoogleMain.php?query=aoe3 起動時 エラー&ct=&pd=1&sr=0000
- 2 http://kizasi.jp/show.py/detail?kw_expr=gPXE&ref=rss
- 2 http://search.yahoo.co.jp/search?p=grub+aoe&search.x=1&fr=top_ga1_sa&tid=top_ga1_sa&ei=UTF-8&aq=&oq=
- 2 http://www.google.co.jp/search?hl=ja&client=firefox-a&rls=com.ubuntu:en-US:unofficial&q=debian+pxe+boot+-インストール&btnG=検索&lr=