基于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)
文章图片

这样就有两个局限:
一是,主引导必须能识别其他系统的引导工具,否则无法移交引导控制权(比如Windows XP的Bootloader无法识别Windows11)。
二是,由于各个系统的引导程序相互耦合,一旦MBR挂掉,所有的系统都不能启动了。
UEFI的特性 UEFI作为新的引导方式,已经全面普及,并取代Legacy。
UEFI的引导方式比较简单粗暴。
与MBR最大的区别,就是引导文件不再写到磁盘头部,而是以文件的形式放到一个特殊的磁盘分区中,这个分区就称为EFI分区。
当系统启动时,BIOS会扫描所有磁盘中所有的EFI分区,形成启动项列表,然后把引导控制权交给列表中的第一个EFI引导。
这就为多系统和谐共存提供了理论基础——换言之,最简单粗暴的办法,就是使用多个EFI分区,让每个系统的引导独占一个EFI分区即可。这样只要你的磁盘够大,就可以安装无线多个系统。
基于UEFI引导的多操作系统和谐共存(借助rEFInd)
文章图片

基于以下原理,就可以开始操作了:
系统安装 由于读者掌握基本操作,本文只强调关键之处。
安装原则①:每个系统独占一个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)
文章图片

我们只需要把rEFInd设置为第一启动项即可。
总结 【基于UEFI引导的多操作系统和谐共存(借助rEFInd)】到目前为止,已经实现不用快捷键就能切换多系统了,
并且这种方法理论上可以安装无限多个系统,供测试使用。

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

    推荐阅读