rEFInd多系统引导优化:Win10+Ubuntu+Deepin+macOS等menuentry精简配置实战

张开发
2026/4/16 18:08:26 15 分钟阅读

分享文章

rEFInd多系统引导优化:Win10+Ubuntu+Deepin+macOS等menuentry精简配置实战
1. 为什么需要优化rEFInd引导菜单第一次安装rEFInd引导管理器时很多人都会被它自动生成的杂乱菜单震惊到。我自己的电脑装了Win10、Ubuntu和Deepin三系统结果rEFInd给我列出了十几个启动项其中还包括一堆重复的内核版本和根本不认识的图标。这种体验就像走进一家餐厅服务员给你递来一本200页的菜单而你只想快速找到那几个常点的菜。rEFInd的工作原理其实很智能——它会自动扫描整个磁盘把所有能找到的操作系统内核和引导文件都列出来。但这种智能对于普通用户反而成了负担。比如我的Ubuntu系统就有两个内核版本(vmlinuz-5.8.0-48-generic和vmlinuz-5.8.0-25-generic)rEFInd会老实巴交地把它们都显示为独立选项。更糟的是选择某些条目后还会先进入GRUB界面需要二次选择才能真正启动系统。通过手动配置refind.conf文件我们可以实现三个核心优化目标精简菜单项只保留真正需要的系统入口直启系统跳过冗余的GRUB二次选择界面个性化定制为每个系统设置专属图标和名称2. 基础配置清理冗余启动项2.1 屏蔽自动扫描打开/etc/refind.conf文件找到扫描相关的配置区域。这是我常用的屏蔽设置dont_scan_dirs /EFI/Microsoft/Boot,/EFI/Boot,/EFI/ubuntu scan_all_linux_kernels false第一行告诉rEFInd不要扫描这些目录因为它们包含我们不需要的引导文件。比如/EFI/ubuntu里存放的就是会导致二次跳转GRUB的引导程序。第二行关闭了Linux内核的全盘扫描避免显示多个内核版本。实际操作中建议先用rEFInd的默认配置启动一次记下哪些条目是冗余的然后逐步添加到dont_scan_dirs列表中。我遇到过最极端的情况是一个朋友装了七八个Linux发行版dont_scan_dirs后面跟了二十多个路径。2.2 禁用折叠内核选项配置文件中有个fold_linux_kernels参数看起来能解决多内核问题但我实测下来并不理想。它虽然能把多个内核折叠显示但展开后还是能看到所有版本。更彻底的做法是直接关闭扫描(scan_all_linux_kernels false)然后手动指定要使用的内核版本。3. 核心配置手动定义启动项3.1 Windows系统配置Win10的配置是最简单的因为微软的引导流程很规范menuentry Windows { icon /EFI/refind/themes/rEFInd-minimal/icons/os_win.png loader /EFI/Microsoft/Boot/bootmgfw.efi }这里需要注意loader路径的准确性。有些特殊情况下bootmgfw.efi可能不在默认位置这时需要用find命令在ESP分区中搜索确切路径。3.2 Ubuntu/Debian系配置Linux系统的配置要复杂些但能实现直接启动不跳转GRUB。以Ubuntu为例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 rootUUIDd157bead-cb19-45cd-a75c-8c50671df920 ro quiet splash }这里有几个关键点容易出错volume参数要用分区UUID不是文件系统UUIDloader和initrd的路径取决于/boot是否独立分区options中的rootUUID要用文件系统UUID我建议先用blkid命令查看分区信息确保各UUID填写正确。曾经因为弄混这两种UUID我花了三小时排查为什么系统起不来。3.3 Deepin系统配置Deepin的配置逻辑与Ubuntu基本相同只是路径和UUID不同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 rootUUID3505e55a-a6e8-4c6e-9b09-3664ec4df439 ro splash quiet }Deepin默认会把引导文件放在/EFI/UOS目录下这点与Ubuntu不同。如果同时安装多个Linux发行版后安装的系统会覆盖前者的GRUB配置这时就需要手动调整refind.conf中的路径。4. 高级配置特殊系统处理4.1 macOS黑苹果配置对于黑苹果系统通常需要通过Clover或OpenCore引导menuentry macOS { icon /EFI/refind/themes/rEFInd-minimal/icons/os_mac.png loader /EFI/CLOVER/CLOVERX64.efi }这种配置实际上是rEFInd引导Clover再由Clover引导macOS。需要注意的是Clover的版本必须与macOS版本兼容否则会出现引导失败。4.2 Android-x86系统配置PhoenixOS等Android-x86系统的配置比较特殊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.hardwareandroid_x86 SRC/PhoenixOS }这类系统通常会把内核文件直接放在EFI分区因此不需要指定volume参数。options参数也要按照Android-x86的特殊要求来设置。4.3 保留GRUB入口的配置虽然我们极力避免GRUB二次跳转但保留一个GRUB入口作为备用很有必要menuentry GRUB Rescue { icon /EFI/refind/themes/rEFInd-minimal/icons/os_linux.png loader /EFI/ubuntu/grubx64.efi }当某个系统无法直接启动时可以通过GRUB进入救援模式。建议将这个条目设置为disabled只在需要时通过rEFInd的启动编辑器临时启用。5. 实用技巧与故障排查5.1 获取正确的UUID获取UUID是配置过程中最容易出错的地方。推荐以下方法分区UUID使用sudo blkid -o list查看文件系统UUID查看/etc/fstab或使用lsblk -fESP分区路径挂载点在/boot/efi或/boot我曾经因为一个字母写错导致系统无法启动所以建议复制粘贴UUID而不是手动输入。5.2 内核升级后的维护Linux系统升级内核后需要手动更新refind.conf中的内核版本号。有个小技巧可以自动化这个过程#!/bin/bash NEW_KERNEL$(ls /boot/vmlinuz-* | sort -V | tail -n 1) sed -i s|loader /vmlinuz-.*|loader ${NEW_KERNEL#/boot}| /etc/refind.conf将这个脚本设为每次内核升级后自动运行就可以免去手动修改的麻烦。5.3 常见启动问题解决启动卡住检查options参数是否正确特别是rootUUID部分黑屏无响应尝试去掉quiet和splash参数查看详细启动信息文件找不到确认volume指定的分区包含loader指向的文件权限问题确保refind.conf和所有引导文件有正确权限每次修改配置后建议先用refind-mkdefault命令测试配置有效性避免反复重启。

更多文章