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の中身を調べる必要があります。
(執筆中)