Life Journal

随笔,及其他

我是 Xiao Xiao,在日本的产品经理,偶尔也写代码,iOS/Mac/Web,偶尔也做设计,爱用 Sketch,偶尔写文字,存在这里。


MBR已死,GPT将立

在前段时间的系统安装过程中,遇到的一个重要的问题就是关于MBR与GPT的。下面偶小小总结下~

从P965芯片组起,Intel就在其中加入了对于EFI的支持。但是,PM965之类的芯片组中,仍然没有对EFI的支持。

在没有EFI支持的芯片组下,GPT实际上并不能被真正的支持,仅仅能作为MBR/GPT混合磁盘来启动。也就是说,原本GPT的标准中,存在一个保护性质的MBR(Protective MBR),而不支持EFI的芯片组主板下,BIOS会继续使用该MBR来引导。

在标准的GPT规范中对Protective MBR的规定是,正确显示前三个分区,而对之后的所有分区,将会以一个GPT的保护分区的形式来显示,该分区无法读取,也无法修改。这是为了避免Windows之类的系统在不支持GPT的情况下误改GPT分区。

然而似乎并非所有的分区工具都遵守了这个标准。在Linux下使用GParted工具对GPT进行修改之后,Protective MBR中极有可能仅仅会留下一个EFI分区。而其余分区全部消失。此时,在之前所提到的不支持EFI的芯片组的主板引导下,BIOS将无法找到正确的引导分区,导致无法正常引导。

关于此问题的解决方案是:在mac下使用gptsync工具对MBR进行修正,值得注意的是,该工具并不会把MBR按照GPT标准规定的那样修正——不会有GPT保护分区的存在,而是单纯的将前四个分区信息放置在MBR中,也就是生成了所谓的MBR/GPT混合磁盘分区。

此外,在Windows下生成的GPT磁盘与Mac系统下生成的GPT磁盘是有一定差异的。首先体现在EFI分区的大小上。前者大小是100M左右,而后者的大小则是200M。其次,如果主板芯片组不支持EFI,那么Windows将不允许被安装到GPT格式的磁盘上(特殊方法可行),但如果是Mac制作的GPT磁盘,实际上是可行的,并且此时Windows会将此磁盘识别为MBR磁盘。

Mac系统对GPT的支持亦不算完美,磁盘工具在Protective MBR破坏的情况下,亦无法正常进行磁盘操作。

因此,在无EFI支持的电脑上进行GPT的布置,Protective MBR成为了关键。

同时,Linux下的GRUB对GPT的支持很成问题——尤其是在没有EFI的情况下。目前有几种情况,原因尚不明。下次文章将详说。

尽管如此,GPT的巨大优越性仍然让晓晓毫无犹豫的投怀送抱……