笔记:在发表评论/回答或否决/关闭此问题之前,请仔细阅读整篇文章。如果您的解决方案涉及使用某些第三方启动管理器,请忽略此问题,因为这不是我想要的。
前提:
我首先在笔记本电脑上安装了 Windows 10,它创建了 EFI 和其他系统分区。我还创建了一个额外的分区。设置好 Windows 后,我继续在额外的分区上安装 Ubuntu 22.04;而不是选择“与 Windows 一起安装“选项,我使用了”其他内容“选项完成安装。Ubuntu 安装程序ubuntu
在电喷同名分区上的目录。
期望的结果:
仅当我使用固件启动管理器时,双启动功能才有效(可以通过在启动时按下 Fx 键从 UEFI 启动屏幕访问)。我希望 Ubuntu OS 条目显示在 Windows 启动管理器下。
我尝试过:
使用bcdedit
Windows 中的该工具我执行了以下步骤:
bcdedit /copy {bootmgr} /d "Ubuntu 22.04"
<---返回一个 guidbcdedit /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.efi
Windows 启动管理器时,根本无法找到所需的文件。
可能的解决方案:
这是我需要帮助的地方 - 我认为可以通过复制一些必需的文件来解决问题(例如模式文件和实际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