我的笔记本电脑中有两个分区,其中EFI/boot
驻留在第一个分区上,其余Linux目录(包括root)驻留在第二个分区中,第二个分区使用dm-crypt和LUKS2加密。
/dev/nvme0n1p1: UUID="7AF4-D518" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="4679ac1e-34a2-4ef8-aa7b-3d650ed32cca"
/dev/nvme0n1p2: UUID="440abce6-d1ac-41de-8ae1-ebaefa51823c" TYPE="crypto_LUKS" PARTLABEL="Linux filesystem" PARTUUID="9bc4085a-05ce-41dc-9b4e-ed75c5901965"
我具有无需使用口令即可自动解密的启动项(我使用USB,但是在USB开始发出问题之后,我已经存储并使用了EFI分区本身中的密钥文件)。我的启动项位于/boot/loader/entries/arch-zen-auto.conf
:
title Arch Linux (Zen) Auto
linux /vmlinuz-linux-zen
initrd /intel-ucode.img
initrd /initramfs-linux-zen.img
options cryptdevice=UUID=440abce6-d1ac-41de-8ae1-ebaefa51823c:luks:allow-discards cryptkey=/dev/disk/by-uuid/7AF4-D518:vfat:keyfile root=/dev/mapper/luks rootflags=subvol=@ rd.luks.options=discard rw mem_sleep_default=deep
因此,我可以引导和使用我的系统而无需提供密码。几个月后,我忘记了密码:(。我也找不到标题备份。
有没有一种方法可以使用我在EFI分区中拥有的现有密钥文件添加另一个密码短语,而无需使用我忘记的密码短语?自从忘记了原始密码后,我有什么选择?
我试图使用现有的密钥文件打开分区,即使不起作用:
x1# cryptsetup luksOpen /dev/nvme0n1p2 test --master-key-file /dev/disk/by-uuid/7AF4-D518
Volume key does not match the volume.
# or
x1# cryptsetup luksOpen /dev/nvme0n1p2 test --master-key-file /boot/keyfile
Volume key does not match the volume.
我的,/etc/fstab
如果有帮助,无论如何:
# <file system> <dir> <type> <options> <dump> <pass>
# /dev/mapper/luks UUID=50d843f7-2f8e-4c56-ac3d-0b5a7d35110e
/dev/mapper/luks / btrfs rw,noatime,nodiratime,compress=lzo,ssd,space_cache,subvolid=256,subvol=/@,subvol=@ 0 0
# /dev/nvme0n1p1 UUID=7AF4-D518
/dev/nvme0n1p1 /boot vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 2
# /dev/mapper/luks UUID=50d843f7-2f8e-4c56-ac3d-0b5a7d35110e
/dev/mapper/luks /home btrfs rw,noatime,nodiratime,compress=lzo,ssd,space_cache,subvolid=257,subvol=/@home,subvol=@home 0 0
# /dev/mapper/luks UUID=50d843f7-2f8e-4c56-ac3d-0b5a7d35110e
/dev/mapper/luks /data btrfs rw,noatime,nodiratime,compress=lzo,ssd,space_cache,subvolid=259,subvol=/@data,subvol=@data 0 0
# /dev/mapper/luks UUID=50d843f7-2f8e-4c56-ac3d-0b5a7d35110e
/dev/mapper/luks /var btrfs rw,noatime,nodiratime,compress=lzo,ssd,space_cache,subvolid=258,subvol=/@var,subvol=@var 0 0
我在所有行中都加了注释,/etc/crypttab
所以那里什么也没有。
我尝试过的方法(一些对我没有帮助的LUKS(不是LUKS2)相关信息):
cryptsetup luksAddKey <DEVICE> --master-key-file <(dmsetup table --showkey /dev/mapper/<MAP> | awk '{print$5}' | xxd -r -p)
是否可以在未提供当前密钥的情况下将密钥添加到打开的luk音量中?--key-file
根据手册:
luksAddKey
<设备> [<具有新密钥的密钥文件>]添加一个新的密码短语。现有的密码必须以交互方式或通过提供
--key-file
。可以交互方式指定要添加的新密码,也可以从位置参数给定的文件中读取。
您应该使用以下命令:
cryptsetup luksAddKey --key-file /boot/keyfile --verify-passphrase /dev/nvme0n1p2
注意:--master-key-file
表示内核用于进行实际加密/解密的最终对称密钥,并且始终以受保护的形式存储,应谨慎处理。该主密钥以前可以dmsetup table --showkeys
与LUKS1一起从内核的设备映射器中检索,但是在内核> = 4.10上运行的LUKS2(除非使用--disable-keyring
)打开时不再可用:该条目现在是一个仅写的内核密钥环名称。密钥环的内容由内核的设备映射器使用,但不适用于用户空间,root包括在内。因此,如果所有密码短语/密钥文件都丢失了,并且没有较旧的LUKS标头转储且具有以前已知的密码短语/密钥文件可用,那么即使LUKS2卷仍处于打开状态,似乎也没有办法恢复主密钥(但如果已打开,其数据仍可用于紧急备份)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句