BIOS 更新后未检测到 Linux 引导加载程序

BIOS 更新后未检测到 Linux 引导加载程序

我使用联想 y500,购买 250 GB 三星 SSD 后,我决定使用由 Arch Linux 和 Windows 8.1 组成的双操作系统。为了防止启动问题,我后来安装了Arch。我使用 UEFI 并选择 systemd-boot 进行安装。 Linux 引导加载程序运行良好。然而,由于某种原因,启动屏幕与我的屏幕没有正确对齐,我决定更新我的 BIOS(我很遗憾这样做,因为它没有解决问题),因为根据我的搜索,问题与固件有关。

之后,在启动选项中,我看不到Linux启动加载程序。只有 Windows 引导加载程序。检查EFI分区,发现systemd-boot文件确实存在,没有任何变化。

我不明白为什么我的电脑看不到 Linux 引导加载程序。互联网上也没有这方面的信息。所以我的问题是:

  • BIOS 更新如何影响我的 EFI 启动?
  • 如果问题确实与更新有关,我应该尝试将其回滚吗?
  • 对于我的问题,是否可以使用Arch Linux live USB修复EFI?如果是的话,怎么样?

我觉得有必要说 BIOS 更新重新启用了安全启动。我禁用了它,但是,这不起作用。当重新启用安全启动时,更新可能会对 EFI 造成一些影响,但我不确定。

答案1

我对 systemd-boot 也有同样的问题。最近的BIOS补丁后 微星gs40,systemd 引导加载程序已从 BIOS 选项中消失。然而 grub2(ubuntu 的加载程序)和 ms-boot(windows 的)仍然被检测到正常。更新 systemd-boot、切换安全启动或在 BIOS 中进行其他一些随机点击也没有帮助。至于你的问题:

  1. BIOS 更新如何影响我的 EFI 启动? 该问题似乎与 systemd-boot 对新 EFI bios 版本的支持有关。bugtracker 中仍然没有问题,我懒得创建任何问题。
  2. 如果问题确实与更新有关,我应该尝试将其回滚吗? 不,根据我的实践,刷新旧的 BIOS 版本可能会将您的笔记本电脑变成砖头。如果没有特殊的方法,您将无法恢复 BIOS 固件程序员。请注意,情况并非总是如此,但我不会冒险
  3. 对于我的问题,是否可以使用Arch Linux live USB修复EFI?如果是的话,怎么样? 只需切换到 grub2 或任何其他引导装载程序。 Archlinux usb livecd 应该仍然可以在 UEFI 模式下启动。 @younes 的答案会很好。欲了解更多信息,请参阅维基百科

编辑:

好吧,我终于能够从 systemd-boot 启动了。对我来说,重新创建 efi 结构出于某种神奇的原因有所帮助。以下是修复步骤:

  1. 从任何 linux livecd 启动(archlinux 就可以了)
  2. 安装启动分区,将其中的所有数据备份到某处
  3. 擦除启动分区中的所有文件(仅文件,无需对分区进行任何操作)
  4. 再次安装 systemd boot bootctl install,因为您已经以 efi 模式启动并且启动分区已挂载
  5. 执行sync命令刷新缓存并重新启动进入 BIOS。 systemd 启动应该出现在 UEFI 加载程序中。将其标记为第一个。现在重新启动后 systemd 启动应该可用!
  6. 从 livecd 恢复旧的 UEFI 结构。 (将备份的 /boot 复制到分区中新安装的文件中,覆盖它们。)
  7. 再次重新启动并从系统启动。

我希望这对你有帮助。

答案2

打开提升的命令提示符(按Windows Key> 类型CMD> 右键单击​​命令提示符 > 选择Run as administrator)并输入以下内容:

bcdedit /set {bootmgr} path \EFI\<<LINUX OS>>\grubx64.efi 

(在上面的命令中,替换 <<LINUX OS>> 适用debian于 Debian 操作系统和ubuntuUbuntu 操作系统。例子:bcdedit /set {bootmgr} path \EFI\debian\grubx64.efi

答案3

有一个更简单的方法。只需从 Windows 启动选项中输入 UEFI 固件设置即可。更改启动顺序并让 Linux 首先启动。保存更改并退出。重新启动后,grub 将加载,您将能够启动到两个操作系统中的任何一个。

答案4

使用 live CD 或 USB,然后 chroot 到硬盘驱动器上的 Archlinux,然后update-grub,您可能还需要运行grub-install /dev/sda && update-grub.

如果您可以提供有关硬盘驱动器的更多信息(分区表、类型和部件方案...)lsblk和的标准输出sudo fdisk -l

相关内容