前のページ 次のページ 目次

9. extroot.gz を使った起動方法

ノート PC で SCSI カードを経由して外付け SCSI HDD 等に Plamo Linux をイン ストールした場合、起動時にルートファイルシステムを読みこむまでは外付け SCSI が使えず、ルートファイルシステムを読みこむためには外付け SCSI HDD を使わねばならず、という鷄と卵的な問題に陥いることがあります。

このようなジレンマを解消するために、Linux では起動時 ramdisk(initrd)と呼 ばれる仕組みが用意されており、起動時にいったん特別の ramdisk をルートファ イルシステムとして必要な処理をした後、実際のルートファイルシステムをマウ ントするような処理が可能になっています。

Plamo Linux では、このために Install/extroot.gz と呼ばれる専用の 起動用 ramdisk を用意しています。extroot.gz は pcmcia-cs を起動 するために用意した起動用 ramdisk で、カーネル 2.0.33 に対応した pcmcia-cs 2.9.12 を組みこんだファイルシステムになっています。

extroot.gz は DOS から loadlin.exe を使って起動するように想定し ています(だって、外付け HDD にしか Linux をインストールできないからには、 内蔵の HDD には DOS があるんでしょ?)。その場合、loadlin.exe の引数に 起動用 ramdisk と実際のルートファイルシステム(例では一台目の SCSI HDD の 最初のパーティション(/dev/sda1))を指定して、


loadlin vmlinuz initrd=extroot.gz root=/dev/sda1 

のように起動します。言うまでもありませんが、必要な loadlin.exevmlinuzextroot.gz はあらかじめ HDD 上の領域にコピー しておいてください。また、ルートファイルシステムは、インストールの状況に よっては /dev/sda になったり /dev/sdb1 になったりしま すので御注意ください。

initrd=extroot.gz で起動されたカーネルは、いったんメモリ上にあ る extroot.gz を展開したファイルシステムをルートファイルシステ ムとして起動し、その上にある /linuxrc コマンドを実行します。 extroot.gz に用意している /linuxrc コマンドは、 pcmcia-cs を起動して、一定時間待機してから bash を起動する、と いう単純なものです。

#/bin/sh /etc/rc.d/rc.pcmcia sleep 10 exec bash

この linuxrcbash を起動して、そこで停止しますので、 もし何か必要な作業があればその段階で実施してください。その後、 bash を終了すれば("exit"か ctrl-D)、カーネルは起動 時に root=/dev/sda1 で指定したファイルシステムを実際のルートファ イルシステムとしてマウントし、通常の起動処理を行います。

initrd から実際のルートファイルシステムに移行する際には、動いて いるプロセスはそのまま保持されます。そのため、pcmcia-cs が古い initrd 上 の情報に影響されて、正しくカードの抜き挿しを認識できないことがあります。 そのような場合、いったん pcmcia-cs を再起動してください。


# /etc/rc.d/rc.pcmcia restart

もちろん、外付け SCSI HDD 上にルートファイルシステムを置く場合、SCSI カー ドは抜くことができませんので、ノート PC の特徴の一つである可搬性はかなり 損なわれることになります。


前のページ 次のページ 目次