![Arch Linux UEFI 启动菜单混乱](https://linux22.com/image/1504047/Arch%20Linux%20UEFI%20%E5%90%AF%E5%8A%A8%E8%8F%9C%E5%8D%95%E6%B7%B7%E4%B9%B1.png)
Arch Linux 安装后,我的启动菜单如下所示:
1. reFind boot manager
2. Windows boot manager
3. SanDisk partition 1
4. Kingston partition 1
其中 SanDisk 是 Linux 驱动器,而 Kingston 是 Windows 驱动器。
我时不时地检查启动菜单条目,它们开始看起来更像这样:
1. reFind boot manager
2. Windows boot manager
3. SanDisk partition 1
4. SanDisk partition 1
5. SanDisk partition 1
6. Kingston partition 1
现在它们看起来像这样:
1. reFind boot manager
2. Windows boot manager
3. SanDisk partition 1
4. SanDisk partition 1
5. SanDisk partition 1
6. SanDisk partition 1
7. SanDisk partition 1
8. SanDisk partition 1
9. SanDisk partition 1
10. SanDisk partition 1
11. SanDisk partition 1
12. SanDisk partition 1
13. SanDisk partition 1
14. SanDisk partition 1
15. SanDisk partition 1
16. SanDisk partition 1
17. SanDisk partition 1
18. SanDisk partition 1
19. SanDisk partition 1
20. SanDisk partition 1
21. SanDisk partition 1
22. SanDisk partition 1
23. SanDisk partition 1
24. SanDisk partition 1
25. Kingston partition 1
是什么导致了这种“垃圾”启动项?SanDisk 分区 1 是 Arch Linux 的 /boot 所在位置。我安装了 systemd-boot 并重新查找了多个驱动器。我尝试刷新 UEFI,但没有帮助。我认为 25 个条目是极限,因为它不再增加。欢迎任何帮助。
答案1
我的第一条意见是,你可能不需要同时安装 rEFInd 和 systemd-boot。可以想象,其中一个(可能不是 rEFInd,除非 Arch 开发人员对其脚本进行了重大更改)导致了重复条目,因此,除非你有充分的理由保留这两个启动管理器,否则请删除其中一个可能阻止出现更多条目。这是个冒险的想法,但一般来说,最好不要安装超出需要的软件,因为在某些情况下这样做可能会导致奇怪的问题。
还有一种可能性很小,即在您不知情的情况下启动了其他引导程序,并导致了此问题。我见过一些关于 Red Hat 工具的错误报告,这些工具旨在纠正忘记引导条目的错误固件问题。我没有密切关注这个问题,但我认为这个错误现在已经修复了。此外,它通常会复制 Fedora 条目,而不是像您的SanDisk partition 1
条目这样的更通用的条目,所以我怀疑这个特定的软件是否应该受到指责;我提到它只是作为一个示例可能的原因。在 ESP 中搜索.efi
您不理解的文件(尤其是可能由您的默认启动项启动但不是预期的启动管理器的文件)可能是值得做的。
不过,最有可能的原因是固件错误。您没有说明您为/boot
分区提供了什么文件系统或分区类型代码,但如果那是您的 ESP(这在 Arch 安装中很常见),您的固件可能会寻找后备引导加载程序 ( EFI/BOOT/bootx64.efi
) 并在每次启动时为其添加一个条目。当然,通常情况下,它不应该在每次启动时都这样做;但如果有错误,一切都将不复存在。如果该文件系统上没有后备引导加载程序,那么这可能是触发错误的原因。检查efibootmgr -v
Arch Linux 中引导条目的性质可能会提供一些线索。
您可以使用 删除多余的条目efibootmgr
,例如efibootmgr -b 3 -B
删除Boot0003
条目。当然,如果固件不断添加条目,您需要编写启动脚本来查找和删除多余的条目——或者只能忍受它们弄乱您的启动菜单。如果您能找出触发错误的原因,您可能能够重新配置系统以避免触发——例如,EFI/BOOT/bootx64.efi
如果文件缺失是触发因素,则通过添加文件。
如果我没记错的话,一个更好的长期解决方案是升级固件。(您的主板或计算机制造商可能将这些升级称为“BIOS 更新”或类似名称。)这可能会也可能不会消除未来的问题。它大概不会消除现有的多余条目,但可能会阻止创建新条目。请注意,更新可能还会产生删除有效条目的负面影响,因此您应该准备一个紧急启动介质,以防在更新固件后需要重新创建这些条目。