grub rescueをなんとかする

投稿者: | 2017年4月8日

DebianとWinのデュアルブート機にCreatorsUpdateを適用していたところ、再起動してる途中でgrubがぶっ壊れたらしくgrub rescueと表示されてgrubが起動しない。
grubが起動しないということはOSも起動しないのでなんとかする。以下のサイトを参考にした。助かった。

grub rescueでハマったのでメモ|Refidea

grub rescue>|物忘れの覚書き

GRUB rescueで九死に一生を得た had a narrow escape from death thanks for GRUB rescue|くだらぬみちくさにっき ---- To waste one’s time on the road might be good, I think.

というわけでなんとかする。

要するにgrub rescueくんでgrubを探せばいいわけだ。とりあえずlsコマンド

grub rescue> ls
(hd0) (hd0,gpt7) (hd0,gpt6) (hd0,gpt5) ......

ずらーっとパーティションが現れた。もちろん表示は環境によって異なる。うちの環境はGPTディスクに入れてるのでこんな感じ。
知らんファイルシステムだと散々言われながらbootディレクトリがあるパーティションを気合いで探す。

grub rescue> ls (hd0,gpt7)
./ ../ etc/ media/ var/ bin/ boot/ ......

どうやら(hd0,gpt7)にDebianが入ってるらしい。
参考サイトに従い呪文を唱える。

grub rescue> set prefix=(hd0,gpt7)/boot/grub
grub rescue> insmod (hd0,gpt7)/boot/grub/normal.mod

としたところでnot foundと言われた。grub下にはnormal.modが無いらしい。どこだよ。
でもまあbootのどっかにあるはずなのでいろいろ探してみると、

grub rescue> ls (hd0,gpt7)/boot/grub/
x86_64-efi/ ......

なんか怪しいディレクトリが見えますね…
x86_64-efi内をlsしたらファイルめっちゃ入ってることがわかった。ありそうなので再度呪文を唱える。

grub rescue> insmod (hd0,gpt7)/boot/grub/x86-64-efi/normal.mod
grub rescue> normal

やったぜ、無事にgrub起動。
ただこのままだと毎回grub rescueするハメになるので一度Debianを起動、ターミナルからgrubを入れ直す。

# grub-install /dev/sda

これでOK。再起動したら無事にgrub動いた。Windows起動させたらアップデート作業の続きが始まったので一安心。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です