Yukiharu YABUKI の tDiary
このtDiaryを検索します。
2014-03-04 [長年日記]
_ [Debian] lvm is not available
自分のsidマシンが、"lvm is not available" というメッセージを出すようになり、起動しなくなった。
これから書くことは、上記のメッセージを出てから直すまでの話です。最初に、最小手順だけ書くと
- Debian rescue live image を使って、レスキュー・ディスクを作る
- 対象PCを rescue live image を使って立ち上げる。
-
lvdisplay
で状況を確認 - lvm がアクティブなら、
cryptsetup luksOpen
確認したlvmデバイス名 適当な名前 で、パスワードを入力して、暗号化を解く。 - 解いた暗号化ファイルシステムを、順番にmountしていく
- ネットワーク接続を確認
- chroot 自分が、ファイルシステムツリーを作った場所(/とした場所)
- システムの検査, 今回は
apt-get install lvm2
, とupdate-initramfs -u
- 再ブートして、確認。もちろん、usb memory stick などの起動メディアは抜いておく。Debian live rescue image は、ちゃんと警告してくれるので、メッセージを見逃さないなら大丈夫
原因
私の予想では、(1)何らかの理由(私の操作の依存関係か?)で lvm2 のパッケージが抜けて、linux-imageの更新かかかり、update-initramfs を作るときに、lvm を含めていなかった。kernel更新をしても、再起動させるタイミングで、即時チェックをしなかったので、発見が遅れた。noteパソコンを、運用していて、メモリーサスペンド最中に放電サイクルで、誤って全部放電させて、再起動をかけて、問題が発覚した。
レスキュー・ディスクの作成
live-imageでレスキュー・ディスクを作るには、(https://www.debian.org/CD/faq/#write-usb)を参考に、ddで、usb memory stick に作った。GUIが使える環境も魅力的ではあるが、今回は、復旧が目的なので、レスキューイメージを書き込んだ。usb 3.0 のポートと memory stick を使ったが、想定したよりは時間がかかった。これは、BSを4Mにしろと、助言がされるわけだ。
起動は、ThinkPad の青いボタンを押下して、BIOSメニューに入り、usb memory stick からbootするように設定する。
調査
ありがたいことに、家には複数台のPCがあり、片方で Google 検索を行い、片方の復旧を行った。(余談開始)こういうことで、成功体験があるから、何台もPCを所有してしまうのかもしれない。(余談終了) まずは、Debianの BTS とか漁ったが、もう closed しているものばかりで、その日の段階で、同じような目に会っている人はいなかった。
rescueで上げて、lvdisplay で確認すると、lvm は active になっているので、lvm の設定で躓いているのだろうと、推測。
とすると、lvm + 暗号化しているノートを手動で、暗号化を解いて、マウントする方法を確認する。(http://digitalvectorz.wordpress.com/tag/unknown-filesystem-type-crypto_luks/)を参考にしながら、/mnt を / と見立てて /boot や / をマウントしていく(ここは、ご自分のパーティションというか、lvmの構成というか、に依存します。)
復旧
準備のマウントが終わったら、localeの設定、ネットワーク接続を確認してから、chroot で /mnt を / として、システムの修復を行う。/sys や /proc はマウントされてないし、locale の設定内容によっては、Cへfaillback するかもしれない
apt-get install lvm2
で、lvmのパッケージを導入しておく。あとは、update-initramfs -u で、/boot/initrd.img を更新(lvmを含める) する。その後、exitでchrootを抜けて、reboot コマンドを実行、画面にusbメモリーなどを抜けといわれたら、抜いてから、エンターキーを押す
すると、無事に起動して、パスフレーズを聞いてくれるようになり、立ち上がるようになりました。ほっ。と一安心