Chrome OSのディスクをサイズダウンする

上の方法でサイズアップだけでなく、サイズダウンもできる。
Chrome OSのルート・ファイルシステムは600MB弱なので650MB程の仮想ディスクを作って、そこに押し込んで使っている。その場合は、(使っていない)スワップパーティションは設けない。また、ステートフル・パーティションもディスク上には設けず、tmpfsにしている。従って、Chrome OS側の設定は保存できず、ブートの度に同じ画面からスタートするが、ネット側での設定には関係ないので不自由はない。また、ディスクは書き込み禁止のパーティションだけなので、いつ電源を切っても問題ないし、CDからのブートも可能となる。

ステートフル・パーティションをtmpfsに割り当てるにはchrome OSの“/sbin/chromeos_startup”の1行を次のように変更するだけでOK。
変更前

mount -n -t ext3 "$STATE_DEV" /mnt/stateful_partition

変更後

mount -n -t tmpfs stateless /mnt/stateful_partition

この変更は、オリジナルのファイルシステムをコピー先のファイルシステムにコピーした直後に“dst/sbin/chromeos_startup”に対して行えばいい。

実は、この方法は“Chrome OSをネットワークブートできないだろうか?”と思い、試している過程で見つけた。実際、PXEを使ってカーネルとinitrd.imgをダウンロードし、最初のメッセージを出すところまでは実現できたが、カーネルNFSファイルシステムが実装されていないようで、立ち上がることは無かった。Chrome OSNFS関連のパッケージもインストールしてユーザランドではNFSマウントを処理できるようにまでしたのだが、あと一歩及ばず。ここから先はChrome OSのソースをダウンロードしてコンパイルしないとだめかな。

せっかく、クラウド指向のOSとして良いものが出来たのだから、Thin Client用としてネットワーク・ブートできるようにしたい。カーネルNFSの機能だけ入れておいてくれれば出来たのに。NFSだけだったらそんなにコード量も多くないだろうし、起動時間にも影響しなだいろうし。おしい。