在混合 MBR 磁盘上安装 grub

在混合 MBR 磁盘上安装 grub

我按照非常详细的指南制作混合 MBR 记录 (GPT/MBR),取自这里

现在,gdisk说我有混合mbr。但我只能在 UEFI 中启动,而不能在 BIOS 中启动(我使用外部硬盘驱动器)。似乎简单执行grub-install仅安装 uefi 部分。我看到了讨论 关于保护性条目必须成为磁盘上第一个条目的要求,所以我将其设为第一个,这不是根本原因。

所以问题是如何安装 GRUB 以便它可以引导从 BIOS/MBR 和 UEFI/GPT 启动的操作系统?

$ sudo gdisk /dev/sdd

GPT fdisk (gdisk) version 1.0.1

Partition table scan:
  MBR: hybrid
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with hybrid MBR; using GPT.

Command (? for help): r

Recovery/transformation command (? for help): o

Disk size is 468862128 sectors (223.6 GiB)
MBR disk identifier: 0x7213C4A0
MBR partitions:

Number  Boot  Start Sector   End Sector   Status      Code
   1                     1       208895   primary     0xEE
   2      *         208896      1196031   primary     0x83
   3               1196032    135413759   primary     0x83
   4             200425472    468860927   primary     0x83

Recovery/transformation command (? for help): p
Disk /dev/sdd: 468862128 sectors, 223.6 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 21773ad9-3d43-4832-85b7-6c841d20ce75
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 468862094
Partitions will be aligned on 1-sector boundaries
Total free space is 62183 sectors (30.4 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1              63           80324   39.2 MiB    EF00  Basic data partition
   2          208896         1196031   482.0 MiB   8300  Basic data partition
   3         1196032       135413759   64.0 GiB    8300
   4       135413760       168968191   16.0 GiB    0700  Basic data partition
   5       168968192       200425471   15.0 GiB    0700  Basic data partition
   6       200425472       468860927   128.0 GiB   8300
   7           81920          149503   33.0 MiB    EF02

$ sudo 分开 /dev/sdd

GNU Parted 3.2
Using /dev/sdd
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print
Model: ATA OCZ-VECTOR150 (scsi)
Disk /dev/sdd: 240GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system     Name                  Flags
 1      32.3kB  41.1MB  41.1MB  fat32           Basic data partition  boot, esp
 7      41.9MB  76.5MB  34.6MB                                        bios_grub
 2      107MB   612MB   505MB   ext4            Basic data partition
 3      612MB   69.3GB  68.7GB  ext4
 4      69.3GB  86.5GB  17.2GB  linux-swap(v1)  Basic data partition  msftdata
 5      86.5GB  103GB   16.1GB  ntfs            Basic data partition  msftdata
 6      103GB   240GB   137GB   ext4

$ sudo grub 安装

Installing for x86_64-efi platform.
Installation finished. No error reported.

答案1

如何安装 GRUB 以便它可以引导从 BIOS/MBR 和 UEFI/GPT 启动的操作系统?

你应该创建一个BIOS引导分区标记为bios_grub.该分区需要在安装 GRUB 之前创建。

要使 GRUB 在基于 BIOS 的系统上从 GPT 分区磁盘引导,需要 BIOS 引导分区。请注意,该分区与 /boot 挂载点无关,将直接被 GRUB 使用。不要在其上创建文件系统,也不要挂载它。

如何创建BIOS引导分区?最小尺寸是多少?

在 GPT 系统上创建 BIOS 引导分区时,应确保其大小至少为 31 KiB。 (GPT 格式的磁盘通常不会特别小,因此我们建议您将其设置为大于最低限度,例如 1 MiB,以留出足够的增长空间。)您还必须确保它具有正确的分区类型。使用 GNU Parted,您可以使用如下命令进行设置:

parted /dev/disk set partition-number bios_grub on

相关内容