はじめに
WindowsとUbuntuのデュアルブート化したPCを起動時に以下の画像のようにGNU GRUBのシェルが起動し、OSのブートに進めなくなった場合の対処法です.
現状,ここで紹介する手順により,インストールメディア等を使わず3回は復帰させることができています.
画像出典: https://docs.oracle.com/cd/E56342_01/html/E53741/gkvii.html
前提
grub他,詳しい知識はなく,自分がうまくいった対処法を共有しているのみとなります.
用語等間違っている可能性が高いです.
発生状況等
PC: Dell XPS13 2-in-1 9310
WindowsとUbuntuのデュアルブート化済み
普段はWindows Boot Managerを最優先にして使用
PCのバッテリ切れによりPCが強制シャットダウンした後に再度PCを起動すると,上記画像のような画面となる.
この状態でexitすると再度起動し,同じ画面が現れる.
また,(おそらく)UEFIを開いてbootの優先度を変更する等もできない.
復旧手順
1. WindowsのEFIファイルを探す
GNU GRUBのシェル(以下,シェル)でもls
のようなコマンドが使えます.
そこでまず,ls
して表示される(hd0,gpt1)
等の中から,/EFI/Microsoft/Boot/bootmgfw.efi
を探します.
具体的な手順は以下のとおりです.
コマンド実行時,タブ補完も効きます.
-
ls
コマンドを実行し(hd0) (hd0,gpt1) (hd0,gpt2) ...
等の出力を確認する -
ls (hd0,gpt1)
等とし,EFIディレクトリがあるか確認する- EFIが見つかれば,
ls (hd0,gpt1)/EFI/Microsoft/Boot/
等と打って,bootmgfw.efiを見つける - ここで(hd0,gpt1)は順次切り替えて探索する
- EFIが見つかれば,
2. chainloaderにbootmgfw.efiを設定し,再起動する
手順1-2で見つけたefiファイルのパスを覚えて,以下の通り順に実行します.
-
set root=(hd0,gpt1)
※ここで(hd0,gpt1)には各自の環境においてefiファイルが存在するパーティションを指定 chainloader /EFI/Microsoft/Boot/bootmgfw.efi
boot
bootを実行した時点でシェルが終了し,別の画面に移行すると思います.
3. その他
この手順で修復後,Bitlockerの回復キーを求められることがあります.
その場合,別の端末等でMicrosoftアカウントにログインし,回復キーを取得して入力する必要があります.
詳しい内容は下記リンクを確認してください.
おわりに
今回の手順は対症療法です.本質的な解決にはなっていない可能性があります.
実際,PCがバッテリ切れで強制終了した際に繰り返しこの症状が発生しています.
参考元