デュアルブート環境でWindows 11をアップデート後に、UbuntuがGRUBメニューから起動しなくなってしまった場合の解決方法を共有します。
まず結論からお伝えすると、この問題はGRUB(Grand Unified Boot Loader)と呼ばれるブートローダーの設定が破損してしまったことが原因です。そこで、GRUBを再インストールすることで設定を修復する方法を解説します。
目次
- GRUBとは
- エラー内容と原因
- 解決方法
- Windows11でUbuntu起動用USBメモリの作成
- UbuntuをUSBから起動
- 元のディスク上パーティションのマウント
- GRUB再インストール
- まとめ
GRUBとは
GRUBは、コンピューターを起動する際に、どのOSを起動するかを選択するためのプログラムです。WindowsとUbuntuの両方をインストールしている場合、GRUBが両方のOSの起動エントリーを表示し、ユーザーが選択できるようにします。
例:デュアルブート環境でのGRUB2のメニュー。UbuntuとWindowsいずれかを選択して起動する。

エラー内容と原因
PCの電源を入れるとGRUBメニューが表示され、その画面でUbuntuかWindowsを選ぶと通常であれば各OSが起動されます。
今回は、GRUBメニューでUbuntuを選んでもエラーが表示されUbuntuが起動できなくなるという事象でした。
具体的には、真っ黒な画面に以下のエラーメッセージが表示されて動かなくなります。
Failed to open \EFI\ubuntu\grubx64.efi - Not Found
Failed to load image : Not found
start...image() returned Not Found, falling back to default loader

原因は、エラーメッセージにあるとおり、EFIパーティションからgrubx64.efiファイルが消えていることです(おそらくWindows 11アップデートによって)。
解決方法
Ubuntuには消えたgrubx64.efiを含むGRUB関連ファイルを再構築する仕組みが備わっています。
但し、このままではUbuntu自体を起動できないので、代わりにUSBにインストールしたUbuntuを起動し、元々のUbuntuパーティションをマウントしてからGRUBを再構築します。
1. Windows11でUbuntu起動用USBメモリの作成
注)すでにUbuntuの起動用USBメモリを持っている場合、このステップは不要なのでスキップしてください。
Ubuntuが動かないので、まずはGRUBからWindowsを起動します。
後ほどのステップで、USBからの起動がうまくいかないなどの理由でWindowsを何回か再起動しなければならないことがあります。その度にBitLocker回復キーを入力しなければならない可能性があるので、スマホなどにBitLocker回復キーをメモしておくことをおすすめします。
Windowsが起動したら、Ubuntu公式サイトの手順に沿って起動可能なUbuntuのUSBメモリを作成します。この時、USBにインストールするUbuntuは元のディスクのUbuntuと同じバージョンである必要があります。
2. UbuntuをUSBから起動
作成したUSBからUbuntuを起動するには2種類の方法があります。
1つ目はWindowsから再起動する方法です。作成したUSBをPCに差し、シフトキーを押しながらWindowsを再起動します。再びGRUBからWindowsを選ぶと、「オプションの選択」という画面が表示されますので、「デバイスの使用」を選び、「USB HDD」を選択します。


2つ目の方法はPCメーカーのブートメニューから起動する方法です。 PCの電源を入れ、F12(Lenovoの場合。メーカーによってキーは異なります。)を連打すると、Boot Menuが表示されます。そこでUSBドライブを選択するとUSBから起動します。

いずれの方法でも元のハードディスクではなくUSBのGRUBメニューが表示されますので、Ubuntuを選択します。
Ubuntuのインストールメニューが表示されますので、日本語を選択します。もし日本語でなく英語など別の言語をいつも使っている場合はそちらでも結構です。ターミナルしか使わないので、言語の選択はキーボードレイアウトとターミナルのメッセージくらいにしか影響しません。
元のハードドライブにインストールすることなくUbuntuを使いたいので、「Ubuntuを試す」を選択します。

なお、WIFIなどのネットワーク接続は特に必要ありません。
3. 元のディスク上パーティションのマウント
USB上のUbuntuで、元々のディスクに含まれていたパーティションをマウントすることによって、元々のディスクのファイルシステムにアクセスできるようにします。
まずターミナルを開いて、ルートユーザーになります。
$ sudo -s
次に元のUbuntuで使っていたパーティションをマウントしていきます。パーティション名はfdiskコマンドで探せます。
# fdisk -l
個別環境によってパーティションの構成は若干変わりますが、私の場合はNVMe規格のSSDなので以下のとおりです。
| Device | Type | 筆者脚注 |
| /dev/nvme0n1p1 | EFI System | UEFIパーティション |
| /dev/nvme0n1p2 | Microsoft reserved | Windowsパーティション |
| /dev/nvme0n1p3 | Microsoft basic data | Windowsパーティション |
| /dev/nvme0n1p4 | Windows recovery environment | Windowsパーティション |
| /dev/nvme0n1p5 | Linux filesystem | Ubuntu boot用パーティション |
| /dev/nvme0n1p6 | Linux filesystem | Ubuntuメインパーティション |
| /dev/nvme0n1p7 | Linux swap | Ubuntuスワップ |
このうちGRUB再インストールに必要になるのは、UEFIパーティション、Ubuntu boot用パーティション、Ubuntuメインパーティションの3つです。
各パーティションのファイルパスがわかったら正しい順番でマウントしていきます。
まずはUbuntuメインパーティションをマウントします。
# mount /dev/nvme0n1p6 /mnt
筆者の例のように、Bootパーティションがメインパーティションと分かれている場合、メインパーティションのマウントポイント下にBootパーティションをマウントします。このステップを怠ると、GRUB再インストールの際にLinuxカーネルイメージを見つけられず、GRUBメニューにUbuntuが表示されなくなりWindowsだけになってしまうので忘れないようにしましょう。
# mount /dev/nvme0n1p5 /mnt/boot
UEFIパーティションをBootパーティションのマウントポイント下にマウントします。
# mount /dev/nvme0n1p1 /mnt/boot/efi
mountコマンドのbindオプションを使い、chroot後にgrub-installコマンドが以下の必要ディレクトリにアクセスできるようにマウントします。
# mount --bind /dev /mnt/dev
# mount --bind /proc /mnt/proc
# mount --bind /sys /mnt/sys
メインパーティションのマウントポイント下にchrootすることで、ルートディレクトリが元のUbuntuと同じになるようにします。こうすることで、GRUBインストールコマンド実行時に、USBのファイルシステムではなく、元のディスク上のUbuntuファイルシステム内の適切な場所にGRUB関連ファイルの作成が行われるようになります。
# chroot /mnt
4. GRUB再インストール
efiディレクトリを指定してGRUBを再インストールします。このプロセスの一環で、なくなっていたファイルがUEFIパーティション内に再作成されます。
# grub-install --efi-directory=/boot/efi
もしうまくいかずデバッグしたかったり、どのようなファイルがどこからどこへコピーされているかを知りたければ、grub-instalに-v (verbose)オプションを付けます。
これで消えていたgrubx64.efiファイルが復元されているはずなので、確認します。
# ls /boot/efi/EFI/ubuntu/
最後に、必須ではありませんが念のためGRUB設定ファイルを更新します。
# update-grub
これで作業は完了です。
ターミナルを終了し、USB上のUbuntuを再起動します。
「Please remove the installation medium, then press ENTER.」のように、USBを抜くように指示が表示されますので、USBを抜いてEnterキーを押下すると、GRUBメニューが表示されます。ここでUbuntuを選ぶと、今度はエラーなしで起動できるはずです。

まとめ
この記事では、デュアルブート環境下でWindows 11アップデート後にUbuntuが起動しなくなった場合の対処法を、具体的な手順と解説とともに紹介しました。
なお、このような問題に遭遇したときに自分で素早く解決できるよう、Ubuntuについてより体系的に学びたい方は、「Linuxをマスターしたい人のための実践Ubuntu」という本が参考になります。
また、本記事で使用したfdisk、mount、chrootなどシステム・デバイス系のコマンドはシステムを壊しそうで苦手という人は、Linuxコマンドのリファレンス本を手元に置いておくと、いざという時に助けになりますのでおすすめです。

“Windows11アップデート後にUbuntuが起動しなくなった場合の対処法(デュアルブート環境)” への1件のコメント
LINUX初心者です。
Windows11とUBUNTのデュアルブートを試みました。
Windowsのアップデートで起動しなくなりこのページを参考にコマンドを打ち込んでみましたが、まず、パーティションの構成が違い、打ち込んだ後返ってくる言葉がどうやら違うことをやっているようなので、一旦打ち切りました。
私のパソコンはUbuntはメインパーティションだけで、boot用パーティションとUbuntスワップがありません。dev/nvme0n1p6だけなので、
# mount /dev/nvme0n1p6 /mnt/bootとしました。次の
# mount /dev/nvme0n1p1 /mnt/boot/efiのところではファイルが見つからない旨が書いてあったのでお手上げということになってしまいました。一応現在Windowsは起動する状態になっているのですが、Windowsの方のファイル構成が変わってしまっているのかなとも思われるのですが、何か解決の方法はないでしょうか。わかることがありましたらよろしくお願いいたします。