基于UEFI引导的多操作系统和谐共存(借助rEFInd)

本文前置条件

电脑使用UEFI引导
掌握BIOS设置方法
掌握单系统安装方法

Legacy的局限与UEFI的特性

Legacy+MBR

Legacy俗称传统BIOS引导,原理是BIOS开机去搜索磁盘头部的几个固定扇区(这些扇区叫做MBR——主引导记录)。
一块磁盘只允许有一块MBR,因此,如果有多个操作系统,只能有一个系统被BIOS直接引导,其他的系统都必须由第一个系统的引导工具转交引导的控制权。

举例,如下图:
先装Windows,后装Ubuntu,此时主引导是Ubuntu的GRUB。
BIOS读取MBR发现引导程序是GRUB,随即加载。
GRUB可以直接引导Ubuntu启动。
但因为Grub发现了磁盘上还有Windows系统,所以也可以把引导控制权交给Windows的BootLoader程序。

基于UEFI引导的多操作系统和谐共存(借助rEFInd)_第1张图片

这样就有两个局限:
一是,主引导必须能识别其他系统的引导工具,否则无法移交引导控制权(比如Windows XP的Bootloader无法识别Windows11)。
二是,由于各个系统的引导程序相互耦合,一旦MBR挂掉,所有的系统都不能启动了。

UEFI的特性

UEFI作为新的引导方式,已经全面普及,并取代Legacy。

UEFI的引导方式比较简单粗暴。

与MBR最大的区别,就是引导文件不再写到磁盘头部,而是以文件的形式放到一个特殊的磁盘分区中,这个分区就称为EFI分区。

当系统启动时,BIOS会扫描所有磁盘中所有的EFI分区,形成启动项列表,然后把引导控制权交给列表中的第一个EFI引导。

这就为多系统和谐共存提供了理论基础——换言之,最简单粗暴的办法,就是使用多个EFI分区,让每个系统的引导独占一个EFI分区即可。这样只要你的磁盘够大,就可以安装无线多个系统。

基于UEFI引导的多操作系统和谐共存(借助rEFInd)_第2张图片

基于以下原理,就可以开始操作了:

系统安装

由于读者掌握基本操作,本文只强调关键之处。

安装原则①:每个系统独占一个EFI

这是为了最终使用诸如rEFInd这样的第三方引导工具,来实现不按F12切换系统,为了让rEFInd能正确识别启动项。

安装原则②:Windows使用PE注入或优先安装

当有多个EFI分区时,Windows自带的安装器会强制写入第一个EFI分区。
如果已经有了其他系统的引导,Windows会顶掉其他系统的优先级,并且可能使rEFInd识别错误。
解决这个问题有两种思路:

一是:Windows优先安装,然后安装其他系统,并把引导写入到后面的EFI分区。
二是:不使用ISO自带的安装器,而使用PE注入系统的方法,这样可以选择把引导写入到哪个EFI分区。

安装要点③:Linux自定义安装,看准引导安装位置

由于发行版不同,各种Linux的LiveCD界面不同。

在系统具体部署时,避免使用自动双系统共存,而要手动分区。

为Linux创建单独的EFI,并把引导写入到Linux的EFI。

有了以上两点,目前就可以实现无限多个Windows和Linux共存了。

安装要点④:如装黑苹果,第一个EFI需大于200M

虽然黑苹果是用Clover或OpenCore引导,但在抹盘时,仍然会往第一个EFI写入一些引导数据(这些数据并没有用)。

因此,MacOS有个要求就是,如果EFI太小,会导致抹盘失败,所以要确保第一个EFI分区足够大。

添加第三方引导工具解决选启动项问题

如果前面安装顺利,到目前已经实现多系统和谐共存了。
并且开机时通过快捷键就可以选择启动哪个系统。

但是如果经常启动不同的系统,会导致每次开机都要按F12,十分麻烦。

接下来就是解决这个问题。

有一种第三方启动器,如rEFInd,可以搜索硬盘上的所有引导,并由用户选择启动哪个。

基于UEFI引导的多操作系统和谐共存(借助rEFInd)_第3张图片
我们只需要把rEFInd设置为第一启动项即可。

总结

到目前为止,已经实现不用快捷键就能切换多系统了,
并且这种方法理论上可以安装无限多个系统,供测试使用。

新手上路,如有想法欢迎交流,如有错误欢迎轻喷。

你可能感兴趣的:(系统安装)