我的笔记本电脑是运行 Ubuntu 20.04.3 的戴尔 Precision 5560。它上面设置了 LUKS 磁盘加密。
大约一周前,它完全冻结了(我不知道为什么),所以我唯一让它再次工作的办法就是硬关机,即按住电源按钮 10 秒钟。在我这样做之后,它似乎损坏了一些东西,因为现在当我启动时,它会暂时显示以下错误:
cryptsetup: Bad password or options?
几秒钟后,这将变为:
cryptsetup: ERROR; system: maximum number of tries exceeded
又过了 30 秒左右,它让我陷入initramfs
. 如果我exit
在这里键入它会显示一些错误消息,尤其是ALERT! /dev/mapper/ubuntu-root does not exist. Dropping to a shell!
.
幸运的是,我能够通过执行以下操作来解决此问题:
echo -e '#!/usr/bin/sh\n/usr/bin/tpm2_nvread 0x1500016' > /clientbuild/scripts/tpm2-getkey
手动运行
/clientbuild/scripts/tpm2-getkey
并记下密码。打开 luks 卷,重新扫描 lvm 卷,然后继续运行失败的脚本:
/clientbuild/scripts/tpm2-getkey | cryptsetup luksOpen /dev/nvme0n1p3 ubuntu-p3
lvm lvscan
sh /scripts/local
按 ctrl+D 将控制权返回给 initramfs。
此时,系统会提示我输入我记下的密码,我这样做了,然后我可以成功启动到我的系统。
但是,每次我重新启动机器时,我都必须再次完成上述步骤。那么这里有什么损坏了,我该如何永久修复它?