Vitruvian Penguin
knoppix

[knoppix:2591] Re: HDD boot

Date: Sun, 4 Jan 2004 12:42:40 +0900
X-mailer: Microsoft Outlook Express 6.00.2800.1158
宮脇です。こんにちは。
> ところで、/etc/init と、/sbin/init は同じものですね。
> run level が 0 のときは、
> /etc/init.d/knoppix-halt
> が呼ばれるのですね。
その通りです。
ただし、/etc/init.d/knoppix-haltの実体は/KNOPPIX/etc/init.d/knoppix-haltに
あるので、knoppix-haltの実行中は/KNOPPIXも/cdromもアンマウントできません。
リードオンリモードでリマウントされるだけです。knoppix-haltの実行が終了して、
/etc/initに戻れば、これらもアンマウントできるようになります。
推測ですが、/etc/initでは/KNOPPIXをアンマウントしたとき、これがiso9660
なのでCDROMと誤認して、「Pleaseremove CD, close cdrom drive and hit
 return.」
というメッセージを出してしまうのではないかと考えています。
#ただし、mkwritable /etc/init.d/knoppix-haltを実行して(実体を/etcにコピー
#して)も、このメッセージは出るので、他にも何かありそうですが

> init=/{etc,sbin}/init
> の起動の差を、set -x
> を追加しての最後の行の違いをみましたが、いずれも
> /etc/init -p -d -i -f -n
> となってたので、スクリプトのもっと上をみてみなきゃだめですね。
> でも、今日は寝ることにしましょう。。
knoppix-haltでは、/etc/initが無いと、/sbin/initを/etc/initにコピーして、
最後は必ず、/etc/initを実行するようにしています。これは/sbin/initは
実体が/KNOPPIX/sbin/initにあるので、そうしないと、/KNOPPIXを
アンマウントできなくなってしまうためです。
しかし、そうしているにもかかわらず、init=/etc/initを指定しないと、/KNOPPIX
をアンマウント出来なくなってしまうのはなぜでしょうか。
それは、もう一本、/etc/initのプロセスが存在するからです。プロセス番号=1
のプロセスです。psコマンドで、いつも、筆頭に表示されるプロセスですね。この
プロセスは、linuxrcでの初期化が終わったあとで、カーネルによって起動される
最初のプロセスで、その後、システムが終了するまでずっと生き続けます。
したがって、このプロセスの実体が/KNOPPIXにあると、/KNOPPIXは決して
アンマウントできなくなってしまいます。そのため、linuxrcで/sbin/initを
/etc/initにコピーしています。
KNOPPIXでは/etcはルートファイルシステム(RAMディスク)にあるので、
こうすれば、/KNOPPIXはアンマウントできます。

参考までに、KNOPPIX-RWの状況も追記します。
KNOPPIX-RW0.2.0では、knoppix-haltをはじめ、多くのものが/ramdiskにある
ので、knoppix-halt実行中に/KNOPPIXがアンマウントされてしまいます。
しかし、knoppix-haltの処理に必要なファイルが、まだ少し/KNOPPIXに残った
まま、/KNOPPIXがアンマウントされてしまうため、以後の処理でエラーになって
しまいます。
mkwritableを実行して以下の2つのファイルを/ramdiskにコピーすると、この
エラーは生じなくなります。
   mkwritable /lib/modules/2.4.22-xfs/modules.dep
   mkwritable /lib/modules/2.4.22-xfs/kernel/drivers/block/loop.o
こうすると、FAT32ブートなら、knoppix-halt実行中に/KNOPPIXと/cdromはアン
マウントされるので、「KNOPPIX halted.」のメッセージが出ると、すぐに電源が
切れます。気持ちいいですね。
問題はCDブートの方で、/etc/initに戻ったときには/KNOPPIXと/cdromはアン
マウントされているので、/etc/initはCDROMの排出が必要とは認識できない
のか、CDROMを排出してくれません。やはり、「KNOPPIX halted.」の
メッセージが出ると、すぐに電源が切れてしまいます。
KNOPPIX-RWでも、KNOPPIX同様、knoppix-haltは/KNOPPIX/etc/init.d/knoppix-halt
へのシンボリックリンクのままにしておくと、うまくいくかもしれません。
<Prev in Thread] Current Thread [Next in Thread>