基于15-rMBP和ChipFancier磁盘的三系统构建方案

/*本文涉及多系统多磁盘多分区操作,操作失误将可能造成包括但不限于数据丢失、系统瘫痪、程序崩溃、磁盘损坏、保修失效(或需付费维修)等后果。请慎重操作。*/
/*Ubuntu采用GPL协议发布,使用即修改该项目的代码请遵守GPL协议。*/
/*Windows及Windows to Go为Microsoft公司的(注册)商标,本文中所提到的所有Windows系统仅供技术学习及试用,请尊重版权,并请自觉于24小时内删除相关内容。*/
/*对Macintosh HD分区的操作可能会受到Apple公司保修政策的限制,请慎重操作。*/
/*对磁盘的操作可能会导致数据丢失,建议备份重要数据,病情谨慎操作。*/
/*本构件方案尚属于beta阶段,仅能确定找到三个系统的引导路径。三系统间的扼制关系、挟制关系及系统稳定性等尚不能保障。不建议在您的工作计算机(主力计算机)上进行操作。*/
/*本帖属于萝卜头IT论坛的深度技术探究,而非面向全网发布的成熟技术档案。因试用本方案造成的包括但不限于磁盘、数据、操作系统、作业资料等丢失和受损,笔者不负责任。*/

前些日子,站长nkc3g4发布了Ubuntu to Go和Ubuntu+Windows双系统to Go的教程;因为工作中某些统计分析软件没有Mac OS X兼容的版本(CrossOver和Wine软件是不能兼容和调用包含多个加载库的软件包的,会导致各种“dll丢失”、“软件在此兼容性设置下无法运行”等错误),同时又需要Linux环境对部分软件(比如R语言)回报结果进行二次验证;双系统to Go就成为一个很好的选择;再加上手头有一个CHIPFANCIER磁盘,一个识别为本地磁盘的USB-SSD。就开始了一系列折腾。

首先就我折腾的过程来说说。

为了防止混淆,Mac系统表述为Mac OS X,Mac电脑表述为Macintosh,Mac系统所在的内置“固态硬盘”表述为Macintosh HD。
已有的Windows to Go是建立在SK6221本地磁盘上的Windows to Go,传统模式,UEFI+GPT,系统版本为cn_windows_8.1_professional_vl_with_update_x64_dvd_4050293.iso。
已有的WinPE是建立在Corsair Survivor 32GB上的杏雨梨云USB维护系统。

01.在Mac OS X里用Ubuntu的官方工具做一个可启动U盘,所用的磁盘为Sandisk CZ73,为一个不可量产的可移动磁盘,作为Ubuntu to Go的安装磁盘;在制作过程中发现:如果磁盘格式化为NTFS格式,则Macintosh开机按option启动找不到该U盘的引导选项;如果把磁盘格式化为FAT32格式,则Macintosh开机按option启动可以找到一个EFI Boot选项;上述结果不受磁盘分区表的影响,GPT分区表和MBR分区表结果不变。
结论为:Macintosh仅可以识别FAT32或FAT16(ESP分区的本质是FAT16格式分区)格式的引导分区。

02.Macintosh开机按option从Ubuntu的安装磁盘启动,选择EFI Boot启动后即插入ChipFancier磁盘,执行Ubuntu的安装过程,按照缺省提示建立相应的ext4和swap分区,两个分区占据整个ChipFancier磁盘,即仅安装Ubuntu to Go,Ubuntu安装入ext4分区,挂载为“/”。安装完成后自动重启,重启开机过程不进行人工干预可自动进入Ubuntu系统,即基于15-rMBP的Ubuntu to Go成功。完整关机后,再次冷启动开机,按option仅能找到Macintosh HD启动选项;但此时只要冷开机前插入了包含Ubuntu to Go的ChipFancier磁盘,则开机自动进入Ubuntu系统。简单的说,Ubuntu成为了默认引导选项,进入Mac OS X需要按option选择或移除Ubuntu磁盘。进入WinPE或者Windows to Go使用DiskGenius查看磁盘,可以在Macintosh HD的ESP分区找到Ubuntu的引导文件夹,即在ESP分区的EFI文件夹下有Apple和Ubuntu两个子文件夹。
结论为:单纯的Ubuntu to Go会将自身的引导文件写入Macintosh HD的ESP分区。且Ubuntu的引导顺序优先于Mac OS X。(由Ubuntu采用grub引导可以推论而言:grub的引导级别高于Mac OS X的UEFI。)

03.在清空后的ChipFancier磁盘中建立完整Windows to Go,传统模式,勾选UEFI+GPT,自动勾选重新分区,系统版本为cn_windows_10_enterprise_version_1511_x64_dvd_7224788.iso。(Windows 10 Version 1511即可,带有季度更新的也可以采用。)部署成功后在Macintosh上进行系统释放。然后在WinPE或Windows to Go下对磁盘进行如下操作,调整(缩小)系统主要文件所在C盘的大小,建立若干个(记为A个)大小在300MB至800MB的FAT16分区(注意是单纯的FAT16分区,分配盘符成为普通分区),将ESP分区的EFI文件夹提取出来,依次复制到上述的若干小容量FAT16分区中。Macintosh开机按option启动,可以找到A+1个EFI Boot选项。即无论是否指向一个确切存在的操作系统,任意一套完整的FAT16分区下的EFI文件夹均可以被Macintosh识别为EFI Boot。
结论为:Macintosh可以识别任何一个FAT16分区下的EFI引导,无论该FAT16分区是否被转换为ESP分区,也不论该FAT16分区是在磁盘的前端还是中间。

基于以上的结论,我提出如下的“基于15-rMBP和ChipFancier磁盘的三系统构建方案”。

/*此方案粗测可以找到三个系统,但是三系统之间是否存在相互的影响和挟制及系统稳定性尚未进行试验和探究。所以目前仍然属于beta模式,请谨慎尝试,重要文件请及时备份。*/
/*因试用本方案造成的包括但不限于磁盘、数据、操作系统、作业资料等丢失和受损,笔者不负责任。*/

00.操作之前请完整备份Macintosh HD的ESP分区,一旦操作失误导致引导被删除,恢复Mac OS X将是一个非常复杂的工程。
01.在ChipFancier中建立Windows to Go,VHD模式,勾选UEFI+GPT,自动勾选重新分区,系统版本为Windows 10 Enterprise Version 1511以上或Windows 8.1 with Update以上。
02.在WInPE或Windows to Go中用DiskGenius提取ESP分区中的EFI文件夹及主分区中的vhd文件,复制备用。
03.在Mac OS X里用Ubuntu的官方工具做一个可启动U盘,作为Ubuntu to Go的安装磁盘,该磁盘在制作前需要格式化为FAT格式(FAT32和FAT16均可)。
04.Macintosh开机按option从Ubuntu的安装磁盘启动,选择EFI Boot启动后即插入ChipFancier磁盘,执行Ubuntu的安装过程,依据个人需要建立ext4分区,挂在为“/”,根据内存大小建立swap分区,Ubuntu装入ext4分区,安装安装提示完成Ubuntu to Go的安装。
05.在WinPE或Windows to Go中用DiskGenius在ChipFancier磁盘建立大小为350MB的FAT16分区,将02步骤中的EFI文件夹复制进该分区,剩余空间建立NTFS分区,将02步骤中得到的vhd文件复制进该分区,使用bootice验证FAT16格式小分区中的BCD文件。
/*如果反复失败,此处第05步骤可以更改为:在WinPE或Windows to Go中用DiskGenius在ChipFancier磁盘建立大小为350MB的ESP分区,将02步骤中的EFI文件夹复制进该分区,剩余空间建立NTFS分区,将02步骤中得到的vhd文件复制进该分区,使用BOOTICE验证FAT16格式小分区中的BCD文件。本操作依据为:Macintosh中Mac OS X的版本、Boot Camp Assist的版本、Macintosh中EFI固件的版本等Apple相关因素会影响FAT16分区的引导识别。*/
/*如果执行上述步骤仍然失败,则在ESP分区前先建立一个30MB的NTFS分区,再执行上述步骤,之后删除该30MB分区,即在Ubuntu to Go的swap分区和Windows to Go的ESP分区之间隔开30MB大小的空白区。本操作依据为:安装Windows的普通PC进行Ubuntu双系统安装时,Ubuntu安装程序会保留一个30MB的空白区域以防止Linux分区和Microsoft分区发生冲突*/
06.Macintosh开机按option从EFI Boot启动,完成对Windows to Go的系统释放。

结果:Macintosh HD的ESP分区有Mac OS X和Ubuntu双系统的引导文件,ChipFancier中有Windows系统的引导文件。
01.Macintosh不插ChipFancier磁盘开机进入Mac OS X系统。
02.Macintosh插入ChipFancier磁盘开机不进行人工干预进入Ubuntu to Go系统。
03.Macintosh插入ChipFancier磁盘开机按option选择EFI Boot引导Windows to Go系统。

/*注释行里写的可能写得有点吓人,因为在白盘下重装Mac OS X的操作较PC下的Windows重装极为复杂,同时多系统操作本身操作风险大,再次提醒,请谨慎操作。*/
/*本文为进阶操作,需要熟练的Windows to Go操作、Ubuntu to Go操作、DiskGenius磁盘操作技巧。*/