未显示 Systemd 引导加载程序(双引导 Windows10 / Pop!_OS)

未显示 Systemd 引导加载程序(双引导 Windows10 / Pop!_OS)

我最近用 (Pop!_OS 20.04/Win10) 替换了我的双引导 (Ubuntu/Win10)。现在,当我启动计算机时,不会显示启动菜单,而是直接启动到 Windows。到目前为止,这是我尝试过的:

  • 我按照描述修复了 systemd-bootloader这里但是,这并没有解决我的问题。

  • 我插入了 Ubuntu Livestick(已安装 GRUB)来进入 grub 菜单。从那里我启动 ubuntu,但进入 GRUB 命令行并将引导加载程序设置为 systemd,如下所示:

    • chainloader (hd2,1)/efi/systemd/systemd-bootx64.efi

    • boot

    这让我可以启动到 Pop!_OS(但也不显示菜单,因此我无法从那里启动到 Windows)。它还表明 systemd 引导加载程序通常正常工作

  • 然后我认为问题可能出在 Windows 上,因此我启动到 Windows,然后使用bcdedit.我的 ubuntu 安装遇到了类似的问题,我可以通过将 grub efi 文件的路径定义为 来修复它 bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi。事实证明,这里面确实有问题。

    • 首先,有一个底线告诉我“指定了不存在的设备”。
    • 其次,似乎为{bootmgr}.目前,该设备被定义为“partition=C:”。但是,我要查找的 EFI 文件不在 C: 分区上,而是在 Disk1Partition1 上。问题是,我不知道这个分区叫什么,即我需要如何在 bcdedit 条目中定义它,以便在启动过程中识别它。这是输出bcdedit
C:\WINDOWS\system32>bcdedit
Windows Boot Manager
--------------------
identifier              {bootmgr}
device                  partition=\Device\HarddiskVolume2
path                    \EFI\systemd\systemd-bootx64.efi                                                                                                    
description             Windows Boot Manager
locale                  en-GB
inherit                 {globalsettings}
default                 {current}
resumeobject            {c9199aab-b651-11ea-8b88-3ce1a1c4ba83}
displayorder            {current}
toolsdisplayorder       {memdiag}
timeout                 30
Windows Boot Loader
-------------------
identifier              {current}
device                  partition=C:
path                    \WINDOWS\system32\winload.efi
description             Windows 10
locale                  en-GB
inherit                 {bootloadersettings}
recoverysequence        {c9199aae-b651-11ea-8b88-3ce1a1c4ba83}
displaymessageoverride  Recovery
recoveryenabled         Yes
isolatedcontext         Yes
allowedinmemorysettings 0x15000075
osdevice                partition=C:
systemroot              \WINDOWS
resumeobject            {c9199aab-b651-11ea-8b88-3ce1a1c4ba83}
nx                      OptIn
bootmenupolicy          Standard
hypervisorlaunchtype    Auto
A device which does not exist was specified.

这是Windows的磁盘管理窗口,它显示了我的配置。 systemd-efi 文件位于 Disk1 Partition1 上。

磁盘管理窗口

另外,这是有关我的计算机的一些信息

信息计算机

有谁知道如何解决这个问题?

提前致谢 :)

答案1

我在评论的帮助下设法解决了这个问题。谢谢你们!为了完整起见,我快速说明了解决此问题所采取的所有步骤:

Quickfix - 如果您需要快速启动而没有解决实际问题

  • 插入一个带有正常引导加载程序的 livestick(我使用带有 GRUB 的 Ubuntu 20.04)

  • 一旦 Livestick 中的 GRUB 启动,请按以下键中断引导加载过程C或者Esc键

  • 现在,定义您要使用的引导加载程序(对我来说,它是 systemd 引导加载程序,位于我的硬盘 2 的分区 1 上)

    chainloader (hd2,1)/efi/systemd/systemd-bootx64.efi

    boot

这应该可以让您使用定义的引导加载程序进行引导。

解决问题

  • 我首先根据修复了systemd引导加载程序教程。 (您可能需要使用上面的快速修复来启动您的 Linux 系统)

  • 由于这没有解决问题,我启动到 Windows,执行(以管理员身份)命令提示符。

  • 我安装了我的 EFI 分区,方法如下本指南(我把它安装在V:)。

  • 然后,我将 EFI 文件添加为 {bootmgr} 路径,并将挂载的 EFI 分区添加为我的 bcdedit {bootmgr} 条目中的设备

    bcdedit /set {bootmgr} path \EFI\systemd\systemd-bootx64.efi

    bcdedit /set {bootmgr} device partition=V:

  • 然后我重新启动(它再次直接启动到 Windows)并看到 {bootmgr} 的 bcdedit 设备条目从分区=V:分区=\Device\HarddiskVolume2

  • 我再次重新启动,它成功了。所以也许我可以直接将设备设置为分区=\Device\HarddiskVolume2...但是,这对我有用。

相关内容