我在具有多个分区的 Windows 计算机上进行了双启动设置,其中两个 Linux 分区使用 LUKS 进行了加密。因为某些原因,我无法再将备份恢复到第二个 Linux LUKS 分区并正确启动至 LUKS 启动屏幕,以便输入解密密码。相反,它尝试引导根分区并抛出 dracut 错误。
我针对这个问题的设置中的关键分区是:
- /dev/sda1 EFI
- /dev/sda5 开机对于费多拉我
- /dev/sda6 根对于 Fedora I——加密的卢克斯
- /dev/sda7 开机对于 Fedora II
- /dev/sda8 根对于 Fedora II——加密的卢克斯
我使用一个组合(Fedora I Root 和 Boot)作为我的主驱动程序。然后,如果我想尝试新的东西,我会使用 tar 备份所有内容并将其安装到第二个组合(Fedora II 根和启动)。因此,我很乐意在安装之间来回切换,而不会冒破坏设置的风险。
直到最近,我才能够将系统备份解压到解密的 LUKS 逻辑分区,chroot 到其中,并更新 initramfs(使用须藤 dracut -vf)。这样做(我认为)就是告诉它在启动时寻找 LUKS 分区。重新启动时,新安装的系统将显示 LUKS 解密启动画面,然后在我输入密码后,从根分区启动。
然而,现在我似乎无法使用第二个分区组合(Fedora II 根和引导)来恢复系统以在 LUKS 启动屏幕上启动。我已经进行了三次检查,设置与 Fedora I 组合相同。具体来说:
- 在 Fedora I 和 Fedora II
/boot
分区上(注意:每个分区都是一个单独的分区),有一个名为refind_linux.conf
第一节的文件,其内容类似于"Boot with standard options" "root=UUID=3a404a5a-3d2e-46cd-bf73-8f40e89efed3 ro rhgb quiet LANG=en_US.UTF-8 acpi_osi=Linux acpi_backlight=native"
,其中是加密分区(又名)3a404a5a-3d2e-46cd-bf73-8f40e89efed3
内分区的 UUID 。/dev/mapper/luks-f3303886-beb1-4733-8e6f-5794d430e87e
当然,UUID 根据是 Fedora I 分区还是 Fedora II 分区而有所不同。 在 Fedora I 和 Fedora II 根分区(又名
/
)上,都有一个名为 的文件/etc/fstab
,它提供相应分区的/
、/boot
和UUID。/boot/efi
例如,其一是:UUID=3a404a5a-3d2e-46cd-bf73-8f40e89efed3 / ext4 默认 1 1
- UUID=D0BD-BA39 /boot/efi vfat umask=0077,shortname=winnt 0 2
- UUID=e40053cc-4402-478e-9af8-67a218401b33 /boot ext4 默认 1 1
分区的 UUID/
与 中列出的相同refind_linux.conf
。
- 在 Fedora I 和 Fedora II 根分区(又名
/
)上,都有一个名为 的文件/etc/crypttab
,我认为该文件告诉 Fedora 在哪里查找 LUKS 分区。在这里,它是:luks-f3303886-beb1-4733-8e6f-5794d430e87e UUID=f3303886-beb1-4733-8e6f-5794d430e87e none luks
,其中f3303886-beb1-4733-8e6f-5794d430e87e
LUKS 包装器的 UUID(又名/dev/sda7
)。
尽管设置相同,但第一个组合可以启动,而第二个则不能。我缺少什么?
是否有一些新方法可以让新安装的系统识别出有一个需要首先读取的加密分区?
我需要做什么才能让第二个分区组合认识到它应该首先查看 LUKS 分区,而不是根分区?
答案1
问题是硬盘出现故障,该分区所在的扇区有坏(可修复)扇区。