有一天,当我打开计算机时,我的 home 部分 /dev/sda7 的密码不起作用(我 147% 绝对确定,我写的是正确的密码)!经过三次尝试,我通过强制关机重新启动计算机并尝试输入相同的密码。那没有用。然后,我选择了“Boot arch with Linux linux”,而不是默认引导“Boot arch”。这对我有帮助。我关掉电脑后工作了一整天。但在下次启动时,这个技巧对我没有帮助。甚至选择“Boot arch with Linux linux (initramfs Fallback)”(我只有 3 个启动选项)。然后我决定从 Ubuntu LiveUSB 启动。sudo cryptsetup luksOpen /dev/sda7 home
说:No key available with this passphrase.
我试图执行sudo cryptsetup --verbose repair /dev/sda7
,上面说No known problems detected for LUKS header.
。我已经编译并执行了官方的 cryptsetup 工具https://gitlab.com/cryptsetup/cryptsetup/tree/master/misc/keyslot_checker用于检查键槽。它说了有关键槽的相同信息,即 luksDump。
$ sudo cryptsetup
LUKS header information for /dev/sda7
Version: 1
Cipher name: aes
Cipher mode: xts-plain64
Hash spec: sha256
Payload offset: 4096
MK bits: 256
MK digest: fc 18 49 fe 3a 4e d4 11 b9 6f 0c c7 1d 54 0a 8d 44 01 86 36
MK salt: 5e 59 c8 fc f2 a9 10 b9 bf 7c 68 4b e4 a5 8e 00
5a f9 c7 66 f9 5b 02 ff e7 59 e4 fd 43 f2 dc b5
MK iterations: 249500
UUID: cc2f71c3-f0d9-4642-bf59-87bff4f60b54
Key Slot 0: ENABLED
Iterations: 1996099
Salt: 3e 60 e7 14 02 95 89 c0 c2 bf 8d 61 bb 99 13 aa
9d 9a c4 7d d4 41 78 ee 76 b0 48 b4 ed b0 ff a8
Key material offset: 8
AF stripes: 4000
Key Slot 1: DISABLED
Key Slot 2: DISABLED
Key Slot 3: DISABLED
Key Slot 4: DISABLED
Key Slot 5: DISABLED
Key Slot 6: DISABLED
Key Slot 7: DISABLED
这一切看起来一切都很好。像标头和所有分区都没有损坏。我不知道为什么密码不适合。我只能说我每天都在全面升级我的系统(通过 sudo pacman -Syyu)。也许有一天,升级会导致这种后果。
答案1
如果 LUKS 标头存在损坏(不仅仅是一个字节),则几乎不可能恢复。
LUKS 标头没有其密钥材料的校验和,因此 - 如果它以任何方式损坏,它将cryptsetup luksDump
看起来与往常一样,但您的密码将不再起作用。如果您无法使密码生效,则无法排除损坏的可能性。
hexdump
您可以使用(手动方法键槽检查器)进行检查:
hexdump -C -n 132096 foobar.img | less
00000000 4c 55 4b 53 ba be 00 01 61 65 73 00 00 00 00 00 |LUKS....aes.....|
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00000020 00 00 00 00 00 00 00 00 78 74 73 2d 70 6c 61 69 |........xts-plai|
... 0x00000->0x01000 should be mixed text, zero and random ...
00001000 9f 27 7a 46 8b c7 0e 09 00 82 2d 66 a7 4b b7 76 |.'zF......-f.K.v|
00001010 7a 01 ed 65 91 d0 96 af 3c f1 85 0d 64 48 81 e7 |z..e....<...dH..|
00001020 3a 00 0d d1 23 e0 95 d2 8e 42 34 4d e2 74 c4 d6 |:...#....B4M.t..|
... 0x01000->0x20400 should be 128K of random only ...
000203d0 b6 04 f6 34 08 64 10 3f 4e b7 c4 21 e6 d8 da 56 |...4.d.?N..!...V|
000203e0 0e eb 53 ce d2 a6 94 f0 92 7b 11 4b c1 96 9f 17 |..S......{.K....|
000203f0 94 88 b4 cd 36 a5 e1 b2 e9 ba 27 f3 85 7d cb 3f |....6.....'..}.?|
00020400
第一部分是luksDump
显示的内容,只有部分是随机的。范围00001000..00020400
是 的关键材料Key Slot 0
,这应该看起来是随机的,如果有任何部分被清零或明显缺乏随机性(如出现野生纯文本字符串),则标头已损坏。
如果您不使用美国布局,请尝试该布局以及您通常使用的任何布局。键盘布局问题也是密码短语停止工作的常见原因。在这种情况下,它有助于多次添加相同的密码(每个布局一个),这样 LUKS 就会接受它,无论当前哪个布局处于活动状态。