分享

Macbook实现OS X+Ubuntu 10.04+XP无损安装法

 斐迪 2010-06-10

Macbook实现OS X+Ubuntu 10.04+XP无损安装法

作者:socractes


先交代下背景:07年末08年初小白, 型号标识符Macbook3,1.升级至最新固件和OS X 10.6.2,安装方法参考了官方的help:Intel CPU-based Macintosh Generic Installation,https://help./community/MactelSupportTeam/AppleIntelInstallation,所以理论上适合于所有主流苹果电脑,但官方XP三系统安装法有缺陷,经过改进后,本方法可以实现三分区启动,并可以无损还原为单一mac分区,不用重装OS X.


作为一个讲说版,下面将以一个基本流程为例,从中加以说明为什么这么做,方便大家了解每个操作步骤的原因.


1.原生态单一OS X默认分区Macintosh HD,格式 Mac OS 扩展(日志式),也就是Hfs+,BOOTCAMPXP分区,格式FAT32.


*使用BOOTCAMP分区是为了最后能抹去XP还原为单分区Hfs+.


2.使用磁盘工具,依次点击:整个硬盘->分区栏->Macintosh HD->”+”符号,Macintosh HD分出一个区来装ubuntu,调整合适大小,命名ubuntu,格式 Mac OS 扩展(日志式),->应用.


*因为OS X不识别ext4,所以只能先格式化为Hfs+.

*硬盘所有分区命令必须在OS X下完成,因为OS X能实现GPT-MBR混合格式的分区表同步,XPUbuntu下的分区命令只改变MBR分区表,这会造成无法引导启动OS X.(这个原理是网上一致口吻,其实我也没试过,反正破坏性实验不干,期待小白)

*经过实践,只要分区表不被破坏,是可以使用XP盘或ubuntu盘格式化成NTFSext4,这点与网上说法不一致.


3.安装rEFIt-0.14,安装时别忘了选择自定义安装,勾上rEFIt File System Drivers,加载Linux格式的识别,完成后打开终端,输入:

代码:

cd /efi/refit

./enable.sh


激活rEFIt,安装完后多了/应用程序/实用工具/Partition Inspector,可用来检查GPT-MBR的一致性.


引用:

以下是我的分区表:

*** Report for internal hard disk ***


Current GPT partition table:

# Start LBA End LBA Type

1 40 409639 EFI System (FAT) #/sda1 EFI固件

2 409640 452805055 Mac OS X HFS+ #/sda2 OS X

3 453067200 535177175 Mac OS X HFS+ #/sad3 将来格式化装ubuntu

4 537282560 625141759 Basic Data #/sda4 XP


Current MBR partition table:

# A Start LBA End LBA Type

1 1 409639 ee EFI Protective

2 409640 452805055 af Mac OS X HFS+

3 453067200 535177175 af Mac OS X HFS+

4 537282560 625141759 0b FAT32 (CHS)



*注意每个磁盘的结束数和下一磁盘的开始数不同,说明中间有空闲区.


4.确认分区表一致,装入XP安装盘,重启电脑,可看见rEFIt引导画面,选光盘安装,直至完成.


*XP安装过程会启动几次,rEFIt默认OS X启动,每次要手动选择从win分区启动.

*选择安装盘符C:\BOOTCAMP,FAT32,可以格式化成NTFS.

*因为OS X磁盘工具分区的原因,每个分区间会存在空闲空间,大小不一,原因不明.

*我的ubuntu区和XP BOOTCAMP区之间隔了1.1G,千万不要为了节约,就修改本来分好的C:\大小,去加上这些空闲空间,一定切记不能修改分区表,否则引导出错.


5.插入ubuntu 10.04安装盘,重启电脑,光盘安装.


6.安装过程第4,手动指定分区(高级)”,5步更改”/dev/sda3 Hfs+”;选择用于:ext4日志文件系统;挂载点:/.


*这一步将为ubuntu准备的/sda3格式化成ext4.

*注意系统会提示没有交换空间,忽略它,因为XPMBR分区模式,只支持四个分区,这里分别给EFI,OS X,UbuntuXP,不能在有多余分区,其实普通应用电脑内存已经足够了,不需要装交换空间.


7.8,确认信息,注意有个高级按键,点击,将安装引导程序放在:/dev/sda3,也就是ubuntu的安装区,千万别放到硬盘前端/dev/sda,会破坏EFI引导.


8.安装ubuntu.


9.重启即完成整个安装过程.至此,默认启动电脑,进入rEFIt引导,OS X(sda2),Ubuntu(sda3),XP(sda4)三个选项;如果按住option,进入BOOTCAMP引导,rEFIt(sda2),Windows(sda3)两个选项.


*rEFIt引导ubuntu,会再次进入GNU GRUB Version 1.98-1 ubuntu 5引导模式,这里有所有系统的启动选项,但只可以启动ubuntuXP,实践证明启动OS X失败,但这不重要.

*option引导进入Windows,实质是引导到sda3,也就是ubuntu.



无需重装还原单一Macintosh HD分区

1)确保之前只在OS X下用磁盘工具分区,否则会提示分区表错误,无法变更;

2)/sda3 ext4OS X下无法识别,显示为Untitled,格式化成 Mac OS 扩展(日志式);

3)磁盘工具->整个硬盘->分区->Untitled Mac OS 扩展(日志式)->”-”符号,删除这个分区,Macintosh HD下拉到底,合并所有空闲空间;

4)BOOTCAMP卸载XP,还原单一Macintosh HD.



一些深入探讨:


.MAC分区引导模式

*OS X默认固件EFI(sda1)引导,固执地单一导到OS X所在的Macintosh HD(sda2),未发现修改办法;

*BOOTCAMP可以实现两个引导选项,Macintosh HD(sda2)Windows(sda3),这里的Windows只是一个符号,实际就是非常固执地指向sda3,所以无论sda3装什么都能引导成功,网上多数OS X+Linux双系统法多基于此,反之,多分区下XP可能不在sda3,早期人们分区导致XP启动出错,多缘于此;

*APPLE固执地以为用户只需要单OS X或者OS X+XP,所以APPLE官方程序固执地没加入任何三个以上引导功能,就好像他们只在safari里装google以为用户都不用bingyahoo;

*良好实现三系统引导的程序是rEFIt,其实rEFIt并不会破坏原来EFI固件区(sda1),它是装在sda2,默认EFI启动sda2,rEFIt激活,可选择导向sda2,sda3,sda4等等,所以rEFIt是理想的macbook引导程序,这种理想是针对APPLE设计的固执而言的.



.已经BOOTCAMP安装XP后再装ubuntu的可行性


ubuntu官方help,BOOTCAMP安装XP,Macintosh HD分出空间装ubuntu,那么option键下Windows干脆启动ubuntu,rEFItXP启动蓝屏死机;

*这是XP根目录下boot.ini造成的,第一次安装XPboot.ini默认设置 partition(3)(也就是sda3)启动,分区装ubuntu,变成ubuntu(sda3),XP(sda4),boot.ini不变,当然XP启动会死机啦.


解决方案:

启动ubuntu 10.04,访问XP分区,这就是新版ubuntu的优势,可以读写NTFS.

打开boot.ini,将启动磁盘改为XP所在的号码,EFI(sda1),OS X(sda2),Ubuntu(sda3),XP(sda4)的话,则设置成partition(4),如例:


引用:

原来boot.ini:

[boot loader]

timeout=5

default=multi(0)disk(0)rdisk(0)partition(3)\WINDOWS

[operating systems]

multi(0)disk(0)rdisk(0)partition(3)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect


修改后boot.ini

[boot loader]

timeout=5

default=multi(0)disk(0)rdisk(0)partition(4)\WINDOWS

[operating systems]

multi(0)disk(0)rdisk(0)partition(4)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect



重启正常.


.不使用rEFIt的可行性

其实也是可以的.

安装步骤同上,EFI(sda1),OS X(sda2),Ubuntu(sda3),XP(sda4),但不装rEFIt,option键可选sda2(Macintosh HD)sda3(Windows),进入sda3实质是ubuntu,安装ubuntu时已将ubuntu的引导方式GNU GRUB Version 1.98-1 ubuntu 5装在sda3,它支持ubuntuXP启动.

所以option->Windows,可选择ubuntuXP.


.几个要点

*XP只支持MBP,只能最多有四个主分区,macEFI Macintosh HD就占了俩;

*保证GPT-MBR混合格式的一致性,只能用OS X自带的分区工具;

*格式化不会破坏分区表;

*BOOTCAMP其实就是起分区和引导作用,导向sda2sda3;

*rEFIt不会破坏原有固件(不想破坏mac原生性是很多人不敢装多系统的原因);

*只要GPT-MBR分区表一致,都可以使用磁盘工具还原成单一 Macintosh HD,无需重装OS X.


.未知问题

是不是引导程序安装在哪个区,就只能引导后面的磁盘?

*因为 EFI(sda1),OS X(sda2),Ubuntu(sda3),XP(sda4),sda3装了GNU GRUB,可以识别到ubuntu,OS X 32,OS X 64,XP,但只能成功启动ubuntu(sda3)XP(sda4),启动不了OS X(sda2).

请问这是GNU GRUB本身不支持OS X还是引导程序不支持前面的盘符(sda1,sda2)?


后话:其实EFI引导没那么复杂,上述方法经过我一个周期的测试,从安装到还原再安装成功, 希望能对macbook使用者们有点帮助,也希望能有其他人帮忙完善





1.原生态单一OS X默认分区Macintosh HD,格式 Mac OS 扩展(日志式),也就是Hfs+,BOOTCAMPXP分区,格式FAT32.


*使用BOOTCAMP分区是为了最后能抹去XP还原为单分区Hfs+.



另外使用BOOTCAMPXP分区后,如果安装XP时将XP的分区格式化为NTFS分区后,将来想移除XP能做还原为单分区Hfs+?




spacer.gif








.未知问题

是不是引导程序安装在哪个区,就只能引导后面的磁盘?

*因为 EFI(sda1),OS X(sda2),Ubuntu(sda3),XP(sda4),sda3装了GNU GRUB,可以识别到ubuntu,OS X 32,OS X 64,XP,但只能成功启动ubuntu(sda3)XP(sda4),启动不了OS X(sda2).

请问这是GNU GRUB本身不支持OS X还是引导程序不支持前面的盘符(sda1,sda2)?


话说装好UBUNTU后的GRUB版本是多少?

貌似只有GRUB2才支持引导MacOSEFI

GRUB的版本如果是1.XX 就是GRUB2

GRUB的版本如果是0.XX 就是GRUB

另外目前GRUB2好像不支持只将引装入某一个分区,只能将引导装如主引导中


ubuntu 10.04GRUB1.98,也就是GRUB2,确实能自动识别OS X,不过启动不了(装在sda3).

装在sda3help.教的,目的在于不破坏EFI.https://help./community/MactelSupportTeam/AppleIntelInstallation

引用:

12.Insert Linux CD and reboot holding C

13.On Linux installation, delete the partition you created (Linux) because its HFS, and set it as ext3 and mount /. Don't create swap (I know its going to warn you, but ignore it).

14.At the last step of setup, click advanced because you need to change where GRUB is going to be installed, choose sdaX (which X is your Linux partition).

15. Let it install Ubuntu. 


不过你说的

引用:

另外目前GRUB2好像不支持只将引装入某一个分区,只能将引导装如主引导中


可能从侧面说明了,GRUB2只能引导它所在盘符的后续分区,前面的引导不了.

MACBOOK下我所推测是:

sda1, sda2------------------,sda3---------------------sda4------

[EFI][OSX=============][=====(UBU)===][=====][XP========]

第一引导必须是EFI发起的,它引导启动了sda2rEFIt,rEFIt可以引导启动sda3GRUB2,GRUB2启动ubuntu.








有几个问题想说明一下,分出swap是完全可行的,而且如果是安装Ubuntu的话,最好再分出一个不到1M的分区,这个分区在Ubuntu安装的时候可以选择用来存放模拟的Bios固件,感觉上启动速度会快一点。

Bootcamp可以完全忽略,分区的要点同楼主说的要用Snow Leopard的磁盘工具,或者是在命令行里用Diskutili。想分几个区都可以,但是如果分区数大于等于4,则Xp只能安装在第四个分区,且前面不能有fat32ntfs的分区。我是在sda3上的ext4sda5swap,然后是bios_reserved.

先安装win,后安装ubuntugrub2安装在sda上是可以的,这样可以忽略reEFI。装好Ubuntu后,默认Grub2引导,选择进入win,在bootcamp里面选择在Mac OS X系统重启,即可恢复Snow Leopard的默认引导。

Grub2引导Snow Leopard会死在Still waiting for root device,貌似有高手修改grub.cfg改了偏移量之后引导成功了,具体不知道怎么修改的

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多