我有一个混合磁盘。尝试将一些文件从另一个磁盘复制到此磁盘后,我失去了 OSX 和 Ubuntu 启动功能。运行gptsync
并得到:
Current GPT partition table:
# Start LBA End LBA Type
1 34 1987 BIOS Boot Partition
2 1988 1029662719 Basic Data
3 1029662720 2108995583 Basic Data
4 2108995584 2109405183 EFI System (FAT)
5 2109405184 2517004287 Mac OS X HFS+
6 2517266432 2667417599 Mac OS X HFS+
7 2667417600 3900229631 Basic Data
8 3900230504 3907029118 Linux Swap
Current MBR partition table:
# A Start LBA End LBA Type
1 1 3907029167 ee EFI Protective
Status: MBR table must be updated.
Proposed new MBR partition table:
# A Start LBA End LBA Type
1 1 33 ee EFI Protective
2 34 1987 da Non-FS data
3 1988 1029662719 83 Linux
4 * 1029662720 2108995583 07 NTFS/HPFS
May I update the MBR as printed above? [y/N]
显然 MBR 表已损坏或不匹配。但它根本没有反映正确的 GPT 表分区。如何修复 MBR 以匹配 GPT 表(当然最多 4 个部分的限制)?
问题很简单 - 我是否应该盲目地同意 gptsync 的建议?它看起来还可以,但并不完全如此...请提供建议,解释上述输出以使我的磁盘可用,我将不胜感激。
谢谢你!
答案1
从技术上讲,混合 MBR 是不行的;混合 MBR 明显违反了 GPT 规范。发明它们的人应该为自己感到羞愧。不幸的是,它们是 Mac 上双启动 OS X 和 Windows 的实际必需品。(不过,Windows 8 可能会改变这种情况。)
也就是说,在混合 MBR 的通常非正式规则中,gptsync 建议的规则是好的。我怀疑您认为这不行,因为第一个分区(类型为“ee”)与您的任何 GPT 分区都不匹配。这不仅没问题,而且必要的; type-0xEE 分区是保护分区,需要它来将磁盘标识为 GPT 磁盘。它实际上不是分区定义,因为它确实不是指向磁盘中可用于保存文件系统或其他内容的区域。在符合标准的 GPT 磁盘上,此分区跨越整个磁盘(MBR 本身除外),用于防止不支持 GPT 的工具干扰磁盘。在混合 MBR 上,此分区的大小会减小(通常会大幅减小),并且最多会向 MBR 表添加三个“真实”GPT 分区。
至于您是否应该接受此分区表,我不确定;这取决于 Windows 需要能够访问哪些分区。如果 Windows 只需要访问 /dev/sda3(在 GPT 中;/dev/sda4 在建议的混合 MBR 中),那么它应该可以正常工作。但是,如果 Windows 需要访问任何后续分区,您可能需要更有创意。您可以使用( Ubuntu 软件包的gdisk
一部分)通过使用恢复和转换菜单上的选项来执行此操作。详细信息显示在gdisk
h
gdisk 基于 Web 的文档。