レスキューディスクを作成するにあたって、最初の数回の試みが失敗に終わる のはそう珍しいことではありません。 root ディスクを作成する際によく用いられる方針は、手持ちのシステムから 部品を取り出してフロッピーベースのシステムに詰め込み、コンソールにメッ セージが出るまで試行錯誤を繰り返すことです。メッセージが出れば半分勝っ たも同然です。後はシステムが文句を言わなくなるまで、一つ一つ問題を解決 していけば良いのです。 システムが何のメッセージも出さずにハングする場合は、その理由を調べるの は大変です。何とか表示が出る段階に達するには、いくつかの部品がちゃんと 揃っていて、正しく設定されている必要があるのです。
システムが反応しない場合、障害の原因を調べるには以下のような手続きを踏 むのが良いでしょう。
これらの一般的な点が確認できたら、次に示すようなファイルをチェックして みましょう。
ldd init
を実行して、 init の使うライブラリを確認して下
さい。通常は libc.so だけでしょうが、それでもチェックして下さい。ライ
ブラリがディスクに入っていることも要確認です。
file
コマンドを実行して、ライブラリの形式をチェックして下さい。
root ディスクに正しいローダが入っていることを確認して下さい。ローダの
ファイル名は ld.so (a.out ライブラリ用)または ld-linux.so (ELF ライ
ブラリ用)です。
/etc/inittab
を見て、 *getty* の呼び出
し方を調べて下さい
/etc/inittab
を見て、そこでシステムの初期化を行って
いるエントリがあることを確認して下さい。この部分には
/etc/rc.x
といったコマンドが書かれているはずで、
/etc/rc
スクリプトのどれかを実行するようになっています。
inittab で指定されたスクリプトは存在していなければなりません。
init
に行ったのと同じように、 getty (または agetty)に対し
ても ldd
を実行し、必要なライブラリを表示させます。そしてそのライ
ブラリのファイルとローダが root ファイルシステムに入っているかを確認し
て下さい。
/etc/ld.so.chace
がすでに存在して
いるようでしたら、作り直して下さい。init が起動しても次のようなメッセージが出力されることがあります。
Id xxx respawning too fast: disabled for n minutes
これは init が出すもので、お使いの *getty* または login が、起動してす
ぐに終了してしまったことを示しています。 *getty* や login の実行ファイ
ル、そしてそれらが依存しているライブラリをチェックして下さい。
/etc/inittab
による起動が正しいかどうかも調べて下さい。
*getty* がおかしなメッセージを出力する場合は、おそらく
/etc/inittab
からの呼び出し方が間違っています。 *getty* のオ
プションはプログラムによって違います。また agetty ではバージョンによっ
てさえ互換性がない場合があるそうです。ハードディスクの
/etc/inittab
と呼び出しているプログラムや呼び出し方が異なって
いる場合は、念入りにチェックして下さい。
なにかの実行ファイル(例えば df
)をレスキューディスクから起動した
ときに、 df: not found
のようなメッセージが出た場合には、以下の 2
点を確認して下さい。
ldd file
として、それらがあるかを確認し
て下さい。 lib
に関する節で述べた内容も参照して下さい。