PR

Windows10とUbuntu18.04のデュアルブートでgrub rescueがでて止まったときの対処方法

error: file ‘/boot/grub/i386-pc/normal.mod’ not found.
Entering rescue mode…
grub rescue>
と表示され、起動途中で止まる

PCを起動した直後、

grub rescue>
と表示され、そのまま停止することがあります。
(うちではマシンが古いためか頻発しています。

突然、この表示が現れることもあるし、原因がある場合もあります。

原因としては、
・windows update をしていたら、無限再起動ループになり、途中で電源落とした。
(デュアルブートでwindows update をオフラインですると発生するようです)
・ubuntuのアップデート中にバッテリーがなくなってしまった。

こんなところですが、原因不明のケースが多いかもしれません。

ということで対処法がわからないとどうにもならないので、対処法のメモ。

ちなみに問題が発生するマシン
acer aspire one 722 (AO722)
windows10 home 64 (windows7からアップグレード)
ubuntu 18.04 LTS (デュアルブート) 

windowsPEを用意する

これがないと始まりませんので、用意します。
windowsPEはMicrosoftのHPで直接ダウンロードするのではなく、Windows ADKをダウンロードし、そこからwindowsPEをつくります。usbメモリが必要になりますが、小さな容量でも大丈夫なため事前に用意しておきましょう。
ダウンロードページのリンクにあるversionはwindows updateの最新バージョンを示しています。

ダウンロードページは
https://docs.microsoft.com/ja-jp/windows-hardware/get-started/adk-install


ダウンロードしたファイルの実行はwindows10以外でも大丈夫で、当方はwindows7 home 32 でwindowsPEを作成できました。

ドライブの構成を見る

作成したwindowsPEでハードディスクを回復させますが、windowsPE使用前にドライブの構成状況をみておきます。

grub rescue>ls 
で、ドライブの構成を見ることができます。

当方の構成状況はこのような感じです。 
(hd0)(hd0、msdos7)(hd0、msdos6)(hd0、msdos4)(hd0、msdos3)(hd0、msdos2)(hd0、msdos1)

続いて、構成をひとつづつlsしていきます。

ほとんどが
Filesystem is unknown
とでますが、ひつつだけ、
Filesystem is ext2
とでます。(出ない時もあります)
ここにMBRがあるためここを修復すればこれまで通りに起動しますが、
ここの修復を
set prefix
insmod
で修復できるようですが、当方の環境では無理でした。
そのため、先ほど作成したwindowsPEをつかって修復します。

windowsPEをつかう

先ほど作成したwindowsPEをUSBポートに差し込んでUSBからブートさせます。
そうすると、ダイアログが表示されます。

ちなみに、これまでのファイルが重要ファイルだった場合には knopixなどでファイルの救出をしておいた方が良いでしょう。この場合、windowsのファイルの救出は成功しますが、ubuntu側のファイルは救出できないことが多いです。

話は戻り、

windows¥system32¥wpeinit
とコマンドプロンプトに出ていると思いますが、つづけて

bootsect /nt60 sys /mbr
と入力すると修復が完了です。
一行打ち込むだけです。

なお、nt60はOSの種類ごとに変更しなければなりません。

 

再起動後は、ドライバが壊れている場合があるので、適宜ドライバを再インストールでこれまで通りに使うことができるようになります。