![未显示 Systemd 引导加载程序(双引导 Windows10 / Pop!_OS)](https://linux22.com/image/183169/%E6%9C%AA%E6%98%BE%E7%A4%BA%20Systemd%20%E5%BC%95%E5%AF%BC%E5%8A%A0%E8%BD%BD%E7%A8%8B%E5%BA%8F%EF%BC%88%E5%8F%8C%E5%BC%95%E5%AF%BC%20Windows10%20%2F%20Pop!_OS%EF%BC%89.png)
我最近用 (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...但是,这对我有用。