我有一台运行 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 个分区。
- /dev/sda1——Linux 文件系统
- /dev/sda2——Linux 交换
- /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”
不幸的是,现在启动后我仍然收到无法读取扇区的错误。