前文
ことによると宇宙線がディスクに命中して /sbin/init の中のビットがちょっと弾きとばされてしまったのかもしれません。
面白いことを言っているつもりだろうが、トラブルに見舞われた人間としては笑えない。
対処法が分からず数年間放置していた DebianインストールデスクトップPC が起動しないトラブル、やっと解決したので備忘録として残す。
環境
Debian | Kernel | ハードウェア名 |
---|---|---|
7.11(wheezy) | 3.2.0-4-686-pae | i686 |
※ ファイルシステム(内蔵HDD)はLVM構成 |
症状
起動時に停止し進まない。ブートメニューは表示されるので、rescue
モードを選択し起動してもinitramfs
プロンプトが表示され停止する。
対処法
initramfs
プロンプトで以下の呪文を入力する。
vgchange -ay
exit
vgchange -ay
でHDDを手動マウント。exit
で抜けると初期化処理が再開され無事起動した。
参考URL:
boot - Can't find LVM root dropped back to initramfs
分かってしまえば簡単。大山鳴動だったでござる。
HDD不良の場合の対処法
HDDが不良で起動に失敗することもあり、その場合はexit
で抜ければ自動でエラーチェックが始まるそうで、それで直る場合もあるらしい。または、手動でfsck
をかけるとか。
Linux が起動しないエラー_ intramfs という表示が出るとき
Ubuntuが起動できずBusyBoxが表示された時の対処法 - Qiita
自分の場合は原因が異なったが。
原因
そもそもおかしいのが、ALERT! 〇〇〇 does not exist.
で示されるuuid
と、blkid
で表示されるuuid
が食い違っていること。それが根本原因で、だから手動でマウントすれば起動する、ということらしい。
しかし何故そんなことに。それこそが根本原因だよな。対処法
項で挙げたURLにbug
の文字があるし、システム側のバグですかねぇ。
いずれにしても、手動マウントで起動できても、再起動したらまた同じ問題が繰り返される。
根本的に治すには起動設定を編集する必要があるが、今回は見送り。怖くて触れないし。
そもそもinitramfs
BusyBox
って何?
以下参照。
第384回 Initramfsのしくみ:Ubuntu Weekly Recipe|gihyo.jp
Ubuntuはカーネルを起動したあと,ルートファイルシステムをマウントするために「Initramfs」というイメージファイルを使用します。
ディスクの障害などによりルートファイルシステムをマウントできなくなったとき,「BusyBoxなんたら」とかいうメッセージとともに「(initramfs)」と表示されることがあります。これはInitramfsの中のBusyBoxのシェルが起動している状態です。普通のシェルに比べると,機能的な制約はありますが,使い方はそれほど変わるわけではありませんので,障害の要因などを追求できます。これもInitramfsの使い方の1つですね。
内部的な話でトラブルが発生しない限りは中々触れる機会が無い世界。勉強にはなる。
LVMの憂鬱
問題の PC は古い自作機をファイル倉庫として再利用していた物。最悪起動しなくても、内蔵HDD を取り外し USB変換ケーブルで他の PC に接続しサルベージ、という手もある。
しかしファイルシステムはLVM
構成(200G + 500G だったかな)。この場合はどうするの?
ぐぐれば情報は見つかるが……。うーん、よく分らん。実際にやってみないと覚えないってやつだろうね。
LVM (LVM2) のイメージファイルをマウントする
lvmのディスクイメージをmount
という経緯もあり、どうしたものかと長年放置していた次第。
余談
久しぶりに実機で Debian を触り新鮮だった。今は仮想マシンが主流、ガチャポンで Linux を含め自由自在な時代だけど。やはり実機はいいよ。面白い。