在Mac上安装Linux必须提前了解的知识
首先,尽管苹果已经改用intel的芯片,但是硬件上和PC还有一个重要的差别,就是苹果并没有BIOS。苹果已经使用了EFI,而PC还停留在老掉牙的BIOS。 Ubuntu/Windows 还是需要BIOS的,于是苹果在EFI的固件里模拟了一个BIOS来照顾后进的Windows。boot camp 出来之前的机器,需要下载安装EFI的固件更新来制造这个假BIOS,现在卖的机器都已经是现成的了。这个假BIOS基本上能很好地工作,但是功能十分简单,最大的问题是它不支持从外置硬盘启动需要BIOS的操作系统,这基本上就是说你能从外置硬盘启动的操作系统只有Mac OS X,(他是从EFI启动的)如果要从外置硬盘启动ubuntu,你必须把GRUB留在内置硬盘里。也许某一天苹果会发布EFI的固件更新程序来增强这个假BIOS的功能,也许永远也不会,因为 Linux/Windows应该在不久的将来也要转向EFI. 对于Linux来说,等到grub2发布的时候,就能直接从EFI来启动了。长角牛曾经许诺说要支持EFI,但是到了vista发布的时候并没有实现这个功能。
其次,苹果和PC还有一个重大不同,就是磁盘分区。苹果的分区表已经是GPT,他可以有最多128个分区。而PC的分区表大多还是老式的MBR分区表,最多可以有4个主分区。为了在苹果上装windows/linux,苹果可以把这个磁盘做成既有GPT分区表,同时又有MBR分区表,就是所谓的GPT/MBR hybrid。事实上只要磁盘上存在一个FAT32/NTFS分区,苹果就会自动生成一个MBR分区表,分区表的内容是GPT表里的头四个分区。一个GPT磁盘里是不存在MBR式磁盘的扩展分区和逻辑分区的,就是说他的MBR表里只能有四个分区,全部是主分区。第五个分区之后的部分,在MBR表里看不到,显示为未使用空间。而第一个分区(系统自动生成,200兆的隐藏小分区)已经被EFI征用,是动不得的。因此windows最多只能有3个分区。Vista曾经号称会支持GPT,结果也是还没有实现。Linux完全知道如何使用GPT磁盘,可以把linux分区放在第五个以后,把前面的都留给windows。目前唯一的障碍是grub还只认得MBR分区表。在grub2出来以后就可以使用纯粹的GPT磁盘了。当然你也可以开个小小的历史倒车,把磁盘变成纯粹的MBR磁盘,继续使用扩展分区和逻辑盘符,但是有两个问题,一个是不能重装Mac OS X, OS X 安装后可以运行在MBR磁盘上,但是安装的时候只认GPT,你只好把整个磁盘抹掉。当然如果你不要OS X,单装ubuntu是没有问题的。另一个是不能做EFI固件更新。
这种GPT/MBR的混杂有时候是很讨厌的,你必须确保两个分区表是一致的,因为虽然分区表有两套,数据却只可能有一份,每一个分区在两套分区表里的起始和终点应该一样,类型也应当一致。所以永远不要在windows底下做有关分区的操作,比如用partition magic 之类的软件,他改了MBR分区表而GPT表没动,结果就乱了。应该在OS X底下用苹果的磁盘工具,他会同时照顾好GPT和MBR。Ubuntu 7.10可以很好地对付GPT/MBR混合磁盘,不幸的是如果你在 8.04底下修改分区的话他只要发现GPT分区表存在就会把MBR表干掉,好像不能容忍他们同时存在似的,可惜grub又需要MBR分区表,结果是很多人安装完8.04后就发现ubuntu启动不了,而且windows也同时启动不了了。如果遇到这个情况,不要紧张,只要在OS X底下把MBR分区表从GPT表里抄写过来就可以了,就是做一个所谓GPT/MBR同步,重建MBR分区表。这个问题已经被列为8.04的bug,应该在下一个发行版里就不会再出现了。
除此之外,英特尔心的苹果和其它PC应该没有什么本质上的区别了。总结就是,Mac和PC的两个小差别基本是Mac超前而PC落后一点的差别。EFI/GPT也是PC明天的方向。而今天为了兼容旧的东西会有一点点小麻烦但只要你有这些背景的了解就都可以避免。