リリース: InetBoot(GRUB+BuildRoot)

Apr 10, 2008 From: k.suzaki@a...

須崎です。Xen(VMKnoppix)も起動できるのでこちらにもお知らせします。


InetBoot(GRUB+BuildRoot)をリリースしました。

 HP:   http://openlab.jp/oscircular/inetboot/
 解説: http://openlab.ring.gr.jp/oscircular/inetboot/InetBoot-netfs080409-J.pdf

InetBootはInternet上に公開されているカーネルおよびディスクイメージから
起動するためのブートローダです。今回リリースするnetfs版ではHTTPで公開
されているKNOPPIX/VMKnopixのISOファイルから起動します。

サンプルブータブルCD版(5MB)の場合、

  3種類の KNOPPIX(511,501, 402) と
  5種類の VMKnoppix (Xen: 3.2.0, 3.1.1, 3.1.0, 3.0.4.1, 3.0.4)

の起動が可能です。

KNOPPIX4.02以降をベースとしたISOファイルが公開されていれば InetBoot で
起動できると思います(注:LCATなど特殊なカスタマイズには対応していません
ので全てを保証するものではありません。詳細は既知の問題点を参照して下さい)。

■ 特徴
InetBootはHTTPのみでカーネルの取得を行ないます。PXEブートのようにBOOTP、
TFTPを使わないためLAN環境に限定されません。ルートファイルシステムのた
めにステートフルなNFSサーバを用意する必要がなく、ステートレスのHTTPの
みのためロードバランスによる動的なサーバ変更も可能です。

netfs版では既にHTTPで公開されているKNOPPIXおよびその派生物のURLを指定
するだけで、そのKNOPPIXを起動することができます。これによりCD/DVDを作
成することなく新しいKNOPPIXが確かめられます。

Inetbootの実態はGRUB+BuildRoot (BusyBox)です。単純なブーロローダではな
く、小さなLinuxを一旦立ち上げて、ネットワークの設定、カーネルの取得、
ミニルートの再作成、kexecによる再起動(Warm Boot)、httpfsによるISOファ
イルのループバックマウントを行ないます。

■ 使い方
BRUBメニューから起動したいISOファイルのURLを指定するのみです。
BuildRoot 用の linux と minirt.gz はダウンロードしてください。

例:通常のKNOPPIX場合
kernel /boot/grub/linux netdir=http://***/knoppix.iso ramdisk_size=100000 lang=ja vga=normal
initrd /boot/grub/minirt.gz

例:Xenoppix場合。bootxen=1オプションを付加。
kernel /boot/grub/linux netdir=http://***/Xenoppix.iso bootxen=1 ramdisk_size=100000 lang=ja vga=normal
initrd /boot/grub/minirt.gz

サンプルとしてISOファイルには下記を登録してあります。これらは
GSLB(Global Server Load Balance)により、北米3サイト、欧州3サイト、国内
7サイトから自動的に最適なサーバに接続します。

・knoppix511 (linux 2.6.19)
・knoppix501 (linux 2.6.17)
・knoppix402 (linux 2.6.12)
・VMKnoppix (Xen3.2.0+Linux 2.6.18)
・VMKnoppix (Xen3.1.1+Linux 2.6.18)
・VMKnoppix (Xen3.1.0+Linux 2.6.18)
・VMKnoppix (Xen3.0.4.1+Linux 2.6.18) Oprofile
・VMKnoppix (Xen3.0.4) +Linux 2.6.18

■ 実装
GRUBメニュー内のカーネルオプションとして渡されたURLをBuildRootに渡します。
GRUBから起動したBuildRoot (BusyBox)では、

  1) udhcpによるネットワーク設定
  2) httpfsによりISOファイルをマウント
  3) カーネルを抽出
  4) ミニルート再作成
  5) kexecによる再起動(Warm Boot)

を行います。
ダウンロードしたカーネルで起動します。再作成したミニルートでは、

  1) HTTP上のISOファイルをhttpfsにより /cdrom にマウント
  2) 通常のKNOPPIXとしての起動

します。これ移行は通常のKNOPPIXとして振舞います。
この手順を図に表すと下記になります。

■ 既知の問題点
・ ネットワークカードに強く依存します。

     ネットワークの設定を2度行なう(BuildRootとダウンロードカーネル)
     ため、両方でネットワークドライバが設定できる必要があります。

・ サーバ&ネットワークの状況に強く依存します。

     httpfs マウントをしているのでネットワークの遅延やサーバの負荷に依存します。
     リブートするとGSLBの選択が変わり改善される場合があります。

・ LCATを適用したKNOPPIXには対応していません。

      cloopドライバの適用が現在のところできません。

・ 2GB上限があるHTTPサーバではDVDのisoファイルがhttpfsマウントできません。

■ 関連URL
[1] BuildRoot: http://buildroot.uclibc.org/
[2] httpfs: http://httpfs.sourceforge.net/
[4] Linux Symposium 08 BOF: OS Circular, http://www.linuxsymposium.org/2008/view_abstract.php?content_key=231

■ ダウンロード
・ 日本語版 (VMKnoppixでは英語になります)

     注:含まれているURLは実験的サービスです。試したいURLを指定してお使い下さい。
     http://www.ring.gr.jp/archives/linux/oscircular/iso/inetboot-netfs-20080409-ja.iso
     MD5: e802d8fdaab3c0d45b632d41fab9effd

・ 英語版

     注:含まれているURLは実験的サービスです。試したいURLを指定してお使い下さい。
     http://www.ring.gr.jp/archives/linux/oscircular/iso/inetboot-netfs-20080409-us.iso
     MD5: 1c32b27fbe93903ee2decaec220cfbc6

・ BuildRoot用カーネルとミニルート

     http://www.ring.gr.jp/archives/linux/oscircular/iso/linux
     http://www.ring.gr.jp/archives/linux/oscircular/iso/minirt.gz

■ Acknowledgement
本研究開発は OS Circular の一部として行なわれています。

# 本話題は Ottawa Linux Symposium 08 のBOF: OS Circular で議論します。

  http://www.linuxsymposium.org/2008/view_abstract.php?content_key=231


suzaki

Last modified: 2008-04-10