多系统引导 —— rEFInd手动安装记录

多系统引导 —— rEFInd手动安装记录,第1张

rEFInd对于UEFI下的多系统引导非常有优势,可以自动的识别所有不同系统下的引导文件,并生成启动条目。

rEFInd有多种安装方式,其中比较方便的是使用自带的脚本命令 refind-install 即可一键安装。也可以使用手动方式一步步安装所需文件,本文采用手动安装方式。

谨以此文作为个人安装笔记方便以后查阅。

注意:nvme0n1p1 是 Win10 的EFI分区,虚拟机系统引导类型:UEFI,磁盘分区表:GPT

rEFInd需要配合 efibootmgr 创建一个引导入口,因此安装时需要一同安装:

EFI 分区下创建 refind 目录,并将 efi 引导文件复制到EFI分区下

然后使用 efibootmgr 在UEFI NVRAM中创建一个引导条目,其中 /dev/sda --part 2 是指EFI系统分区所在的磁盘与分区号(即 refind_x64.efi 引导文件所在的磁盘与分区号)。

将支持其它系统的相关 efi 引导文件复制到EFI系统分区中的rEFInd安装目录下的 drivers_x64 文件夹中

复制 rEFInd 的配置文件、图标文件、字体文件到EFI系统分区中的rEFInd安装目

以root用户运行 mkrlconf 。它会尝试在 /boot 中找到你的内核,并自动生成 refind_linux.conf

运行之后会在 /boot 下自动生成的引导配置文件 refind_linux.conf

注意:

因此我们应该手动地修改引导参数,并且传递相关的参数给内核;

修改后的引导文件 /boot/refind_linux.conf 如下

refind_linux.conf 文件内容解析:

rEFInd的 主题 文件一般都放在 /boot/efi/EFI/refind/themes 目录下

在rEFInd 配置文件 refind.conf 最末尾添加一行包含主题参数文件的命令

附上一张效果图

【参考资料】

win8和ubuntu双系统适用于:

1、电脑主板支持UEFI启动的,希望使用UEFI快速启动,又希望使用多系统的。

2、已经预装了正版WIN8.1的系统的。

大体上讲讲,UEFI+GPT模式的启动原理,BIOS引导MBR分区的流程,BIOS开机自检——读取硬盘MBR分区的主引导记录——控制权交给引导程序——引导程序根据安装时候的配置读取各分区记录——根据各分区已经有的系统情况,列出启动目录——根据用户选择,启动选择的引导文件启动用户选择的系统。

现在说说UEFI的情况:主板上的UEFI模块——硬盘内的第一个fat分区,如果分区内有EFI这个文件目录,就根据EFI文件目录的引导文件加载各类型的驱动和引导文件,启动系统同时完成自检。

ESP分区下面的的文件结构:

1、UEFI环境安装好的win8后保存下来的ESP分区的目录表(ESP分区根目录下面是EFI,这个图示EFI文件夹里面的两个文件目录)。

2、Boot文件夹里面是一个名字叫做bootX64.efi的文件,这个文件UEFI引导的必须文件,而且必须是在ESP根目录Boot文件夹里面。

3、接下来再来看看Microsoft目录下面的文件结构。Mircrosoft目录下面也是一个Boot文件夹,点开这个/mircrosoft/boot文件夹,可以看到如下图所示的文件:

这个目录类容丰富,包含了windows系统引导启动的所有信息,非常重要,文件夹是字体和语言部分,BCD包含了windows引导开始以后的信息(例如安装Hyper-v虚拟机和恢复还原之类的就会更新里面的信息)。bootmgfw.efi 是 Windows默认引导文件

efi\boot\bootx64.efi

efi\microsoft\boot\bootmgfw.efi

对UEFI启动也差不多有个简单的理解了。现在开始回归这篇文章的主题,如何在UEFI环境下安装WIN8.1+Unbuntu。本着对新同学负责的原则,还是从最基本的UEFI安装WIN8.1说起。已经预装好UEFI启动Win8.1的朋友可以直接下跳到Ubuntu的安装。

(一)windows8.1的安装:

首先还是按老办法,先规划好磁盘分区在开始安装系统。首先用PE启动电脑

使用PE自带的DG分区软件对硬盘进行分区 *** 作。

建立或者转换成GPT分区表,DG软件会提示是否建立ESP分区,勾选上,分区大小100~300随意(当然也可以自己建立一个fat或者fat32格式的分区作为启动分区),勾选对齐到4096(4k对齐,固态硬盘都懂得,不是固态也勾选吧)然后确定。

先建立一个NTFS分区安装Windows,接下来按部就班的建立Linux分区以及交换空间

多了两个小黑头,这两个小黑头就是ESP启动分区和MSR保留分区。特别说明的是ESP分区只是一个FAT或者fat32格式分区,可以再分区表的任意位置,名字大小随意(100~3、500)都行,但是它对于UEFI系统的启动必不可少。

国际惯例还是重安装Win8.1开始,依旧选在原版镜像的U盘或者光盘安装。开机按Del,根据主板的不同开始UEFI模式(固态硬盘的同学AHCI记得开启来),保存然后重启。插入U盘或者光盘,开机按F11(或者其他根据主板不同而异)选择前面带UEFI_字样的启动选项。

安装没什么好说的愉快的一路NEXT。直到选择自定义安装。

Win安装程序读出了刚才分好的4个分区,选择30G的刚才规划的要安装Win8的分区,NEXT,又是愉快的等待,然后简单的设置,再次愉快的等待,差不多半小时到40分钟,Windows就算安装好了。

这样就算是在UEFI模式下装好了WIN8.1,打开磁盘管理,可以看到windows只读取了硬盘上的4个分区,并没有读取ESP分区,所以UEFI模式相对于BIOS模式是要安全很多,不会受到诸如以前恐怖的CIH病毒侵害的。

接下来,先不忙安装Ubuntu ,继续用PE启动电脑,来看看这个硬盘的ESP启动分区的情况(当然可以用windows自带的Diskpart命令来查看,并挂载,这里主要是面对新手朋友,所以还是图形见面直观大方)。

接下来,先不忙安装,先来看看的虚拟机,点开虚拟机设置-》固件,

可以看到UEFI模式安装好的win8.1在安装过程中自动的为UEFI控制添加了从文件Bootmgrfw.efi 启动。这个反映在实体机器上就是,在UEFI模式下安装好WIN8.1的时候,按住启动选择,就只有Windows Boot Manager和插入的其他启动设备选项了。如果没有其他设备,UEFI会快速的找到Bootmgrfw.efi启动windows。不会再出现原来按F11时候的选择,什么从光驱启动,从硬盘启动的选项了。更不会再找到Bootmgrfw.efi启动windows的情况下,继续去找Grub或者是其他什么传统启动助手软件,然后再通过软件,根据硬盘分区的启动信息,启动多系统选择。(另外,还需要说明的一点事,在GPT分区表上是不存在激活的当前分区这种说法的,因为UEFI启动系统只是找第一个FAT(fat32)分区,在分区中找到EFI文件夹和里面的启动信息就停止了,如果没找到继续找第二个FAT分区,当前设备没有就换下一个设备,以此类推)

说了这么多大概很多在UEFI模式下安装了Windows再安装Ubuntu系统的朋友会多少明白一点,为什么装好双系统,第一次进入了Grub,可以看到多重引导,但是一旦选择进入了Windows8.1,接下来,再重新启动就会直接进入Windows,不会再去启动Grub了吧。

再一次用PE启动电脑,现在读取到了ESP启动分区,即标示的F盘(这个盘符是PE启动系统随机分配的)

打开这个F盘,看看里面的结构式是不是

/efi/boot/bootX64.efi

/efi/mircosoft/boot/ bootmgfw.efi

这样的文件结构吧。

这样就算不仅仅在UEFI模式下安装好了Win8.1,并且还大体明白了,Win8.1在UEFI模式下是怎么启动电脑的。接下来就是在UEFI模式安装Ubuntu了。

(二)UEFI模式安装Ubuntu

Unbuntu14.04的发行版ISO,已经支持UEFI模式安装了,所以,还是选择最简单的办法就是写到U盘或者是光盘安装,启动的时候照例选择有UEFI_前缀字样的启动项。因为安装过程跟上一篇BIOS+MBR的安装差不多,相同的地方就不一一详细介绍了,只是针对不同的地方。

开始一路NEXT,到选择安装的时候仍然选择其他选项(这个很重要,建议以后折腾电脑的时候,均采取自定义,这样才明白程序会对自己的电脑做些什么,做了些什么)。

接下来出现在上一篇安装里面说得比较详细的自定义安装界面,分区安排还是跟BIOS安装的时候差不多,只是多了两个分区而已(编号方法仍旧是/dev/sda12345)

值得注意的是,现在在选安装启动器的设备位置时,选择/dev/sda1 不要遗漏数字1,这样就是把Ubuntu的EFI启动信息安装到ESP启动分区上了,而且,Ubuntu很聪明小心谨慎,只是添加,不会去动微软大爷的原来的。

接下来又是愉快的NEXT,NEXT。。。大概20~30分钟的愉快等待,机器重启,进入熟悉的Grub界面,UEFI的双系统安装就算完成了!

当然到这里大多数的朋友都会遇到,用Grub启动到Ubuntu,愉快的玩耍了几下,然后再回到Windows再次愉快的LOL了两把或是其他神马,然后又想起了,去Ubuntu看看,结果再次启动电脑的时候,直接就近Windows了,微软大爷就是这么霸气。等下再来说怎么解决这个问题,现在还在等虚拟机装好Ubuntu。

同样,先不忙配置双启动,先再来看看装好双系统的的情况下的ESP启动分区的情况,启动装好的Ubuntu,打开文件管理器,点击计算机,进入/BOOT目录(ESP启动分区的EFI文件夹是默认挂载到这个目录的)打开EFI文件夹

看到没有,ESP分区根目录下面是不是比刚才装好WIN8.1的时候多了一个Ubuntu文件夹。

(三)配置refind完成UEFI下的双系统启动

大概是由于微软大爷的霸气,UEFI双系统做好以后,进入了Win8.1就再也无法看见,引导Grub的界面了。好了现在接下来说说如何解决UEFI模式下,可以愉快的启动切换Win或者Ubuntu,可以采取用其他管理引导的方式,例如,Clover和refind,因为Clover是在OSX下配置引导安装的,就选择refind(这个可以到官网直接下载,目前的最新版本是0.83版实际上刚才有吧友在回复中提到了,可以使用refind)。那么就来说说怎么使用refind配置双系统吧。首先下载refind包,解压后得到一个文件夹。

现在,需要用PE启动电脑(当然也可以直接使用Diskpart挂载ESP分区,为了方便新同学,直观的了解就直接使用PE了)打开安装好的双硬盘的ESP分区,首先完整备份EFI文件夹及文件夹里面的所有内容到一个认为安全的地方然后打开EFI文件夹,现在看到的结构内容是

/efi/boot

/efi/Microsoft

/efi/Unbuntu

现在,打开下载并解压好的refind-bin-0.83文件夹,选中其中的叫refind的文件夹,全部复制到ESP分区的根目录下面,下面是复制好的,ESP文件结构,如下图所示:

/efi/boot

/efi/Microsoft

/efi/Unbuntu

/efi/refind

现在,可以开始配置refind了,首先选择,Microsoft文件夹,随便改个名字,叫做Win81,然后把refind文件夹改名字为Microsoft,改好后的文件结构为:

/efi/boot

/efi/Microsoft

/efi/Unbuntu

/efi/Win81

现在进入win81文件夹,进入里面的Boot目录,全选所有的文件,拷贝到Win81中来,然后再删除掉Win81中的这个空的Boot目录。现在Win81的目录结构大体上就是

/efi/Win81/bootmgfw.efi(等等文件和语言文件夹)。

然后在进入那个假的Microsoft文件夹(实际上是refind目录更改而来的),新建一个Boot文件夹,剪切原来该文件中的类容,到新建的这个Boot目录中来。完成后这个伪装的Mircosoft文件夹的结构为:

/efi/Mircosoft/boot/refind_x64.efi等文件及一些文件夹

选中其中的refind_x64.efi,文件更改名字为bootmgfw.efi,得到这里为止,大体工作就完成了,剩下来的就是改变配置菜单。这个等下再说,为了确保不出错,现在来看看修改好的ESP分区里面的文件结构:

/efi/Boot

/efi/Microsoft/boot

/efi/Win81

/efi/Ubuntu

确保文件结构如上面所示,并且在假Microsoft文件夹的Boot目录下面的refind_x64.efi已经更名为bootmgfw.efi。

现在剩下最后一步工作写refind的配置文件了,实际上下载的软件包里面,已经有写好的模板了(即名为refind.conf-sample),只需要更改其中的类容就可以安全的愉快的启动双系统了。

废话不多说,进入/efi/Mircosoft/bott目录,打开其中的refind.conf-sample文件,然后另存为refind.conf 。(打开方式可以选择写字板,这样可以看到清晰的分行和格式)

这是一个脚本文件,“# ”后的类容表示注释,仔细浏览这个文件找到下面这段:

这是一个refind为写好的定义的启动菜单脚本,启动菜单叫Ubuntu ,使用的启动文件为/efi/ubuntu/Grubx64.efi,另外加载的图标是icon/efi/refind/icons/os_linux.png

现在按照菜单指示的路径打开,发现Grubx64.efi,确实存在于的目录里面保持不变,

但是图标路径发生了变化,这个原来写好的refind目录已经变为Microsoft/boot了,所以更改下这个菜单图标路径为 /efi/Microsoft/boot/icons/os_Ubuntu.png (其实icons目录下面已经有了Linux各种发行版的图标了,所以直接改成了Ubuntu的)

改好的Ubuntu菜单脚本:

menuentry Ubuntu {

loader/EFI/ubuntu/grubx64.efi

icon/EFI/Microsoft/Boot/icons/os_ubuntu.png

disabled

}

然后再继续找到下面字段,也就是WINDOWS的菜单脚本

这段代码写的win7 ,可以更改为Win8.1,按照自己的ESP分区的目录结构,修改好windows菜单脚本,修改好的菜单脚本如下:

menuentry "Windows 8.1" {

loader\EFI\Win81\bootmgfw.efi

icon/EFI/Microsoft/Boot/icons/os_win.png ///这里添加了图标路径

disabled

}

这样就弄好了双系统的引导菜单,但是refind的功能远不止于此,实际模板提供了包括OSX在内的菜单引导脚本,由于电脑上只有Win8.1和Ubuntu,那么就把其他模板禁用了以保证启动菜单清清爽爽(直接在不需要的菜单引导脚本前面加上“#”就可以了)

好了,保存退出。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11377489.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存