几周前,我安装了我的第一个 Linux 发行版 Mint,并设法用它设置了 rEFInd。然后我决定切换到 Pop_OS。我格式化了同时拥有 Mint 和 rEFInd 的分区并安装了 Pop。由于 rEFInd 被卸载,我使用 重新安装了它sudo apt install refind
,就像我在 Mint 上时一样。
但后来我遇到了这个问题。安装成功后,我重新启动到 rEFInd,发现它显示 rEFind_x64.efi 作为可能的启动选项。
一旦我按下回车键,它就会启动到我的旧的、定制的 rEFInd 中,该 rEFInd 与 mint 一起存储在已删除的分区中。
当我尝试使用 F10 在 rEFInd 中截取屏幕截图时,出现此错误。
我可以从两者启动 Windows,但 Pop 只能在第二个中工作(旧的不应该存在)。我已经尝试过卸载并重新安装,但没有帮助。 有谁知道 rEFind_x64.efi 存储在哪里?非常感谢任何帮助:)!
答案1
“新”rEFInd 指示“旧”rEFInd 的位置:
Boot EFI\refind\refind_x64.efi from EFI system partition
启动到 Pop_OS 并运行sudo efibootmgr -v
.记下标识BootCurrent:
当前引导选项编号的行,并读取BootNNNN*
具有相应编号的行。该行应该告诉您用于引导系统的 EFI 系统分区(简称 ESP)的 PARTUUID,以及其中“新”rEFInd 的确切路径名。用于lsblk -o +PARTUUID
找出 PARTUUID 映射到哪个磁盘。如果您无法理解输出,请编辑你的问题将上述两个命令的输出添加到其中。
我猜测“新”rEFInd 安装已由 Pop_OS 定制,并且不位于\EFI\refind\
ESP 内的目录中,而是位于特定于发行版的目录中,例如\EFI\pop_os\
或其他目录。或者,Pop_OS 安装程序可能已创建第二个 ESP。
通常,引导加载程序的安装分为两步:首先,引导加载程序包的常规安装将向系统磁盘提供必要的文件。然后(作为自动安装后操作,或作为单独的手动步骤),这些文件用于将引导加载程序的实际工作副本安装到 ESP 中(或在传统 BIOS 系统中,嵌入到 MBR 和非MBR 和第一个分区之间的人地间隙)。
当您删除 Mint 安装时,只有第一部分与 Mint 系统分区一起被破坏。但由于 ESP 设计为在所有已安装的操作系统之间共享,并且您显然没有在此过程中损坏 Windows 安装,因此您没有删除 ESP。因此,rEFInd 的旧副本及其配置保留在 ESP 上,位于EFI\refind\
Mint 最初安装它的目录中。
通常,ESP 将像/boot/efi
在 Linux 中一样安装,但这可能因发行版而异。如果您有多个磁盘,每个磁盘上都有 ESP,甚至同一磁盘上有多个 ESP,安装程序可能会变得混乱。
假设最初启动时使用的 ESP(并包含“新”rEFInd)与 Pop_OS 上安装的 ESP 相同,您应该在 Pop_OS 中/boot/efi
找到“旧”rEFInd 。/boot/efi/EFI/refind/refind_x64.efi
在看到输出后,“新”rEFInd 的位置也应该很明显sudo efibootmgr -v
。
请注意,“旧”rEFInd 说:
Boot EFI\refind\refind_x64.efi from 798 MiB FAT volume
并不是... from EFI system partition
。这表明您的系统上现在可能有两个 ESP,并且可能只有其中一个会自动安装在 Linux 中。
另请注意,Windows 的 UEFI 引导加载程序的 UEFI 引导变量路径名为EFI\Microsoft\Boot\bootmgfw.efi
。因此,如果当前安装的 ESP/boot/efi
也包含 Windows 引导加载程序,您应该在 处找到它/boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
。如果它不存在,则可能位于您系统上的“其他 ESP”上。您不想删除 Windows 引导加载程序目录:它包含一些包含特定于您的 Windows 安装信息的文件,重新创建它的唯一简单方法是使用 Windows 安装介质上的“修复启动”功能。