如何修复 grub 中未找到 cryptodisk

如何修复 grub 中未找到 cryptodisk

请大家帮助我解决这个问题!

我在完整加密系统上安装了 ubuntu。

然后我删除了硬盘的密码。

我使用这个命令:

cryptsetup luksRemoveKey /dev/sda2

但是当我重新启动笔记本电脑时,它会要求输入密码,当我输入密码时,它会显示 grub 中的错误。

这个错误是:

error : access denied
error : no cryptodisk found.
error : 'cryptouuid/74hu6edi854..' not found

grub rescue >

答案1

LUKS 加密使用一个密钥。该密钥是在 LUKS 磁盘格式化时随机生成的。该密钥永远不会改变。

密钥本身是加密的,通常使用密码。

(或者,可以使用多个密码。如果使用多个密码,则任何一个密码都可以解密密钥。解密密钥后,就可以使用该密钥访问 LUKS 磁盘上的实际数据。)

通常,密钥的加密副本存储在 LUKS 磁盘本身的 LUKS 标头中。但是,如果您愿意,也可以将(可能已加密的)LUKS 密钥存储在 LUKS 标头以外的某个位置。例如,您可以将其存储在单独的 USB 磁盘中。

该命令cryptsetup luksRemoveKey /dev/sda2会提示您输入密码。 cryptsetup将查看密码是否可以解密密钥的任何加密副本。如果可以,则删除该密钥的加密副本。因此,该密码无法再解密密钥,并产生以下进一步后果:该密码无法再用于访问磁盘。因此,luksRemoveKey提供的密码将被撤回。

如果您放弃唯一的密码,则磁盘上的数据将永远丢失。(除非您之前在另一个磁盘上备份了 LUKS 密钥。)

就您而言,运行cryptsetup luksRemoveKey /dev/sda2可能会删除密钥的唯一现有加密副本。因此,您几乎肯定再也无法访问 中的数据/dev/sda2

您可能需要重新格式化/dev/sda2并重新开始。

最接近从 LUKS 加密磁盘中删除加密的方法是添加空字符串作为密码。但是,Ubuntu 22.04 似乎会默默拒绝尝试使用空密码来解密 LUKS 加密的根文件系统,即使使用空密码加密 LUKS 磁盘是完全有效的。(有些人可能认为 Ubuntu 22.04 默默拒绝使用空密码是一个错误。)

相关内容