添加第二个磁盘几天后,全盘加密停止启动

添加第二个磁盘几天后,全盘加密停止启动

最近我向我的计算机添加了一个新磁盘。我有一个空闲的 SATA 插槽,所以没有其他任何改变。插入磁盘几天后,计算机停止启动。

我使用 Debian Bookworm。我有一个加密分区,其中包含一个带有多个虚拟分区(包括根分区)的 LVM。

通常,在 Grub 之后,系统会提示我输入 的密码sda2_crypt。现在 Grub 通过了,然后计算机挂起了一段时间,我发现我认为是 BusyBox 告诉我某个命令超时了。我试图逃跑sudo grub-mkconfig,但没有帮助。

我注意到只有较新的内核引导才会失败。尝试启动旧内核仍然有效。

答案1

事实证明,通过添加第二个磁盘,驱动器号发生了变化。包含根文件系统的磁盘/dev/sda之前是,但变成了/dev/sdb。这使得系统无法解密根分区。

请注意,Grub 很好,它正确加载了内核。因此,所有针对 Grub 修复系统的尝试都注定会失败。

出现错误的 shell 是initramfs,而不是 BusyBox。它允许修复错误,以便引导过程可以继续。本答案中有专门的部分解释了如何执行此操作。

另一部分介绍了如何永久解决该问题。

如何暂时解决该问题initramfs

其实很简单。这个答案有更多详细信息,但在我的情况下不需要有关 LVM 的步骤。

阻止系统继续启动的原因是找不到包含根文件系统的设备。就我而言,这是/dev/mapper/ssd-root。要使其出现,必须手动打开加密分区:

cryptsetup open /dev/sdb2 some-arbitrary-mapname

之后,必须退出initramfs

exit

当然,必须使用包含根文件系统的设备。作为地图名称,可以使用任何名称。人们可以使用通用的sdb2_crypt,但也可以选择使用自我描述的名称,例如ssd500-crypt

如果不使用预期的地图名称,例如sda2_crypt,一段时间后,在短暂挂起后,将再次提示输入密码。预期的地图名称可以在 中找到/etc/crypttab

如何永久解决该问题

为了永久解决该问题初始化文件系统必须更新。作者使用了以下步骤序列:

  1. 暂时修复该问题initramfs
  2. 将地图名称更改/etc/crypttab为新名称。任何事情都会发生,所以人们可能会使用像 这样的自我描述值ssd500-crypt
  3. sudo update-initramfs -u并重新启动
  4. 再次暂时解决该问题initramfs。不过,这次地图名称必须是步骤 (2) 中使用的名称。
  5. sudo update-initramfs -u并重新启动

如果已经选择了新的地图名称,则可能可以省略步骤 (1)。

相关内容