
我按照非常詳細的指南製作混合 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