Windows 10 升级破坏启动列表后如何从 Windows 恢复 EFI?

Windows 10 升级破坏启动列表后如何从 Windows 恢复 EFI?

我在 7 月底更新到了 Windows 10,它删除了我电脑上的所有启动项。我能够找到正确的 Windows 启动 efi 文件,并添加了启动选项,但我找不到 ubuntu efi 文件。我可以通过 Windows 访问文件,但我想重新使用 Ubuntu。我应该寻找哪个启动项?如果它不在那里,我可以下载 EFI 文件并将其添加到正确的位置吗?

答案1

假设您的 Ubuntu 安装完好无损(不是一个安全的假设),您应该能够按如下方式重新启动并运行:

  1. 下载我的 USB 闪存驱动器或 CD-R 版本的rEFInd 启动管理器。
  2. 利用下载的文件准备一个介质。
  3. 如有必要,请禁用安全启动。(在启用安全启动的情况下,有多种方法可以执行此操作,但需要添加更多步骤。)
  4. 启动 rEFInd 介质。它应该会向您提供启动 Windows 和 Ubuntu 的选项。
  5. 突出显示 Ubuntu 选项并按 Enter 键启动它。(警告:如果您有单独的/boot分区,则必须按两次 F2 或 Insert,而不是按 Enter。这将打开一个文本编辑器,您必须在其中添加一个root={something}选项,其中{something}是您的根 [ /] 文件系统,例如/dev/mapper/ubuntu/dev/sda6。)
  6. 一旦出现 Ubuntu,您可以:
    • 重新安装 GRUB,可能通过sudo grub-install在命令提示符下输入来完成。
    • 通过安装 Debian 包或 PPA 将 rEFInd 安装到硬盘,按照 rEFInd 文档中所述。
  7. 如果你禁用了安全启动,那么此时你应该能够重新启用它,但是如果你用 rEFInd 替换 GRUB,你可能需要完成一些额外的步骤,如rEFInd 安全启动文档。

如果您完成此过程并在最后安装 GRUB,结果应该与使用 Boot Repair 非常相似;只是实现步骤不同。无论哪种方式,如果 Windows 删除了您的grubx64.efi文件(以及 ESP 上的相关文件),则必须恢复这些文件。

不过,回到这个答案的第一个字,检查 Ubuntu 安装的当前状态可能是必要的。可以肯定的是,如果缺少 Ubuntu,我刚刚概述的过程将在步骤 #4 中失败——rEFInd 将不显示任何 Ubuntu 条目(或者可能是最终失败的 GRUB 条目)。此外,可能一切都保持安装状态,但您的启动顺序已经改变。如果您查看的是错误的分区,您可能会认为 GRUB 已被删除。Ubuntu 有时会将 GRUB 安装到一个分区,即使 Windows 使用另一个分区作为其引导加载程序,因此这种混淆很容易发生。在这种情况下,efibootmgr在 Linux 中使用它来调整启动顺序会更有效(但不一定更有效)。出于所有这些原因,运行启动信息脚本并粘贴其生成的文件的链接RESULTS.txt(发布在pastebin 网站) 可能是值得的。

答案2

我遇到了和你类似的问题,我使用以下方法解决了它简易UEFI显然,它对于家庭使用是免费的(在非企业 Windows 版本上)。安装并打开后,只需执行以下操作:

  1. 选择左边“管理 EFI 启动选项”
  2. 单击带有工具提示的按钮“创建新条目”(中心按钮行,从顶部开始第二个
  3. 现在输入或者输入Shim的文件路径:“\EFI\ubuntu\shimx64.efi”(或者如果安全启动未启用,那么您也可以让它直接指向 Grub),添加如下描述“乌班图”或类似内容,然后单击“确定”进行确认。
  4. 将刚刚创建的条目移至顶部(再次按中心行中的顶部按钮)。

就是这样,它应该会自动再次引导您进入 Grub。无需从闪存驱动器或类似设备引导。

或者,如果 Grub/Shim 条目仍然存在,只是不是启动顺序中的第一个

  1. 在提升的提示下执行:

    bcdedit /enum all
    
  2. 在其输出中查找引导加载程序条目的 ID。它类似于:

    Firmware Application (101fffff)
    -------------------------------
    identifier              {8b455a95-4c31-11e6-9f4c-8066cf6e9636}
    device                  partition=\Device\HarddiskVolume2
    path                    \EFI\ubuntu\shimx64.efi
    description             Ubuntu
    
  3. 将其设置为首先尝试启动的:

    bcdedit /bootsequence <ID OF YOUR BOOT LOADER ENTRY>
    

相关内容