そのため、GPTパーティションを使用したUEFI構成でWindows 8OEMコピーがインストールされたラップトップがありました。少し前にUbuntu13.xx(最新のもの)を一緒にインストールし、GRUB幸いにもWindowsを検出し、今まではすべて問題ありませんでした。
昨日、Windows 8.1にアップデートしたところ、ブートローダーが書き直されたようで、当然、Ubuntuを起動できません。それは私を直接Windowsに連れて行ってくれます。
GRUBを修復するにはどうすればよいですか?ヘルプページ/記事のほとんどは、UEFI + GPTAFAIKとはまったく異なるケースであるMBRパーティショニングについて説明しています。そして、UEFIについて話している記事は、Linuxをインストールした後に起動できないWindowsのインストールを修正することについてですが、私の場合はそうではありません。
Ubuntuを再び立ち上げるために試行錯誤された方法はありますか?
PS:あなたがそれを推薦する前に、いいえ。 WindowsがUEFIとともにインストールされている場合、EasyBCDまたは同様のツールはLinuxをWindowsブートローダーに追加できません。
MariusMatutiaeが示唆しているように、ブート修復を使用すると機能する場合があります。ただし、そのプログラムは賢明なこと以上のことをすることがあるので、私はそれを避けたいと思います。少なくとも3つのそれほど急進的でない解決策があります:
解決策1:ファームウェアを使用する
多くのEFIには、起動順序を調整できる組み込みの起動マネージャーが用意されています。 Ubuntu/GRUBエントリはおそらくまだ存在しているので、ファームウェアを使用して起動順序を調整するだけです。このアプローチの問題点は、EFIセットアップユーティリティが非常に多様であるため、これを行う方法について普遍的に適用可能な指示を提供することが不可能なことです。ただし、ファームウェアがこの機能をサポートしている場合は、オプションを取得する方法を理解したら、それを行う最も簡単な方法である可能性があります。
解決策2:Windowsでbcdedit
を使用する
Windows bcdedit
ツールは、Windows以外のブートローダーをブートリストに追加できます。秘訣は、ファイルが何であるかを理解することです。あなたはこのようにそれを行うことができます:
bcdedit
が一部のシェルで正しく機能しないという報告を目にしました。)mountvol S: /S
と入力してESPをS:
としてマウントします(必要に応じてS:
を別のものに変更できます)。S:
をチェックしてUbuntuブートローダーを見つけます。おそらくS:\EFI\ubuntu\grubx64.efi
またはS:\ubuntu\shimx64.efi
のいずれかです。後者が表示された場合は、安全に使用できるはずであり、使用する必要があるかもしれません。shimはUbuntuがセキュアブート(SB)を処理する方法ですが、SB以外のコンピューターではほとんど効果がありません。セキュアブートが非アクティブの場合、shimがインストールされている場合とされていない場合があるため、grubx64.efi
を直接参照する必要がある場合があります。bcdedit /set {bootmgr} path \EFI\ubuntu\shimx64.efi
と入力し、shimx64.efi
が存在しない場合はgrubx64.efi
をshimx64.efi
に変更します。それが何か他のものである場合は、パスを変更します。bcdedit /set {bootmgr} description "Ubuntu"
と入力して、EFI自体のブートマネージャーリストに表示される名前を設定します。 Ubuntu
を好きなように変更します。ブートローダーのファイル名がわかっている場合は、手順3と4をスキップできます。 (この方法でbcdedit
を使用するために、ESPをマウントする必要はありません。)
この方法には、Windowsが起動順序を混乱させないという利点があります。Windowsが起動順序を無制限に調整しようとする場合があります。ただし、Windows 8.1以降にアップグレードした場合に、この問題の繰り返しを防ぐことができるかどうかはわかりません。
解決策3:Linuxを起動し、efibootmgr
を使用する
Linuxは、ファームウェア独自のブートマネージャーを使用して起動できます。ブートマネージャーは、コンピューターごとに異なりますが、起動時にEscキーまたはファンクションキーを押すことでほとんどのコンピューターにアクセスできます。または、USBフラッシュドライブまたはCD-Rのブートマネージャーが不十分な場合は、 rEFInd を使用できる場合があります。 LinuxライブCDまたは緊急ディスクを使用して起動することもできますが、必ずEFIモードで起動してください。BIOSモードでの起動では不十分です。 Linuxに入ると、efibootmgr
を使用して起動順序を調整できます。
Sudo efibootmgr -v
と入力して、ブートプログラムのリストを取得します。 1つはLinux用で、shimまたはGRUBのいずれかを起動します。 BootOrder
リストに注意してください。 Windowsエントリが最初になり、Ubuntuエントリがリストの後半に来る可能性があります。一部のエントリは混乱を招く可能性があります。それらを無視してください。 Ubuntuエントリを見つけてその番号を特定することに焦点を当てます(行の先頭のBoot####
エントリ内)。Sudo efibootmgr -o {list}
をUbuntu用、{list}
がWindows用の場合、Sudo efibootmgr -o 5,0
のように、Boot0005
と入力し、Boot0000
をブート番号のコンマ区切りリストに変更します。必要に応じてエントリを追加できますが、最初のエントリが最初に起動されるため、最初のエントリが最も重要です。Ubuntuエントリが存在しない存在しない場合は、次のようにefibootmgr
を使用して作成できます。
efibootmgr -c -d /dev/sda -p 1 -l '\EFI\ubuntu\shimx64.efi' -L "Ubuntu"
-d /dev/sda
を変更してディスク全体のデバイスをポイントし、-c 1
を変更してパーティション番号を指定します。 (実際、/dev/sda
と1
がデフォルトであるため、ESPが/dev/sda1
でない場合にのみ、これらが本当に必要になります。)
これには多くの異なる解決策があります。ソリューションの1つのセットでは、たとえばUbuntuのようなLinuxライブディストリビューションを使用する必要があります。 UbuntuイメージをUSBスティックに書き込み、そこから起動してインストールせずにUbuntuを試してください...、ターミナルを開いてから、インストールして使用してください Boot-Repair 、Ubuntuの公式ドキュメントに属するWebページの指示に従います。これは通常、ほとんどの起動の問題を修正するのに十分です。
または、Boot-Repairをダウンロードする代わりに、端末からHDDディスクをマウントすることもできます。
Sudo mount /dev/sdaX /mnt
ここで、XはUbuntuの/を配置したパーティションの番号です。よくわからない場合は、上記のコマンドの前に、
Sudo fdisk -l
どのパーティションがどれであるかを教えてくれます。次に、次のコマンドを発行します。
cd /mnt
Sudo chroot .
Sudo update-grub
そして、これが行われると、Ctrl + D。