- パーティションとディスクを正しく識別することで、システムを再インストールすることなく、LiveUSBからGRUBを再インストールできます。
- Boot-Repair、Syslinux、LILOなどのツールは、MBRとブートマネージャを復元するための代替手段を提供する。
- BCDBootとbootrecを使用すると、マルチWindows環境におけるWindowsブートマネージャーとBCDストアを修復できます。
- LinuxとWindowsのユーティリティを組み合わせることで、破損したデュアルブート環境を安全に復旧することが容易になります。

WindowsとLinuxディストリビューション(Ubuntu、Arch、Debianなど)のデュアルブートシステムを構成する場合、ブートマネージャは重要なコンポーネントとなります。ブートマネージャは、どのオペレーティングシステムがどのように起動するかを決定します。問題は、Windowsのアップデート、パーティションの変更、または再インストールといった単純な操作によってGRUBやWindowsブートマネージャが破損し、コンピュータが正しく起動しなくなる可能性があることです。
このような状況では、起動エラー画面の表示、GRUBのレスキューモードの起動、Linuxを無視したWindowsの起動、あるいは逆にWindowsがメニューから消えるといった症状がよく見られます。幸いなことに、適切なツールを使えば、 Windows/Linuxデュアルブートシステムでも、複数のバージョンのWindowsがインストールされている構成でも、ほぼあらゆる状況でブートローダー(GRUBまたはWindows Boot Manager)を修復することが可能です。
デュアルブートシステムでGRUBまたはWindowsブートマネージャーが壊れる原因としてよくあるのは何ですか?
修理を試みる前に、スターターが故障する原因を理解しておくことが重要です。そうすることで、状況に応じて適切な工具を選択でき、同じ問題に繰り返し遭遇することを防ぐことができます。
最も一般的な理由の1つは、 Linuxのインストール後、またはメジャーアップグレード後にWindowsがインストールされると、WindowsがMBRまたはEFIパーティションを上書きしてしまうことです。Windowsはコンピュータにインストールされているオペレーティングシステムが自分だけだと認識し、ブートセクタを書き換えてしまうため、GRUBが消えてWindowsだけが起動するようになります。
もう一つよくあるケースは、パーティションツールを使用してパーティションのサイズ変更や移動を行った場合です。GRUBがインストールされているパーティションに手を加えたり、パーティションテーブルを変更したりすると、ブートマネージャがLinuxシステムのルートディレクトリやカーネル自体への参照を簡単に失ってしまうことがあり、その結果、「ブートシステムエラー」などのメッセージが表示されたり、オペレーティングシステムの選択メニューが表示されなくなったりします。
ブートマネージャは、システムアップデート後に破損することもあります。最も一般的なケースではありませんが、カーネルのアップデート、新しいGRUBパッケージ、またはUEFIファームウェアの変更によってブートメニューが正しく設定されず、レスキューコンソール(悪名高いgrub rescue>プロンプト)が直接表示されることがあります。
複数のバージョンのWindowsが共存するコンピューター(例えば、Windows 10とWindows 11が別々のディスクまたは異なるパーティションにインストールされている場合)では、問題の原因がGRUBではなく、Windows BCDストア自体にある場合があり、これが誤って設定されていると、いずれかのシステムがWindowsブートマネージャーのブートメニューに表示されないことがあります。
Linux Live メディアから起動して GRUB を修復する
ブートマネージャが故障してシステムが正常に起動しない場合、最も柔軟な対処法は、Linuxディストリビューション(通常はUbuntuが最も便利な選択肢です)のLiveCDまたはLiveUSBを使用してインストール済みのシステムに「入り」、そこからGRUBを再インストールすることです。
最初のステップは、起動可能なメディアを作成することです。破損したシステムのアーキテクチャ(64ビットシステムの場合はamd64、32ビットシステムの場合はi386 )に一致するGRUB2搭載ディストリビューション(Ubuntu、Debian、Linux Mintなど)のISOイメージをダウンロードする必要があります。この一致は重要です。なぜなら、後でchrootを使用するため、アーキテクチャが一致しないとGRUBバイナリの実行時にエラーが発生する可能性があるからです。
ISOイメージを入手したら、それを起動可能なUSBドライブに書き込みます。Rufus、balenaEtcherなど、使い慣れたツールを使用してください。ブートシステムが破損しているコンピューターにUSBドライブを挿入し、BIOSまたはUEFIからUSBドライブから起動するように選択します。
最初のステップは、起動可能なメディアを作成することです。破損したシステムのアーキテクチャ(64ビットシステムの場合はamd64、32ビットシステムの場合はi386 )に一致するGRUB2搭載ディストリビューション(Ubuntu、Debian、Linux Mintなど)のISOイメージをダウンロードする必要があります。この一致は重要です。なぜなら、後でchrootを使用するため、アーキテクチャが一致しないとGRUBバイナリの実行時にエラーが発生する可能性があるからです。
USBドライブから起動すると、ディストリビューションメニューに「Ubuntuを試す」のようなオプションが表示されます。このオプションを選択すると、ハードドライブにアクセスすることなくシステム全体がメモリにロードされます。そこからターミナルを開き、GRUBを復元するために必要なコマンドを実行できます。
Liveデスクトップでは、アプリケーションメニューを開いて「ターミナル」を検索するだけです。ここからは、すべての操作をコマンドラインから行いますが、手順を注意深く実行すれば、非常に簡単です。
ルートパーティション、/boot パーティション、およびディスクを特定します
ブートマネージャを再インストールするには、まずLinuxがインストールされているパーティションと、MBRまたはEFIパーティションが存在するディスクの名前(例:/dev/sda)を知る必要があります。
ライブシステムのターミナルから、管理者権限でコマンド`fdisk -l`を使用できます。`sudo fdisk -l`と入力してください。このコマンドは、接続されているすべてのドライブとパーティションを一覧表示し、ファイルシステムの種類、サイズ、ラベル(存在する場合)を表示します。
出力結果の中から、 Linuxルートシステムを含むパーティションを見つける必要があります。通常は、/dev/sda2などのパスが表示され、適切なサイズでLinuxファイルシステム(ext4または同等のもの)が使用されています。/bootパーティションを別途作成している場合は、それも特定する必要があります。通常、grub、vmlinuz、initrd、System.mapなどのファイルを含む小さなパーティションです。
確信が持てない場合は、疑わしいパーティションを手動でマウントして内容を確認するという簡単な方法があります。たとえば、 `sudo mount /dev/sda2 /mnt` を実行し、 `ls /mnt`で内容を一覧表示します。`bin` 、`boot`、`root` などのディレクトリが表示された場合は、ルートパーティションを確認しています。別のパーティションをマウントして、`grub`フォルダとその他のブートファイルが見つかった場合は、` /boot`パーティションを確認しています。
メインディスク名は、fdiskの出力の先頭にも表示されます。例えば、「 Disk /dev/sda」のように表示されます。この識別子は、MBRにGRUBを再インストールする際の最終的なインストール先となるため、またUEFIシステムにおいてEFIパーティションとして機能するパーティションを指すため、非常に重要です。
パーティションをマウントし、chrootを使用してGRUBを再インストールする
目的のパーティションを特定したら、それらをライブシステム内にマウントする必要があります。そうすることで、USBからではなく、ライブシステムから起動したかのようにインストール環境に「アクセス」できるようになります。
まず、`sudo mount /dev/sda2 /mnt`のようなコマンドを使用して、ルートパーティションを /mnt にマウントします(/dev/sda2 は、ご使用の環境に対応するパーティションに置き換えてください)。/ bootパーティションが別にある場合は、例えば`sudo mount /dev/sda7 /mnt/boot`のようにして、そのルートツリー内にマウントします。
次に、chroot 環境がマシンのデバイス、プロセス、ファイルシステムを認識できるように、`--bind`オプションを使用して特別なディレクトリをマウントする必要があります。これは通常、 `sudo mount -bind /dev /mnt/dev`、`sudo mount -bind /dev/pts /mnt/dev/pts`、`sudo mount -bind /proc /mnt/proc`、`sudo mount -bind /sys /mnt/sys`などのコマンドで行います。
設定が完了したら、chrootコマンドを使用してファイルシステムのルートディレクトリをインストール済みのLinuxシステムのルートディレクトリに変更できます。一般的なコマンドは`sudo chroot /mnt`です。この時点以降、実行するすべてのコマンドは、USBドライブから実行されているライブ環境ではなく、ディスクにインストールされている実際のシステムに影響を与えます。
次のステップは、GRUBを正しいディスクに再インストールすることです。BIOS/MBRシステムでは、通常は`grub-install --boot-directory=/boot/ --recheck /dev/sda`のようなコマンドを使用します(`/dev/sda`はMBRを含むディスクに置き換えてください)。このコマンドは、GRUBブートローダーをディスクのブートセクタにロードし、設定が正しいファイルを参照していることを確認します。
ブートマネージャを再インストールしたら、利用可能なすべてのオペレーティングシステムを検出できるように、GRUBの設定を再生成することをお勧めします。これは、`grub-mkconfig -o /boot/grub/grub.cfg`コマンドで実行できます。GRUBは、パーティションをスキャンしてLinuxカーネル、Windowsインストール、その他のシステムを検出し、ブートメニューを生成します。
作業が完了したら、`exit`コマンドでchroot環境を終了し、 `sudo reboot`コマンドでコンピュータを再起動してください。起動可能なUSBドライブを取り外すと、完全に機能するGRUBメニューが表示され、LinuxまたはWindowsを起動できるようになります。
Boot-Repairを使用してGRUBを自動的に復元します
手動コマンドを多数実行するのが面倒な方には、Ubuntuとその派生ディストリビューションでよく発生する起動の問題を解決するために特別に設計された、Boot-Repairという非常に便利なツールがあります。
Boot-Repairは、Ubuntu環境(オペレーティングシステム自体、またはライブ環境)にインストールできるユーティリティです。主な機能は、GRUBを自動的に再インストールし、インストールされているすべてのシステムへのアクセスを復元することです。これは、WindowsがMBRを上書きした場合、アップデートによってGRUBメニューが表示されなくなった場合、またはパーティションを変更して構成が破損した場合などに有効です。
標準的な修復機能に加えて、このツールには、パーティションテーブルのバックアップ、ブートセクタのバックアップ、詳細レポート(ブート情報)の生成、より詳細な制御が必要な場合の修復パラメータの調整といった高度なオプションが備わっています。
Ubuntu Live 環境で使用するには、まず`sudo add-apt-repository ppa:yannubuntu/boot-repair`のようなコマンドでBoot-Repair PPA リポジトリを追加する必要があります。次に、 `sudo apt update`でパッケージを更新し、最後に`sudo apt install boot-repair`でアプリケーションをインストールします。プロンプトが表示されたら、ダウンロードとインストールを確認してください。
ユーティリティがインストールされたら、Ubuntuのアプリケーション検索バーに「Boot-Repair」と入力して起動できます。起動すると、通常は「推奨修復」オプションが表示されます。このオプションは、GRUBを再インストールし、設定を更新し、手動設定を必要とせずに一般的なエラーのほとんどを修正するため、ほとんどのユーザーにとって最も便利です。
詳細オプションには、「MBR の復元」というチェックボックスがあります。このオプションを使用すると、ディスクの現在のブートサインを汎用または特定の MBR に置き換えることができます。これは、特定の状況で役立ちます。適切なオプションを選択して「適用」をクリックすると、Boot-Repair が修復プロセスを開始し、完了するまで進行状況を表示します。完了すると、通常は変更内容が表示され、再起動後にデュアルブートが再び動作するようになります。
その他の低レベルツール:Syslinux、MBR、LILO
高度なケース、特に特定の構成、古いハードウェア、または特定のファイルシステムを扱う場合、SyslinuxやLILOなどのツールを使用してMBRやブートプロセスをより直接的に操作することが有効な場合があります。
Syslinuxは、さまざまなシナリオに対応する軽量ブートローダーのスイートです。MS -DOS FATファイルシステム用の定番SYSLINUX 、ネットワークブート用のPXELINUX 、起動可能なCD用のISOLINUX、そしてext2/3/4またはbtrfsファイルシステム用のEXTLINUXが含まれます。また、DOSなどの古いオペレーティングシステムを従来とは異なるメディアから起動できるMEMDISKも含まれています。
Ubuntuのようなディストリビューションでは、 `sudo apt install syslinux`でインストールできます。インストール後、対応するコマンドをディスクのブートディレクトリに書き込むことでMBRを復元できます。例えば、`sudo dd if=/usr/lib/syslinux/mbr.bin of=/dev/sda`のように記述します。あるいは、 `sudo apt-get install mbr`に続いて`sudo install-mbr -in -p D -t 0 /dev/sda`を実行するなど、他のパッケージやツールを使用することもできます。これらも正常に動作するMBRを復元します。
もう一つの定番オプションはLILO(Linux Loader)です。GRUB2は現在ほとんどのディストリビューションでデフォルトのブートローダーとなっていますが、LILOはGRUBがうまく動作しない特定のハードウェアや構成において、シンプルで堅牢なソリューションとして依然として有効です。例えばUbuntuでは、`sudo apt-get install lilo`でインストールできます。インストール中に画面にプロンプトが表示されるので、続行するにはそれを承認する必要があります。
LILOをインストールした後、`sudo lilo -M /dev/sda mbr`のようなコマンドを使用して新しいMBRを書き込むことができます。これにより、MBRコードがLILOのコードに置き換えられ、ブートマネージャが破損したりハードウェアと互換性がなくなったシステムで、正常に動作するブートを復元するのに役立ちます。
Arch Linuxでレスキューモードが表示された場合のGRUBの修復
Arch Linuxのようなディストリビューションでは、Windowsがシステムをアップデートしたり、ブート構成を変更したり、パーティションを変更したりした後に、 GRUBレスキューモードに遭遇することは比較的よくあります。このような場合、コンピュータは起動しますが、GRUBメニューの代わりに、ごく少数のコマンドしか実行できない簡素なプロンプトが表示されます。
このモードからは、カーネルとその設定ファイルの場所をブートローダーに伝えることで、Arch Linuxを手動で起動することができます。典型的な例としては、` set root=(hd0,gpt8)`や`set prefix=(hd0,gpt8)/boot/grub`のようにルートとGRUBのプレフィックスを設定し、 `insmod normal`でノーマルモジュールをロードし、最後に`normal`を実行して通常のブートメニューを表示する、といった手順が挙げられます。
これは一時的な解決策ではありますが、根本的な問題には対処していません。Arch Linuxが起動したら、正しい手順として、適切なディスクを指定して` grub-install`を実行し(例:`sudo grub-install /dev/sda`)、次に`grub-mkconfig`を実行します。ただし、このコマンドは「ホストディスク内のファイルシステムを識別できません」などのメッセージや、ディスクのセキュリティチェックを実行できないなどのメッセージが表示されて失敗することがあります。
このような場合、最も安全な対処法は、互換性のあるライブメディア(Archインストーラー自体、または他のディストリビューションのライブメディアなど)から起動し、パーティションをマウントして、前述のようにchrootを使用することです。これにより、デバイスが正しく利用可能になり、パーティションテーブルが適切に検出され、GRUBを問題なく再インストールできることが保証されます。特別な理由がない限り、GRUBを特定のパーティション(例:/dev/sda6)ではなく、ディスクデバイス全体(例:/dev/sda)にインストールしていることを確認することが重要です。
デュアルブートシステムでWindowsブートマネージャーとBCDを復元する
2 つのバージョンの Windows が共存する構成(たとえば、Windows 10 と Windows 11) や、Linux とのデュアルブートで Windows の起動のみが破損している場合、Windows ブートマネージャとその BCD ストアを修復する必要がある場合もあります。
Windowsには、Windowsベースのシステムのブートエントリを作成または修復するために使用できるBCDBootというユーティリティが含まれています。これは、別のパーティションまたはディスクに2つ目のWindowsインストールをインストールしたがブートメニューに表示されない場合や、ブートメニューが消去されてWindowsが1つのシステムしか起動しない場合に非常に役立ちます。
一般的な手順としては、 Windows インストール メディア(または回復ドライブ)を使用して PC を起動し、修復オプションにアクセスします。インストール画面で、通常の手順を続行するのではなく、 「コンピューターを修復する」をクリックします。そこから「トラブルシューティング」に進み、「詳細オプション」を選択します。必要に応じて、「コマンド プロンプト」または「スタートアップ修復」を選択できます。
自動修復を選択した場合、「スタートアップ修復」オプションは、ブートマネージャとBCD構成のエラーを自動的に修正しようとします。多くの場合、手動でコマンドを入力することなく、Windowsブートマネージャを迅速に復旧できます。
より詳細な制御が必要な場合は、コマンドラインからBCD ストアを再構築できます。一般的な手順としては、まず適切なフォルダに移動してから、 `ren BCD BCD.old`などのコマンドで現在のストアをバックアップし、次に`bcdboot D:\Windows`を実行します(`D:\Windows` は追加したい Windows インストールの実際のパスに置き換えてください)。各パーティションに対応するドライブ文字がわからない場合は、`diskpart`と`list volume`を使用して割り当てられた文字を確認できます。
より完全な構文を使用して言語とブートボリュームを指定することもできます。例えば、` bcdboot c:\Windows /l en-us /s X: /f ALL` のように記述し、X: をブートパーティションのドライブ文字(またはブートローダーを作成するフラッシュドライブ)に置き換えます。これにより、選択した Windows バージョンのクリーンなエントリで BCD が書き換えられるため、その他の設定が正しければ、再起動時に両方のシステムがブートメニューに表示されるはずです。
bootrecを使用してWindows MBRを修復します。
Windowsでブートドライブとして使用されているディスクのMBR(マスターブートレコード)に問題が直接存在する場合、 Windowsの回復環境で利用できるbootrecツールを使用することもできます。
通常、このプロセスはWindowsインストールメディアからの起動から始まります。例えば、多くのDell製コンピュータでは、起動画面でF12キーを押してブートメニューを開き、インストール用USBまたはDVDを選択できます。起動後、以前と同様に「コンピュータの修復」をクリックし、「トラブルシューティング」、「詳細オプション」の順にクリックし、最後に「コマンドプロンプト」を選択します。
コンソールから、MBRとBCDストレージを修復するために、一連のbootrecコマンドを次の順序で実行できます。まず、クリーンなWindows互換MBRをディスクに書き込むbootrec /fixmbrを実行します。次に、システムパーティションに新しいブートセクタを作成するbootrec /fixbootを実行します。最後に、既存のWindowsインストールをスキャンしてブートストアに追加するかどうかを提案するbootrec /rebuildbcdを実行します。
これらのコマンドがエラーなく実行されたら、インストールメディアを取り外してコンピュータを再起動し、Windowsが正しく起動するかどうか、そして起動する場合は、システムの構成に応じてGRUBまたはブートマネージャを介してLinuxとのデュアルブートが引き続き利用可能かどうかを確認します。
これらのツールと手順(Linux 用 LiveUSB、chroot と GRUB の再インストール、Boot-Repair、Syslinux、LILO、BCDBoot、bootrec の使用)をすべて知っていれば、デュアルブートシステムでどのブートコンポーネントが破損しているかを診断し、それぞれのケースで適切な解決策を適用することがはるかに容易になり、システム全体の再インストールを回避して、わずか数ステップで Windows とお気に入りの Linux ディストリビューション間の安定したデュアルブートを回復できます。