症状
ノートパソコンにインストールしたDebian 9をしばらく放置していると
バッテリー切れで電源が落ちてしまった。
バッテリーを回復させてから電源を再起動しても
ブートローダーは起動するがOSが起動しない。
セーフモードで起動を試みると以下のメッセージでフリーズしています。
Suspending console(s) (use no_console_suspend to debug)
コンソールをサスペンドしています→ずっとサスペンドのターン。。。
ということみたいですね。
英語の情報もかなり当たりましたが
「どうやったら再起動はするのか」
ということが書かれていないことが多いです。
まぁLinux民はそういうこと多いですね。
「環境次第!!! ドヤァ」「君、自分のシステム、理解してる?」
みたいな
原因
よく分かりません。
サスペンドのバグじゃねぇの?
方針
調べものすらできないので、とりあえずデータが飛んでも良いからOSを起動させる。
サスペンドの問題を扱うのはその後。
私はこう考えました
「サスペンド中」でフリーズ
→サスペンドの途中で止まってる
→サスペンドできない
→再起動してもサスペンドの命令を再度実行している
→深みにはまる
つまり
サスペンドの過程を飛ばしてブートしてやれば良さそう
※間違ってたら教えてください
やり方
grub ブートローダーは生きてるのでそっちから手動でブートする。
パーティション表示
grub> ls
(hd0) (hd1,gpt2) (hd1,gpt1) (hd1,gpt0)
どのパーティションにOSが入ってるか確認。(これでOS名が出るパーティションを探す)
grub> ls (hd0)/etc/issue
grub> ls (hd1,gpt2)/etc/issue
...
「Debian~~~みたいなの」見つけたら次のコマンド。(hd1,gpt2)にOSが入ってた場合
※) 「***」の部分はそれぞれ違うので自分の環境にあったものを。(TAB押せば補完されます)
※) sda1とかも同様に自分に合ったものを
grub> set root=(hd1,gpt2)
grub> linux /boot/vmlinux*** root=/dev/sda1
grub> initrd /boot/initrd.img-***
grub> boot
とりあえずこれで復旧しました。
方針について
本来はログファイルをcatで出力してちゃんと原因を探すべきなんでしょうが
- エディタが使えない→単語検索が非常にダルい
- grub で馴染みのあるshell コマンドが使えない
- 何回もフリーズしてHPがどんどん減っていく
という状況だったので許してください。。