[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:50376] リリース: InetBoot(GRUB+BuildRoot)



須崎です。
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