Windowsをアップデートしたら勝手にパーティションを作ってまたGRUBがrescueモードになってしまったのでSystemRescueCdでchrootしてfstabを書き換えてgrub-mkconfigをやり直したら治りました
Delphiコードをビルドするために, Windows環境が必要になるかもしれなくなりました. なので, ラップトップPCの放置していたWindowsを最低限使えるように, 最新版にアップデートしていたら, GRUBが壊れてgrub rescueを出すようになりました.
あああああー!
— エヌユル (@ncaq) 2017年12月8日
明日使うのに! pic.twitter.com/EasM8Mkm56
なんか前にも同じことが起きて無かったっけ? と思ってツイートを検索してみたら, 1年前にも同じようなことが起きていたようですね.
この記事のとおりにgrub rescueで操作すればboot可能,set rootだけだとダメ / “Linux 上の GRUB 2 がブートできなくなったときの対処方法” https://t.co/ve3Y5kK6jR
— エヌユル (@ncaq) 2016年9月26日
おのれWindows.
Linux 上の GRUB 2 がブートできなくなったときの対処方法を参考にします. これはそのままだとバージョンが違うのか違う挙動を示しますが, コアの部分は一緒です.
grub rescue> set prefix=(hd0,gpt6)/boot/grub
grub rescue> insmod normal
grub rescue> normal
hd0のカンマの後にスペースを入れてはいけません, 癖で入れてましたがダメでした.
こう入力したら通常のgrubの画面に飛びます. しかし, Linuxがkernel panicを起こします.
Windowsが前回と同じく余計なパーティションを作成しているのではないかと思い, 見てみましたが案の定, 4にパーティションを新規作成して1つずつズレていました. 今はUUIDでパーティションを指定するべきなんでしょうかね? systemdがエラーを起こすからUUIDでの指定は躊躇ってましたが今は治っているのかもしれません.
SystemRescueCdでfstabを書き直せば解決するかと思って書き直してみました.
しかし,
not syncing: VFS: Unable to mount root fs on unknown-block(259,5)
とエラーが出てしまいます.
設定ファイルをどうこうすれば治るという話を目にしたので,
SystemRescueCdでproc, dev, sysのmountしたGentoo環境にchroot
してgrub-mkconfig -o /boot/grub/grub.cfg
してやることで復旧しました.
grubの設定ファイルを直せば復旧するという情報は正しかったようです.
細かい所を調べていない無思考復旧ですが, 明日使うので致し方なし. 自分が思い出すために残しておきます.