web-dev-qa-db-ja.com

ブート修復の使用中に「GPTが検出されました。BIOSブートパーティションを作成してください」

Windowsを8.1に更新してから、Grubメニューが消えました。 Live USBを使用してUbuntuを実行し、Boot-Repairを使用しましたが、何か問題が発生しました。 [推奨修復]をクリックすると、次のエラーが表示されます。

GPTが検出されました。 BIOS-Bootパーティションを作成してください(> 1MB、フォーマットされていないファイルシステム、bios_grubフラグ)。これは、Gpartedなどのツールを介して実行できます。その後、再試行してください。または、[Separate/boot/efi partition:]オプションを有効にしてから再試行できます。

そこで、sda9(ext4なのでUbuntuシステムパーティションだと思います)をbios_grubフラグで設定してから、Boot-Repairを再度実行しようとしました。うまくいきませんでした。

私は何をすべきかわかりません。 Windowsを更新する前に、Grubは(UEFIを使用して)正常に動作していました。

Bios_grubフラグを削除しました。次にfsckを使用しましたが、エラーは見つかりませんでした。そのため、Boot-Repairで再試行しましたが、常に「GPTが検出されました」エラーが表示されます。ブートはUEFIモードで、セキュアブートは「オフ」です。

SecureBootをオフにしてPCを起動すると、GRUBメニューにアクセスできます。しかし、それは空です(唯一の音声は「システム設定」です)。

Ubuntuシステムディスクをマウントしました。

Sudo mount /dev/sda9 /mnt

その他のこと:

Sudo mount --bind /dev /mnt/dev
Sudo mount --bind /proc /mnt/proc
Sudo mount --bind /sys /mnt/sys

chrootを使用してシステムにログオンしました:

Sudo chroot /mnt

Grubを再インストールしました:

grub-install /dev/sda
update-grub2

しかし、まだ機能しません。

11
Kurt Bourbaki

まず、partedまたはGPartedのbios_grubフラグは BIOSブートパーティションを識別する方法です。 GRUB 2はこのパーティションを使用してその一部を保持しますコンピュータがBIOSモードで起動するときの起動コード。サイズは通常1MiB程度ですが、場合によっては小さくすることもできます。最も重要なことは、Linuxルート(bios_grub)パーティションに/フラグを設定した後にブート修復がGRUBインストーラーを再実行した場合、そのパーティションを破棄した可能性があります。したがって、他のことを行う前に、次のことをお勧めします。

  1. Linuxルート(bios_grub)パーティションから/フラグを削除します。
  2. Linuxルート(/)パーティションをfsck(またはGPartedまたは他のGUIツールの同等の機能)でテストします。パーティションにエラーがある場合は、それらを修正するか、バックアップからシステムを復元します。続行する必要があるのは、パーティションをマウントして通常どおり使用できることを確認した場合のみです。

次に、緊急ディスクをEFIモードではなくBIOS/CSM /レガシーモードで起動したため、この問題が発生しました。コンピューターのブートモードを制御する方法を学ぶ必要があります。これは通常、ブートプロセスの早い段階で(GRUBが表示される前に)Escキーまたはファンクションキーを押すことでアクセスされるブートマネージャーを介して実行できます。ただし、このブートマネージャーへのアクセス方法や提供されるオプションについては標準化されていません。したがって、これを理解するために実験する必要があるかもしれません。

3番目に、ライブCDをEFIモードでブートする方法を理解できる場合、ブート修復は問題を修正するはずです。または、CD-RまたはUSBフラッシュドライブバージョンのmy rEFInd boot manager を使用してLinuxをブートできるようにする必要があります。 Linuxが起動したら、efibootmgrを使用してGRUBをデフォルトのブートローダーとして復元できるはずですが、詳細は現在の設定方法によって異なります。簡単に言うと、-oオプションをefibootmgrに使用して、GRUBのエントリを最初のエントリとして設定する必要があります。 この質問と回答 問題を異なる角度からカバーします。 GRUBを復元する代わりに、rEFIndをハードディスクにインストールすることも検討できます。


EDIT:使用してみてください rEFInd boot manager: USBフラッシュドライブまたはCD-Rイメージを使用して適切なメディアを作成し、それから起動します。これにより、Windows用のオプションとLinux用の少なくとも1つのオプションが提供されます。 WindowsとLinuxの両方をブートできる場合は、rEFIndのDebianパッケージをLinuxにインストールします。これにより、デフォルトでrEFIndを使用するようにコンピューターが切り替えられ、すべてを正常に起動できるはずです。

11
Rod Smith

この問題は次のように処理できます。

  1. Gpartedを起動します。

  2. ブートパーティションを特定します。私のシステムディスク上の最初の16.00MiBです。

  3. パーティションを削除します(間違ったパーティションを削除して、その上のすべてのデータを失いたくはありません!何をしているのかわからない場合は停止してください!)。

  4. 新しいパーティションを作成し(ファイルシステムにフォーマットしないでください)、設定を適用します。

  5. [フラグの管理]オプションを使用して、bios_grubとして新しいパーティションにフラグを付けます。

ここで、ブート修復を再試行してください。

2
yang