OLPC XO-LiveCD の動きを確認する

http://d.hatena.ne.jp/korakurider/20080212/p1 のつづきです。配布されているLiveCDの中身を調べ、OSが起動するシーケンスを追いかけていくことにします。
先に断っておきますが、LiveBackup自体は特殊なテクノロジではなく、LiveCDを作るのに必要な既存のテクノロジを一式まとめたツールボックスということです。私自身Linuxに慣れているわけではなく自分の勉強を兼ねています。

ブートローダ

最初にgrubが起動します。grubの設定ファイルは boot/grub/menu.lst です。関係しそうなところを抜き出します。

スプラッシュイメージの指定。

#
# splash photo
#
foreground FF7221
background 000000
#splashimage (cd)/boot/grub/splash.xpm.gz

ブートオプションの指定。

title		build-689 (update.1)
root		(cd)
kernel		/boot/isolinux/vmlinuz quiet vga=0x317 video=vesafb:ypan lb_hwdetect xmodule=vesa lb_symlinks=auto:164M lb_toram=62% lb_noeject lb_config=update.1 lb_system=build-689
initrd          /boot/isolinux/initrd
boot

ここで、lb_xxx となっているのは、LiveBackupツールセットに固有の環境設定ですが、どのようなオプションがあるのかは、LiveBackupの中のダウンロードキット中のReadmeが唯一のドキュメントです。

  • lb_noeject: LiveBackup1.4.2で追加されたオプションです。initrd(後述)の処理が終わった後にブートに使用したCDROMのアンマウントを抑制します。なぜこのオプションが入っているかというと、update.1版LiveCDでは、Linuxのブートシーケンスの過程で追加のActivityをインストールするようになっており、その過程でCDがマウントされたままでないといけないからです。
  • lb_config=update.1 : 初期RAMディスクのファイルシステムに対して、config/update.1以下のファイルがオーバーレイされます。
  • lb_toram=62% : メモリの62%以内に収まるのであれば、CDの内容をメモリに全部コピーします。
  • lb_system=build-689 : system/build-689.sqsh (squashfs)をブートします。

カーネルが起動され、初期RAMディスク boot/isolinux/initrdがマウントされると、ブートが始まります。しかしその過程を追うには、initrdの中身を調べる必要があります。

(執筆中)