web-dev-qa-db-ja.com

gptパーティション上のgrubの場所

私が十分に理解している限り、古いgbrのようなリンクとしてgptパーティションスキームを使用している場合、grubプログラムは完全にefiパーティションに配置されています。 Linuxパーティションを削除しても、grubは引き続き使用できますか?免責事項:Linuxをアンインストールするつもりはない

1
Petr Nedvěd

まず、2つの明確な問題が関係しています。

  • BIOS vs. EFI-これはコンピューター上のファームウェアのタイプです。または、場合によっては、EFIにはBIOSエミュレーションレイヤーが含まれるため、EFIベースのコンピューターはBIOS/CSM /レガシーモードで起動できます。コンピューターにインストールされているGRUB 2のバージョンは、ファームウェアのタイプによって異なります。BIOSでは、16ビットGRUB 2(grub-pcパッケージ、IIRC)がインストールされています。 EFIでは、GRUB 2は、EFI自体(32ビットまたは64ビット)と同じビット深度にコンパイルされ、grub-efi-ia32またはgrub-efi-AMD64 パッケージ。
  • MBR vs.GPT-パーティションテーブルタイプは、BIOSモードの部分の詳細に影響しますGRUB -MBRディスクでは、ブートローダーの第2ステージは、MBRの直後にある公式に割り当てられていないセクターに入ります; GPTディスクでは、これらの第2ステージのファイルは、BIOSブートパーティションと呼ばれる特別なパーティションに格納されますgdiskのタイプEF02であるか、partedまたはGPartedで「bios_grubフラグ」が設定されている)EFIモードのブートでは、パーティションテーブルタイプはそれほど重要ではありません;それは、EFIシステムパーティション(ESP)はfdiskを使用するMBRの下でEFのタイプコードを持ちますが、GPTではgdiskのEF00またはpartedの「ブートフラグ」によって識別されます。 GParted(MBRディスクでは「ブートフラグ」の意味がまったく異なることに注意してください。ESPは、partedまたはGPartedを使用してMBRディスクで正しく識別できません。)

allの場合、GRUB 2のコードはあちこちに散らばっています。場所might存在するもの:

  • MBR-このコンテキストでは、「MBR」はディスクの最初のセクターを意味します。この場所は、ほとんどのBIOSモードインストールで、MBRディスクとGPTディスクの両方に使用されます。最初の段階のGRUB=コードはここにありますが、スペースは限られている(わずか440バイト)ので、GRUB=をMBRに収めることは不可能です。
  • Linuxファイルシステムパーティション上のブートセクタ-BIOSモードをインストールすることは可能ですGRUB=その最初の段階コードはMBRではなくパーティションに配置されます。この構成はUbuntuでは珍しいです。
  • MBR後のセクター-前述のように、MBRディスクでは、GRUBは、 MBR。
  • BIOSブートパーティション-前述のように、GPTディスク上のポストMBRセクターの代わりに別のパーティションが存在します。 (これは、GPTの下のポストMBRセクターがGPT自体の一部であり、GRUBで使用できないためです。)
  • ESP-EFIでは、メインのGRUB 2バイナリがESPのファイルに格納されます。このファイルには、 BIOSモードと同等のGRUB 2のMBRおよびポストMBR/BIOSブートパーティションコード。ESP isnotGRUB=によってBIOSモードのブートに使用されます。
  • Linux /boot directory-すべての場合、GRUB 2の一部は通常のファイルシステムからロードできるファイルに存在します。これらのファイルは通常Linuxにあります/bootディレクトリ、通常は/boot/grubまたは/boot/grub2

この最後のポイントは、実際には「落とし穴」です。デュアルブートインストールからUbuntuを削除すると、GRUB 2はpartialally)削除されるため、ほぼ確実に起動しますが、正しく動作しませんこれらの構成ファイルとサポートファイルが削除されているためです。grub>起動しようとするとプロンプトが表示されます。 BIOSでは、この時点での唯一の選択肢は、他のOSのブートローダーを再インストールすることです。 EFIでは、通常、任意の数のツール(Linuxではefibootmgr、Windowsではbcdeditまたは EasyUEFIbless OS Xでは、bcfgはEFI Shell、または多くのEFIではシステム固有のファームウェアツールです。別のOSのブートローダーの再インストールも機能するはずですが、通常はやりすぎです。

ほとんどのブートローダーにはこの特定の問題がないことに注意してください。 EFI、ELILOでは、GRUB Legacy、SYSLINUX、gummiboot/systemd-boot、およびrEFIndはすべて、ブートローダーと同じパーティション(通常はESP)に保存されている構成ファイルに依存しています。 Ubuntuを削除すると、最悪の事態は、Ubuntuを起動できなくなりますが、インストールしたものはすべて起動できるということです。BIOSでは、LILOは引き続き動作しますが、間違いではありません。GRUB= LegacyとSYSLINUXは両方ともGRUB 2の問題を共有しています。

GRUB 2を設定して、Linuxファイルシステムではなく、ESPに設定ファイルとサポートファイルを配置することができます。ただし、Ubuntuの開発者はLinuxファイルシステムにファイルを配置することを選択したため、Ubuntuはこの問題に苦しんでいます。

2
Rod Smith