注意:本文中的有些截图时较早前截取的,和最新的截图中的分区有些不同,这是因为之前装cloudready时导致整个磁盘被格式化,从头开始重新安装了所有的系统,但不影响描述原理
先上一张最终的效果图
在我的另一篇文章中 Win10+Ubuntu+Deepin+macOS+PhoenixOS+FydeOS+centOS+openSUSE+Kylin+ChromeOS+RedFlag等多系统安装(包含rEFind引导) ,装完几个操作系统和rEFInd后,默认的rEFInd引导菜单显得很杂乱和冗余,这是因为rEFInd会自动扫描磁盘中的所有linux内核以及ESP分区中EFI目录中的相关引导文件
问题一:下图为rEFInd默认安装后出现的引导菜单:第一第二个还算正常;第三个图标表示未知的操作系统,可能就进不去,也可能进去就是个无效的页面;第四个是linux图标,但是进去很可能是grub引导界面,还需要再选择一次才能进入操作系统,而且通过第四个图标进去的操作系统其实就是第二个图标所指示的Ubuntu,明显有点冗余。
如果你的磁盘上有多个操作系统内核,rEFInd也会把所有的内核列出来(比如我的ubuntu所在的磁盘分区就有两个linux内核,vmlinuz-5.8.0-48-generic和vmlinuz-5.8.0-25-generic),会显得引导菜单有很多个操作系统,这不是我们所期望的
问题二:通过选择某个OS子菜单后进入的其实是grub引导界面,还得再选择一次,才能进入操作系统,导致进入某个OS系统过慢
怎样解决上述这两个问题呢?我先上一段配置,然后逐条分析配置项
(代码段中的uuid可能和其他小节描述的uuid有所不同,这是因为之前装cloudready时导致整个磁盘被格式化,从头开始重新安装了所有的系统)
#
# refind.conf
# Configuration file for the rEFInd boot menu
#
timeout 60
dont_scan_dirs /EFI/Microsoft/Boot,/EFI/Boot,/EFI/ubuntu,/EFI/UOS,/EFI/PhoenixOS,/EFI/PhoenixOS/boot,/EFI/fydeos,/EFI/CLOVER,/EFI/kylin,/EFI/opensuse,/EFI/centos,/EFI/redflag,/EFI/RedFlag_Linux_Desktop_V11.0
#dont_scan_files
scan_all_linux_kernels false
#fold_linux_kernels false
default_selection 1
include themes/rEFInd-minimal/theme.conf
menuentry "Windows" {
icon /EFI/refind/themes/rEFInd-minimal/icons/os_win.png
loader /EFI/Microsoft/Boot/bootmgfw.efi
}
menuentry "CentOS" {
icon /EFI/refind/themes/rEFInd-minimal/icons/os_centos.png
volume 9CC38149-EA82-4584-AAB6-734C4010A065
loader /vmlinuz-4.18.0-240.e18.x86_64
initrd /initramfs-4.18.0-240.e18.x86_64.img
options "root=UUID=f9394421-19e2-447e-9928-9f9cc6a6eef8 ro crashkernel=auto resume=UUID=4f60d357-9dfb-4557-be49-552bf26fb8b9 rhgb quiet "
disabled
}
menuentry "CentOS(grub)" {
icon /EFI/refind/themes/rEFInd-minimal/icons/os_centos.png
loader /EFI/centos/grubx64.efi
}
menuentry "Ubuntu" {
icon /EFI/refind/themes/rEFInd-minimal/icons/os_ubuntu.png
volume 4055E8D2-7086-4102-9E21-146197698D87
loader /vmlinuz-5.8.0-25-generic
initrd /initrd.img-5.8.0-25-generic
options "root=UUID=caef5804-37c2-4717-87e8-2e20de8cf6ae ro quiet splash"
}
menuentry "Ubuntu(grub)" {
icon /EFI/refind/themes/rEFInd-minimal/icons/os_ubuntu.png
loader /EFI/ubuntu/grubx64.efi
disabled
}
menuentry "OpenSUSE" {
icon /EFI/refind/themes/rEFInd-minimal/icons/os_opensuse.png
volume 77549760-46AB-4047-9B2A-0D9E96CA70AB
loader /vmlinuz-5.3.18-lp152.72-default
initrd /initrd-5.3.18-lp152.72-default
options "root=UUID=d5031186-2bf2-4a4c-ae1c-114c9a949c34 splash=silent resume=/dev/disk/by-id/nvme-Samsung_SSD_980_1TB_S649NJ0R350885D-part10 mitigations=auto quiet"
}
menuentry "OpenSUSE(grub)" {
icon /EFI/refind/themes/rEFInd-minimal/icons/os_opensuse.png
loader /EFI/opensuse/grubx64.efi
disabled
}
menuentry "Deepin" {
icon /EFI/refind/themes/rEFInd-minimal/icons/os_deepin.png
volume 406177AE-77BA-4D4B-9D17-7EE140BBCDCC
loader /vmlinuz-5.10.18-amd64-desktop
initrd /initrd.img-5.10.18-amd64-desktop
options "root=UUID=7daaea21-9067-4022-ab67-7b286c75dbd0 ro splash quiet"
}
menuentry "Deepin(grub)" {
icon /EFI/refind/themes/rEFInd-minimal/icons/os_deepin.png
loader /EFI/UOS/grubx64.efi
disabled
}
menuentry "Kylin" {
icon /EFI/refind/themes/rEFInd-minimal/icons/os_kylin.png
volume 67C7AE31-40CB-45A4-8574-EA8803787639
loader /vmlinuz-5.10.0-3-generic
initrd /initrd.img-5.10.0-3-generic
options "root=UUID=185f74e8-d18d-4903-8243-302c28793c65 ro quiet splash loglevel=0 resume=UUID=5b25f24e-b655-471f-88f1-64dd6bb6f966 audit=0 security=none"
}
menuentry "Kylin(grub)" {
icon /EFI/refind/themes/rEFInd-minimal/icons/os_kylin.png
loader /EFI/kylin/grubx64.efi
disabled
}
menuentry "RedFlag" {
icon /EFI/refind/themes/rEFInd-minimal/icons/os_redflag.png
volume 5604D06A-AE60-484F-BA14-ECCB3097E5F5
loader /vmlinuz-4.19.0-16-amd64
initrd /initrd.img-4.19.0-16-amd64
options "root=UUID=a33c3abb-986d-417c-8ef5-fa864a8fb00e ro quiet splash resume=UUID=49901fc4-538a-46fb-8c25-bb3c05f3917d"
}
menuentry "RedFlag(grub)" {
icon /EFI/refind/themes/rEFInd-minimal/icons/os_redflag.png
loader /EFI/redflag/grubx64.efi
disabled
}
menuentry "FydeOS" {
icon /EFI/refind/themes/rEFInd-minimal/icons/os_fydeos.png
volume FEC7D7FF-2B69-474B-89A1-D2CA9F80CC52
loader /boot/vmlinuz-13729.22.12.13
initrd /boot/dual_boot_ramfs.cpio.xz
options "init=/sbin/init root=/dev/nvme0n1p15 boot=local rootwait noresume noswap ro loglevel=7 console= i915.modeset=1 cros_efi cros_debug fydeos_dualboot"
}
menuentry "FydeOS(grub)" {
icon /EFI/refind/themes/rEFInd-minimal/icons/os_fydeos.png
loader /EFI/fydeos/bootx64.efi
disabled
}
menuentry "ChromeOS" {
icon /EFI/refind/themes/rEFInd-minimal/icons/os_chrome.png
volume 73108A43-715C-AD4E-BB15-A72A6CF8213B
loader /syslinux/vmlinuz.A
options "init=/sbin/init boot=local rootwait ro noresume noswap loglevel=7 noinitrd console= i915.modeset=1 cros_efi cros_debug root=PARTUUID=328F6BDB-CE13-F846-8EB0-A5A6578575AD"
disabled
}
menuentry "ChromeOS(grub)" {
icon /EFI/refind/themes/rEFInd-minimal/icons/os_chrome.png
volume 73108A43-715C-AD4E-BB15-A72A6CF8213B
loader /efi/boot/bootx64.efi
}
menuentry "PhoenixOS" {
icon /EFI/refind/themes/rEFInd-minimal/icons/os_phoenix.png
loader /EFI/PhoenixOS/kernel
initrd /EFI/PhoenixOS/initrd.img
options " quiet root=/dev/ram0 androidboot.hardware=android_x86 SRC=/PhoenixOS vga=788 i8042.nokbd=1"
}
menuentry "PhoenixOS(grub)" {
icon /EFI/refind/themes/rEFInd-minimal/icons/os_phoenix.png
loader /EFI/PhoenixOS/boot/bootx64.efi
disabled
}
menuentry "OSX" {
icon /EFI/refind/themes/rEFInd-minimal/icons/os_mac.png
loader /EFI/CLOVER/CLOVERX64.efi
}
menuentry "Linux" {
icon /EFI/refind/themes/rEFInd-minimal/icons/os_linux.png
loader /EFI/Boot/grubx64.efi
}
关于refind.conf的配置项可以参见官网的配置项介绍 http://www.rodsbooks.com/refind/configfile.html
如果觉得英文看起来有些费劲,可以参考论坛里这篇文章,还算详细 refind 0.10.3 配置文件refind.conf简单分析_Bleachswh的博客-CSDN博客_refind.confi
timeout ,我这里设置的是60,// 设置默认等待时间// 0 : 无限期等待 // -1: 立即进入默认的系统//大于0的数值表示等待的秒数
dont_scan_dirs rEFInd不去扫描的目录,我设置为 /EFI/Microsoft/Boot,/EFI/Boot,/EFI/ubuntu,/EFI/UOS,/EFI/PhoenixOS,/EFI/PhoenixOS/boot,/EFI/fydeos,/EFI/CLOVER 这几个,因为我的ESP分区是下图这样的,另外说一句,linux系统下ESP分区是挂载在/boot/efi/目录下的。
这里之所以设置这个是因为稍后我要自己配置menuentry
#dont_scan_files rEFInd不去扫描的文件,设置上面的目录后就不需要设置特定的文件了,所以这里注释了
scan_all_linux_kernels rEFInd是否去扫描所有的linux内核,我这里设置为false,同样是因为稍后我要自己配置menuentry,不设置时默认为true,比如我的ubuntu所在的磁盘分区就有两个linux内核,vmlinuz-5.8.0-48-generic和vmlinuz-5.8.0-25-generic,那么菜单就会显示两个linux子菜单
#fold_linux_kernels 是否去折叠扫描到的linux内核,比如我的ubuntu所在的磁盘分区就有两个linux内核,vmlinuz-5.8.0-48-generic和vmlinuz-5.8.0-25-generic,不折叠时,菜单就会显示两个linux子菜单,折叠后就会只显示一个最新的,这里只是为了探索这个配置项的含义,并没有去使用,所以注释了
default_selection 1 默认哪个OS子菜单处于选中状态,这里设置为1,对应于我的配置就是win10系统
include themes/rEFInd-minimal/theme.conf 导入相关的主题配置theme.conf,其实theme.conf里面的配置项完全可以在refind.conf里面配置,关于theme.conf里面的配置项不再详细说明,还是比较简单的,参见上文分享的两篇链接
# Minimal refind theme
# Hide user interface elements for personal preference or to increase
# security:
# banner - the rEFInd title banner (built-in or loaded via "banner")
# label - boot option text label in the menu
# singleuser - remove the submenu options to boot Mac OS X in single-user
# or verbose modes; affects ONLY MacOS X
# safemode - remove the submenu option to boot Mac OS X in "safe mode"
# hwtest - the submenu option to run Apple's hardware test
# arrows - scroll arrows on the OS selection tag line
# hints - brief command summary in the menu
# editor - the options editor (+, F2, or Insert on boot options menu)
# all - all of the above
# Default is none of these (all elements active)
#
hideui singleuser,hints,arrows,badges
# Set the name of a subdirectory in which icons are stored. Icons must
# have the same names they have in the standard directory. The directory
# name is specified relative to the main rEFInd binary's directory. If
# an icon can't be found in the specified directory, an attempt is made
# to load it from the default directory; thus, you can replace just some
# icons in your own directory and rely on the default for others.
# Default is "icons".
#
icons_dir themes/rEFInd-minimal/icons
# Use a custom title banner instead of the rEFInd icon and name. The file
# path is relative to the directory where refind.efi is located. The color
# in the top left corner of the image is used as the background color
# for the menu screens. Currently uncompressed BMP images with color
# depths of 24, 8, 4 or 1 bits are supported, as well as PNG images.
#
banner themes/rEFInd-minimal/background.png
# Tells rEFInd whether to display banner images pixel-for-pixel (noscale)
# or to scale banner images to fill the screen (fillscreen). The former is
# the default.
#
banner_scale fillscreen
# Custom images for the selection background. There is a big one (144 x 144)
# for the OS icons, and a small one (64 x 64) for the function icons in the
# second row. If only a small image is given, that one is also used for
# the big icons by stretching it in the middle. If only a big one is given,
# the built-in default will be used for the small icons.
#
# Like the banner option above, these options take a filename of an
# uncompressed BMP image file with a color depth of 24, 8, 4, or 1 bits,
# or a PNG image. The PNG format is required if you need transparency
# support (to let you "see through" to a full-screen banner).
#
selection_big themes/rEFInd-minimal/selection_big.png
selection_small themes/rEFInd-minimal/selection_small.png
# Which non-bootloader tools to show on the tools line, and in what
# order to display them:
# shell - the EFI shell (requires external program; see rEFInd
# documentation for details)
# gptsync - the (dangerous) gptsync.efi utility (requires external
# program; see rEFInd documentation for details)
# apple_recovery - boots the Apple Recovery HD partition, if present
# mok_tool - makes available the Machine Owner Key (MOK) maintenance
# tool, MokManager.efi, used on Secure Boot systems
# about - an "about this program" option
# exit - a tag to exit from rEFInd
# shutdown - shuts down the computer (a bug causes this to reboot
# EFI systems)
# reboot - a tag to reboot the computer
# firmware - a tag to reboot the computer into the firmware's
# user interface (ignored on older computers)
# Default is shell,apple_recovery,mok_tool,about,shutdown,reboot,firmware
#
showtools shutdown,reboot,exit
下面开始介绍本文的重点
win10引导配置
menuentry "Windows" {
icon /EFI/refind/themes/rEFInd-minimal/icons/os_win.png
loader /EFI/Microsoft/Boot/bootmgfw.efi
}
这是引导win10的,比较简单
ubuntu引导配置
menuentry "Ubuntu" {
icon /EFI/refind/themes/rEFInd-minimal/icons/os_ubuntu.png
loader /EFI/ubuntu/shimx64.efi
disabled
}
#这是一
menuentry "Ubuntu" {
icon /EFI/refind/themes/rEFInd-minimal/icons/os_ubuntu.png
volume 720B2437-28D8-44DB-AC11-B7A73E74624F
loader /vmlinuz-5.8.0-48-generic
initrd /initrd.img-5.8.0-48-generic
options "root=UUID=d157bead-cb19-45cd-a75c-8c50671df920 ro quiet splash"
}
#这是二
这是引导Ubuntu的,我先前用两种方式都做了引导,第一种目前已经禁用(disabled),之所以禁用第一种是因为引导进入的是grub界面,略显繁琐
先说说第一种,它和之前win10的引导是同一种方式,也是直接寻找ESP分区里面的相关引导文件
关于grubx64.efi,mmx64.efi,shimx64.efi的区别参见rEFInd - Arch Linux 中文维基 和 各类efi文件介绍 | 小霸王 (gitee.io) 主要是和secure boot有关的,签名和非签名的引导程序
上图的grub.cfg配置之所以如此简单是因为通过环境变量的设置将grub的相关配置链接到了其他地方,参见下图
怎样链接的呢?是通过上面的grub2命令search.fs_uuid(=search --fs_uuid) 此命令是将root环境变量设置为ubuntu下的/boot
关于grub2命令相关内容参见 GRUB2配置文件"grub.cfg"详解(GRUB2实战手册) [金步国]
上面画红色下划线的145DB11B-4FC8-4105-A948-5EDA0144F494是什么呢?查看ubuntu的/etc/fstab文件可以看到是ubuntu的/boot挂载点的文件系统UUID
虽然这种方式也可以引导,但是引导进入了grub界面,还需要再选择一次才能进入操作系统,略显繁琐,当然有一种方式是修改ubuntu下的/etc/default/grub文件中的timeout=0来快速跳过grub界面,但还是会出现一下的
接下来说第二种方式,第二种方式是直接通过linux内核引导进入系统,不会经过grub界面而直接进入操作系统,但是配置比较麻烦,现在说一下各个配置项
其实配置项和grub2配置项比较像,下图为ubuntu下/boot/grub/grub.cfg文件中关于Ubuntu主菜单的配置,基本可以用到refind.conf的配置中
其中 vmlinuz-5.8.0-48-generic 和 initrd.img-5.8.0-48-generic 在ubuntu的/boot目录下可以找到
这里要特别注意的是volume的配置,这个UUID是分区的UUID,不是文件系统的UUID,我起初就因为配置错误导致引导失败,下图绿色对勾所示位置的UUID就是分区UUID
而grub里面配置的是文件系统UUID
为了这个UUID可真是折腾了一番,最终从外网查到了,链接是uefi - rEFInd boot-manager - 'volume' as GUID? - Super User
为了不能前往外网的用户贴上图片一张
volume设置的值是将root环境变量设置为ubuntu下的/boot
另外要特别注意volume的位置,上图也有说明,我将volume放在icon后loader前,那么icon的路径定位不需要基于volume,而loader以及之后的配置项的路径定位则要依赖于volume
关于loader和initrd的路径定位需要注意的是ubuntu下的/boot的分区情况
如果/boot有单独的分区,我在安装系统时给/boot单独分了区,就是volume的UUID(720B2437-28D8-44DB-AC11-B7A73E74624F)所指示的分区
由于volume设置的值是将root环境变量设置为ubuntu下的/boot,而内核文件vmlinuz-5.8.0-48-generic和initrd.img-5.8.0-48-generic在ubuntu的/boot目录下,那么就写成
loader /vmlinuz-5.8.0-48-generic
initrd /initrd.img-5.8.0-48-generic
如果/boot没单独划分分区,那么这个分区 就与根目录(/)分区相关,volume设置的值(另一个UUID)是将root环境变量设置为ubuntu下的/
而内核文件vmlinuz-5.8.0-48-generic和initrd.img-5.8.0-48-generic在ubuntu的/boot目录下,那么就写成
loader /boot/vmlinuz-5.8.0-48-generic
initrd /boot/initrd.img-5.8.0-48-generic
options选项中的root=UUID=d157bead-cb19-45cd-a75c-8c50671df920 ,这个UUID是ubuntu下根目录(/)的文件系统UUID
deepin引导配置
menuentry "Deepin" {
icon /EFI/refind/themes/rEFInd-minimal/icons/os_deepin.png
loader /EFI/UOS/shimx64.efi
disabled
}
#这是一
menuentry "Deepin" {
icon /EFI/refind/themes/rEFInd-minimal/icons/os_deepin.png
volume 3608A634-47D8-4A09-945B-5D3484A42A1E
loader /vmlinuz-5.10.18-amd64-desktop
initrd /initrd.img-5.10.18-amd64-desktop
options "root=UUID=3505e55a-a6e8-4c6e-9b09-3664ec4df439 ro splash quiet"
}
#这是二
这是引导deepin的,我先前用两种方式都做了引导,第一种目前已经禁用(disabled),之所以禁用第一种是因为引导进入的是grub界面,略显繁琐
deepin的引导配置和上面Ubuntu的配置完全一样,只是修改成deepin系统对应的参数就行,所以在这里就只上传deepin对应的图片
第一种配置有关图片
第二种配置有关图片
PhoenixOS(基于Android-x86)引导配置
menuentry "PhoenixOS" {
icon /EFI/refind/themes/rEFInd-minimal/icons/os_phoenix.png
loader /EFI/PhoenixOS/boot/bootx64.efi
disabled
}
menuentry "PhoenixOS" {
icon /EFI/refind/themes/rEFInd-minimal/icons/os_phoenix.png
loader /EFI/PhoenixOS/kernel
initrd /EFI/PhoenixOS/initrd.img
options " quiet root=/dev/ram0 androidboot.hardware=android_x86 SRC=/PhoenixOS vga=788 i8042.nokbd=1"
}
这是引导PhoenixOS的,我先前用两种方式都做了引导,第一种目前已经禁用(disabled),之所以禁用第一种是因为引导进入的是grub界面,略显繁琐
ESP分区下PhoenixOS的文件结构是下图这样的
PhoenixOS的refind配置是参考grub.cfg进行配置的,PhoenixOS安装时没有单独给/boot划分分区,而是直接放到了ESP分区,所以可以看到PhoenixOS的kernel和initrd.img都是在esp分区下的/EFI/PhoenixOS/目录下,不需要额外重新指定volume参数,这和上面的ubuntu,deepin是不同的。
FydeOS(基于ChromiumOS)引导配置
menuentry "FydeOS" {
icon /EFI/refind/themes/rEFInd-minimal/icons/os_fydeos.png
volume FEC7D7FF-2B69-474B-89A1-D2CA9F80CC52
loader /boot/vmlinuz-13729.22.12.13
initrd /boot/dual_boot_ramfs.cpio.xz
options "init=/sbin/init root=/dev/nvme0n1p15 boot=local rootwait noresume noswap ro loglevel=7 console= i915.modeset=1 cros_efi cros_debug fydeos_dualboot"
}
menuentry "FydeOS(grub)" {
icon /EFI/refind/themes/rEFInd-minimal/icons/os_fydeos.png
loader /EFI/fydeos/bootx64.efi
disabled
}
这是引导FydeOS的,我先前用两种方式都做了引导,FydeOS(grub)目前已经禁用(disabled),之所以禁用FydeOS(grub)是因为引导进入的是grub界面,略显繁琐
ESP分区下FydeOS的文件结构是下图这样的
FydeOS的refind配置是参考grub.cfg进行配置的
grub中相关的文件可以在FydeOS的boot目录和fydeos目录中找到
grub中/fydeos/fydeos_dual_boot.img被挂载到loopdev
linux (loopdev,gpt12)/syslinux/vmlinuz.A 这个配置项就是从/fydeos/fydeos_dual_boot.img镜像中找到vmlinuz.A,而vmlinuz.A文件中又是vmlinuz-13729.22.12.13,所以我在此处将refind中loader设置为 /boot/vmlinuz-13729.22.12.13 ,initrd 就是用grub文件中的配置,refind中options 也使用grub文件中的配置。
refind中volume可以设置为UUID,也可以设置为label值FYDEOS-DUAL-BOOT,同样的options参数中的root变量可以设置为对应的UUID,也可以设置为label值,本文中为root=/dev/nvme0n1p15
OSX(黑苹果)引导配置(clover引导黑苹果,refind引导clover)
menuentry "OSX" {
icon /EFI/refind/themes/rEFInd-minimal/icons/os_mac.png
loader /EFI/CLOVER/CLOVERX64.efi
}
ESP分区下clover的文件结构是下图这样的
配置比较简单,原理就是clover引导黑苹果,refind引导clover,具体设置过程参见我的另一篇文章 https://wybarcelona.blog.csdn.net/article/details/84378023
centOS引导配置
#这里如果使用UUID的方式不能引导成功,可以改成root=/dev/sdaX这种方式
#X为你自己的电脑安装的centos系统的根目录所挂载的磁盘分区编号
menuentry "CentOS" {
icon /EFI/refind/themes/rEFInd-minimal/icons/os_centos.png
volume 9CC38149-EA82-4584-AAB6-734C4010A065
loader /vmlinuz-4.18.0-240.e18.x86_64
initrd /initramfs-4.18.0-240.e18.x86_64.img
options "root=UUID=f9394421-19e2-447e-9928-9f9cc6a6eef8 ro crashkernel=auto resume=UUID=4f60d357-9dfb-4557-be49-552bf26fb8b9 rhgb quiet "
disabled
}
menuentry "CentOS(grub)" {
icon /EFI/refind/themes/rEFInd-minimal/icons/os_centos.png
loader /EFI/centos/grubx64.efi
}
配置原理参见上述方法,不再详述
centOS的XFS文件系统在DiskGenius不能识别文件结构,如下图
openSUSE引导配置
menuentry "OpenSUSE" {
icon /EFI/refind/themes/rEFInd-minimal/icons/os_opensuse.png
volume 77549760-46AB-4047-9B2A-0D9E96CA70AB
loader /vmlinuz-5.3.18-lp152.72-default
initrd /initrd-5.3.18-lp152.72-default
options "root=UUID=d5031186-2bf2-4a4c-ae1c-114c9a949c34 splash=silent resume=/dev/disk/by-id/nvme-Samsung_SSD_980_1TB_S649NJ0R350885D-part10 mitigations=auto quiet"
}
menuentry "OpenSUSE(grub)" {
icon /EFI/refind/themes/rEFInd-minimal/icons/os_opensuse.png
loader /EFI/opensuse/grubx64.efi
disabled
}
配置原理参见上述方法,不再详述
Kylin(银河麒麟)引导配置
menuentry "Kylin" {
icon /EFI/refind/themes/rEFInd-minimal/icons/os_kylin.png
volume 67C7AE31-40CB-45A4-8574-EA8803787639
loader /vmlinuz-5.10.0-3-generic
initrd /initrd.img-5.10.0-3-generic
options "root=UUID=185f74e8-d18d-4903-8243-302c28793c65 ro quiet splash loglevel=0 resume=UUID=5b25f24e-b655-471f-88f1-64dd6bb6f966 audit=0 security=none"
}
menuentry "Kylin(grub)" {
icon /EFI/refind/themes/rEFInd-minimal/icons/os_kylin.png
loader /EFI/kylin/grubx64.efi
disabled
}
配置原理参见上述方法,不再详述
原生chromeOS引导配置
menuentry "ChromeOS" {
icon /EFI/refind/themes/rEFInd-minimal/icons/os_chrome.png
volume 73108A43-715C-AD4E-BB15-A72A6CF8213B
loader /syslinux/vmlinuz.A
options "init=/sbin/init boot=local rootwait ro noresume noswap loglevel=7 noinitrd console= i915.modeset=1 cros_efi cros_debug root=PARTUUID=328F6BDB-CE13-F846-8EB0-A5A6578575AD"
disabled
}
#暂时不可用
menuentry "ChromeOS(grub)" {
icon /EFI/refind/themes/rEFInd-minimal/icons/os_chrome.png
volume 73108A43-715C-AD4E-BB15-A72A6CF8213B
loader /efi/boot/bootx64.efi
}
配置原理参见上述方法,不再详述
RedFlag引导配置
menuentry "RedFlag" {
icon /EFI/refind/themes/rEFInd-minimal/icons/os_redflag.png
volume 5604D06A-AE60-484F-BA14-ECCB3097E5F5
loader /vmlinuz-4.19.0-16-amd64
initrd /initrd.img-4.19.0-16-amd64
options "root=UUID=a33c3abb-986d-417c-8ef5-fa864a8fb00e ro quiet splash resume=UUID=49901fc4-538a-46fb-8c25-bb3c05f3917d"
}
menuentry "RedFlag(grub)" {
icon /EFI/refind/themes/rEFInd-minimal/icons/os_redflag.png
loader /EFI/redflag/grubx64.efi
disabled
}
Linux引导配置
menuentry "Linux" {
icon /EFI/refind/themes/rEFInd-minimal/icons/os_linux.png
loader /EFI/Boot/grubx64.efi
}
之所以加此配置是因为前面的配置都把grub界面去掉了,在此特意加了一个配置是为了留一个进入grub界面的接口
关于/EFI/Boot/grubx64.efi的详解参见 【转】关于Bootmgfw.efi、Bootx64.efi的详解 - 天南海北 - 萝卜头IT论坛 - Powered by Discuz!
最后,关于refind.conf的其他配置项感兴趣的话可以参照前面提到的refind的官网
补充一点的是,在装多个linux系统时,后装的Linux系统的grub2会覆盖掉先装的linux系统的grub2,因此,/EFI/Boot/grubx64.efi,/EFI/ubuntu/shimx64.efi,/EFI/UOS/shimx64.efi,/EFI/ubuntu/grubx64.efi,/EFI/UOS/grubx64.efi 这几个引导程序引导的grub2界面是完全一样的。比如我的电脑deepin后装于ubuntu,所以grub2界面是deepin的grub2界面。后来我又将grub2界面修复为ubuntu的grub2界面,当然还可以修复回deepin的grub2界面。其实就是在装完某个linux系统后先到esp分区把对应的grubx64.efi,shimx64.efi,grub.cfg文件备份下来,后装的linux系统肯定会把自己的grub文件覆盖掉之前的grub文件,这时候如果要恢复原先的grub文件,之前的备份就派上用场了。
最后的最后,再附上一篇外网关于清理refind引导的多余的OS菜单的链接 Linux Multi-boot with Refind – TeejeeTech
附上几张图片
还有一篇github上的一篇,链接 GitHub - castelldev/refind-castell: A custom theme for multiboot systems. Requires rEFInd UEFI bootloader.