如何在 UEFI 下手动设置 Windows 10 和 Ubuntu 22.04 双启动

如何在 UEFI 下手动设置 Windows 10 和 Ubuntu 22.04 双启动

笔记在发表评论/回答或否决/关闭此问题之前,请仔细阅读整篇文章。如果您的解决方案涉及使用某些第三方启动管理器,请忽略此问题,因为这不是我想要的。

前提

我首先在笔记本电脑上安装了 Windows 10,它创建了 EFI 和其他系统分区。我还创建了一个额外的分区。设置好 Windows 后,我继续在额外的分区上安装 Ubuntu 22.04;而不是选择“与 Windows 一起安装“选项,我使用了”其他内容“选项完成安装。Ubuntu 安装程序ubuntu电喷同名分区上的目录。

期望的结果

仅当我使用固件启动管理器时,双启动功能才有效(可以通过在启动时按下 Fx 键从 UEFI 启动屏幕访问)。我希望 Ubuntu OS 条目显示在 Windows 启动管理器下。

我尝试过

使用bcdeditWindows 中的该工具我执行了以下步骤:

  1. bcdedit /copy {bootmgr} /d "Ubuntu 22.04"<---返回一个 guid
  2. bcdedit /set {guid} path "\EFI\ubuntu\shimx64.efi"

尽管 Windows Bootloader 菜单中显示了 Ubuntu 22.04 的条目,但是当我选择它时,重新启动后抛出的错误消息是:

.
.
.

Status: 0xc000007b

Path: \EFI\ubuntu\shimx64.efi

Message: The required file is missing or corrupted...

感知到的问题

我进行了一些挖掘,我认为问题是这样的:链式加载错误。

当 Windows 启动管理器尝试加载 GRUB 加载程序时,grub.cfg位于的文件\EFI\ubuntu\会尝试查找具有 Ubuntu 分配的 ID 的文件系统 (而 Windows 为 ubuntu 的同一分区分配了不同的 ID)。因此,当尝试加载shimx64.efiWindows 启动管理器时,根本无法找到所需的文件。

可能的解决方案

这是我需要帮助的地方 - 我认为可以通过复制一些必需的文件来解决问题(例如模式文件和实际grub配置文件) 从实际的 Ubuntu 分区复制到 EFI 分区。那么,问题是,哪些文件以及文件结构究竟是什么样的?


更新查看 EFI 分区的内容

在 Windows 中以管理员权限打开命令提示符,然后输入以下内容:

$> mountvol Y: /S
$> Y: 
Y:\> cd EFI\ubuntu\
Y:\EFI\ubuntu\> dir

完成后,您可能需要删除驱动器号挂载点:

Y:\EFI\ubuntu\> C:
C:> mountvol Y: /d

相关内容