在 UEFI 和 Legacy 之间切换后丢失启动选项“debian”

在 UEFI 和 Legacy 之间切换后丢失启动选项“debian”

在一次愚蠢的测试尝试中,我在 Dell XPS13 上的 UEFI 和 Legacy 之间切换,我在加密的 SSD 上运行 Debian Bullseye。

到目前为止,我已经根据这里最有用的类似问题尝试了几件事,但我无法恢复启动选项“debian”。从这里我收集了下面大部分使用过的选项,它们有点类似于本教程

# decrypt drive
sudo cryptsetup luksOpen /dev/nvme0n1p3 mydisk

# mount
sudo mount /dev/mapper/ALF--vg-root /mnt
sudo mount /dev/nvme0n1p1 /mnt/boot/efi
for i in /dev /dev/pts /proc /sys /sys/firmware/efi/efivars /run; do sudo mount -B $i /mnt$i; done

sudo chroot /mnt

grub-install /dev/nvme0n1
update-grub

exit

before的输出efibootmgr -v(见下文)仅更改为BootOrder: 0003,0007,但在重新启动时显然以某种方式重置(我已经尝试过几次)?

BootCurrent: 0007
Timeout: 0 seconds
BootOrder: 0007
Boot0000* Windows Boot Manager  HD(2,GPT,13a9ec87-8ccb-4b03-9a6a-82ef130b8028,0x109000,0x32000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}...o................
Boot0003* debian        HD(1,GPT,d68c44b3-646d-4e6d-9c3f-16b2ff1fd834,0x800,0x100000)/File(\EFI\debian\shimx64.efi)
Boot0007* UEFI: SanDisk U3 Cruzer Micro 8.02, Partition 1       PciRoot(0x0)/Pci(0x14,0x0)/USB(1,0)/HD(1,MBR,0x3b632446,0x800,0xb057ee)..BO

我现在不知道这是否有帮助,但是有几个 efi 文件,由于某种原因有 2 个嵌套的大写EFI目录:

kubuntu@kubuntu:~$ ls /mnt/boot/efi/EFI
Dell  EFI  debian
kubuntu@kubuntu:~$ ls /mnt/boot/efi/EFI/debian/
BOOTX64.CSV  fbx64.efi  grub.cfg  grubx64.efi  mmx64.efi  shimx64.efi

我愿意接受任何提示和建议。

答案1

长话短说:使用引导修复 USB 修复此问题并在 initramfs 中安装根卷以更正设备名称。

我最终尝试了启动修复(否则我会重新安装所有内容)。由于缺少发布文件,我无法将存储库添加到 Kubuntu 或 Debian Live USB,但在启动修复 Live USB 的帮助下,我最终能够启动initramfs并必须解密该卷。

cryptsetup luksOpen /dev/nvme0n1p3 nvme0n1p3_crypt
# lvm vgchange -ay
exit

公平地说,我不确定注释的命令是否必要,但我还是这么做了。我必须确保该术语与UUID 前面nvme0n1p3_crypt的第一个单词相同。/etc/crypttab在退出命令之后,我的系统将启动(可能会出现另一个密码请求)。成功启动后我必须运行

update-initramfs -k all -c

当它起作用而没有抱怨丢失(就我而言)时,nvme0n1p3_crypt我能够像往常一样重新启动。否则该术语nvme0n1p3_crypt与 中的术语不匹配/etc/crypttab

然而,我真的不太明白发生了什么,但我很高兴它成功了,这可能会帮助其他人。

相关内容