我在具有多个分区的 Windows 机器上进行了双引导设置,其中两个 Linux 使用 LUKS 加密。出于某种原因,我无法再将备份恢复到我的第二个 Linux LUKS 分区并正确启动到 LUKS 启动屏幕,因此我可以输入我的解密密码。相反,它会尝试引导根分区并引发 dracut 错误。
我为这个问题设置的关键分区是:
- /dev/sda1 EFI
- /dev/sda5 引导Fedora I
- /dev/sda6 Fedora I 的根目录——加密的LUKS
- /dev/sda7 引导Fedora II
- Fedora II 的/dev/sda8 根目录——加密的LUKS
我使用一个组合(Fedora I Root and Boot)作为我的主驱动程序。然后,如果我想尝试新的东西,我会使用 tar 备份所有内容并将其安装到第二个组合(Fedora II Root and Boot)。所以我很乐意在我的安装之间来回切换,而不会冒着破坏我的设置的风险。
直到最近,我还能够将系统备份解压到解密的 LUKS 逻辑分区,chroot 进入其中,然后更新 initramfs(使用sudo dracut -vf)。这样做是(我认为)告诉它在引导时寻找 LUKS 分区。并且在重新启动时,新安装的系统会显示 LUKS 解密启动画面,然后在我输入密码后,从根分区启动。
然而,现在,我似乎无法使用第二个分区组合(Fedora II Root 和 Boot)在 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
是加密分区(又名/dev/mapper/luks-f3303886-beb1-4733-8e6f-5794d430e87e
)内分区的 UUID。 当然,UUID 根据是 Fedora I 分区还是 Fedora II 分区而有所不同。 在 Fedora I 和 Fedora II 根分区 (aka
/
) 上,都有一个名为 的文件/etc/fstab
,它为各自的分区提供/
、/boot
和/boot/efi
UUID。例如,一个是: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 分区,而不是根分区?
问题是硬盘驱动器出现故障,该分区所在的扇区有损坏(可修复)。