我按照非常详细的指南制作混合 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