如何在 BIOS 中恢复 UEFI 启动项?

如何在 BIOS 中恢复 UEFI 启动项?

我有一台运行 Untangle NG 防火墙的 protectli vault fw4 mini PC。当 Web UI 没有响应时,我不得不强行关闭它,但它无法启动。我将设备插入显示器,看到 Untangle 启动菜单启动,然后出现一条简短的消息failed to read sector <random hex code>。然后重新启动。

考虑到 32GB mSata SSD 驱动器可能出现故障,我将 UEFI 固件设置切换为传统模式并启动了 UBCD USB 驱动器。我能够成功对驱动器运行表面(读取)扫描,没有任何问题。

从那时起,我将 BIOS 切换回 UEFI 模式,它拒绝查看驱动器的启动项。

我创建了一个 Linux 系统救援磁盘,并能够fsck在所有三个分区上运行。它确实修复了主分区上的几个问题。希望这就是它出现读取扇区错误的原因(对于逻辑问题来说很奇怪)。

该磁盘有 3 个分区。

  1. /dev/sda1——Linux 文件系统
  2. /dev/sda2——Linux 交换
  3. /dev/sda3——EFI 系统

/dev/sda3看到以下文件夹结构...

/EFI
— debian
—— grubx64.efi
— untangle
—— grubx64.efi

该系统显然是基于 Debian 的系统。

我认为问题在于更改为传统模式会删除 UEFI 固件中的启动项。使用 Linux 工具/命令将此启动项重新添加回 UEFI 固件的正确方法是什么?我找到了一些关于首先列出条目efibootmgr但只找到可启动 USB 棒的信息。

UEFI 固件菜单本身没有我所看到的添加手动条目的选项。还需要其他信息吗?

答案1

我发现我能够使用以下命令来恢复启动项。

efibootmgr -c -p 3 -d /dev/sda -L “UEFI: Untangle” -l “\EFI\untangle\grubx64.efi”

不幸的是,现在启动后我仍然收到无法读取扇区的错误。

相关内容