修复 GPT 分区表

修复 GPT 分区表

我最近在 Macbook Air 上安装了 Linux Mint,并将我的旧操作系统保存到几个磁盘映像(EFI 和 OS)。我在外部硬盘上创建了两个与 EFI 和 OS 映像大小完全相同的分区,然后使用“磁盘”中的“恢复分区映像”工具。但是,当我在Alt启动时按住打开备用启动菜单时,只有一个选项,即启动到 Linux。

输出sudo gdisk /dev/sdb

[me]@[me]:~$ sudo gdisk /dev/sdb
GPT fdisk (gdisk) version 1.0.3

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

Found valid GPT with hybrid MBR; using GPT.

Command (? for help): p
Disk /dev/sdb: 3907029168 sectors, 1.8 TiB
Model: 0011         99Y
Sector size (logical/physical): 512/4096 bytes
Disk identifier (GUID): 12C82EC5-8211-41B4-A49A-A615DC07A3BC
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 3907029134
Partitions will be aligned on 2048-sector boundaries
Total free space is 1240698989 sectors (591.6 GiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1      2666362880      2934798335   128.0 GiB   0700  
   2            2048          411647   200.0 MiB   0700  
   3          411648       250413055   119.2 GiB   8300  
   5       518879232      2666362879   1024.0 GiB  0700  

Command (? for help): r

Recovery/transformation command (? for help): o

Disk size is 3907029168 sectors (1.8 TiB)
MBR disk identifier: 0xFDB98627
MBR partitions:

Number  Boot  Start Sector   End Sector   Status      Code
   1                     1         2047   primary     0xEE
   2            2666362880   2934798335   primary     0x07
   3      *           2048       411647   primary     0x0B
   4                411648    250413055   primary     0xAF

Recovery/transformation command (? for help):

答案1

您需要修复分区类型代码并删除或重新创建混合 MBR。

修复 GPT 分区表

使用磁盘分区首先通过运行(或任何外部驱动器)对分区进行排序sudo gdisk /dev/sdb,然后选择选项。请注意,在 Linux Mint 中,如果您使用旧式等表示法而不是 UUID 或标签s定义了这些分区,则需要更新它们以匹配。/etc/fstab/dev/sdb3

如果您随后使用选项显示分区表,p它应该看起来像这样(请注意分区 2 和 3 之间的未分配空间):

Number  Start (sector)    End (sector)  Size       Code  Name  
   1            2048          411647   200.0 MiB   0700  
   2          411648       250413055   119.2 GiB   8300  
   3       518879232      2666362879   1024.0 GiB  0700
   4      2666362880      2934798335   128.0 GiB   0700 

接下来使用选项更正分区类型t。您可以使用选项查看分区类型代码l,您可能感兴趣的三个类型是EF00(EFI 系统) 和AF00(Apple HFS/HFS+) 或AF0A(Apple APFS)。例如,将分区 1 更改为EF00(EFI 系统分区)

Command (? for help): t
Partition number (1-7): 1
Current type is 'Microsoft basic data'
Hex code or GUID (L to show codes, Enter = 8300): EF00
Changed type of partition to 'EFI System'

假设分区 2 是您的旧 macOS,您应该将类​​型代码更改为AF00原始版本是否为 HFS(现在称为 macOS 扩展)或AF0A是否为 APFS 容器。这取决于您的 macOS 版本。根据维基百科

自 macOS High Sierra 起,所有配备闪存的设备都会自动转换为 APFS。[24] FileVault 卷也会转换。从 macOS Mojave 开始,Fusion Drives 和硬盘驱动器也会在安装时升级。[25]

假设第 3 和第 4 个分区没有问题,您可以保留它们。GPT 分区表现在应如下所示:

Number  Start (sector)    End (sector)  Size       Code  Name  
   1            2048          411647   200.0 MiB   EF00  
   2          411648       250413055   119.2 GiB   AF00  
   3       518879232      2666362879   1024.0 GiB  0700
   4      2666362880      2934798335   128.0 GiB   0700 

修复混合型 MBR

macOS 不需要混合型MBR并始终使用 GPT 分区布局进行引导。仅当您想在传统 BIOS 模式下引导 Windows 或 Linux 时才需要混合 MBR。

选项1

如果此磁盘上只有 macOS 和数据分区,则只需要一个覆盖整个磁盘的保护性 MBR。选择x进入恢复/转换菜单,然后选择n创建新的保护性 MBR。您可以使用选项“o”进行检查

对于你来说它看起来应该是这样的:

Command (? for help): x

Expert command (? for help): n

Expert command (? for help): o

Disk size is 3907029168 sectors (1.8 TiB)
MBR disk identifier: 0x00000000
MBR partitions:

Number  Boot  Start Sector   End Sector   Status      Code
   1                     1   3907029167   primary     0xEE

选项 2

如果您从此磁盘以 Legacy/BIOS/CSM 模式启动 Windows 或 Linux,则创建混合 MBR 以匹配更新的 GPT 分区表。选择r进入恢复/转换菜单,然后选择h创建新的混合 MBR。

列出了 MBR 分区类型代码这里.您可以AF使用任何对于macOS,07对于 NTFS 或 exFAT,0B对于 FAT32 等。如果其中一个分区应该是可启动的(macOS 除外,因为它忽略混合 MBR),请设置可启动标记为Y

解释了如何设置混合 MBR这里但你可能想要这样的东西(假设分区 3 设置为可启动):

Recovery/transformation command (? for help): h

WARNING! Hybrid MBRs are flaky and dangerous! If you decide not to use one,
just hit the Enter key at the below prompt and your MBR partition table will
be untouched.

Type from one to three GPT partition numbers, separated by spaces, to be
added to the hybrid MBR, in sequence: 2 3 4
Place EFI GPT (0xEE) partition first in MBR (good for GRUB)? (Y/N): Y

Creating entry for GPT partition #2 (MBR partition #2)
Enter an MBR hex code (default AF): AF
Set the bootable flag? (Y/N): n

Creating entry for GPT partition #3 (MBR partition #3)
Enter an MBR hex code (default 07): 07
Set the bootable flag? (Y/N): y

Creating entry for GPT partition #4 (MBR partition #4)
Enter an MBR hex code (default 07): 07
Set the bootable flag? (Y/N): n

您可以使用选项检查它o- 它应该看起来像这样,分区 1 从扇区 1 运行到 EFI 分区的末尾,其他的起始/结束位置与您的 GPT 分区表相匹配。

Recovery/transformation command (? for help): o

Disk size is 3907029168 sectors (1.8 TiB)
MBR disk identifier: 0xFDB98627
MBR partitions:

Number  Boot  Start Sector   End Sector   Status      Code
   1                     1       411647   primary     0xEE
   2                411648    250413055   primary     0xAF
   3      *      518879232   2666362879   primary     0x07
   4            2666362880   2934798335   primary     0x07

对新布局满意后,您可以选择w将更改写入磁盘(或q随时退出而不保存)。最后重新启动或弹出/重新连接驱动器,以便操作系统看到新表。

相关内容