use*_*274 4 fedora hard-disk luks disk-encryption
在禁用 LUKS 加密的愚蠢尝试中,我已经完成了
cryptsetup luksRemoveKey
Run Code Online (Sandbox Code Playgroud)
到我唯一的钥匙。所以现在每次我尝试启动我的 Fedora-21 时,它都会要求输入密码,但显然无法识别它,并说
Reached target System Initialization
Reached target Basic System
Run Code Online (Sandbox Code Playgroud)
就是这样。有没有办法从中恢复或者我必须重新格式化我的硬盘?
cryptsetup luksAddKey
Run Code Online (Sandbox Code Playgroud)
在这种情况下似乎不起作用。
正如手册页所述,游戏结束了。
删除最后一个密码会使 LUKS 容器永久无法访问。
也就是说,如果您真的删除了最后一个键。是否cryptsetup luksDump
显示DISABLED
所有键槽?
通常会cryptsetup
阻止您这样做,或者至少要求您确认:
# cryptsetup luksRemoveKey foobar
Enter passphrase to be deleted:
WARNING!
========
This is the last keyslot. Device will become unusable after purging this key.
Are you sure? (Type uppercase yes): NO, ABSOLUTELY NOT OKAY!
Run Code Online (Sandbox Code Playgroud)
除非它处于批处理模式或从管道读取密码短语,否则它会这样做。
我个人认为它应该阻止你,毕竟如果你真的想让它无法访问,你也可以luksErase
直接使用。但这似乎不是它的工作方式。
如果您有 LUKS 标头的备份,或者 LUKS 容器仍处于打开状态,则情况会有所不同。LUKS 标头的备份您可以恢复或与luksOpen --header thebackup.header
.
对于开放的 LUKS 容器,您可以获取主密钥dmsetup table --showkeys
并从中构建一个新的 LUKS 标头,如本答案所示(它以不同的方式获取主密钥,但它的概念相同)。