LUKS 全盘加密在启动时失败,但 Live CD 能够解锁分区 - Kubuntu 22.04.1 LTS

LUKS 全盘加密在启动时失败,但 Live CD 能够解锁分区 - Kubuntu 22.04.1 LTS

尝试使用 Kubuntu 启动时,我无法让 root 解密。这是一个可以使用数月的旧安装。我不记得在它停止工作之前更新了什么。我已验证这不是由于键盘布局,因为从 initramfs 使用echo -n "test1" | cryptsetup open /dev/nvme0n1p3 nvme0n1p3_crypt它也无法正常工作。从 Live-CD 或 dolphin 使用该命令有效,因此它可以解密。

在尝试了不同的方法(如 chroot 并创建新的 initramfs 和 grub-update、apt update 以及重新安装 cryptsetup 等)之后,我放弃了。

我订购了一个新的 nvme 驱动器并将其放入 PC 中。在新安装的设备上安装带有加密硬盘的 Kubuntu 22.04.1 LTS 后,在第一次重启后尝试解锁新安装的 Kubuntu 时,我收到与以前相同的错误消息。

我不知所措。这可能是硬件特有的吗?我使用的是 AMD Ryzen 5 5600X 和 MSI B550-A PRO。

编辑:来自 initramfs 下的 cryptsetup 命令 rin 的附加信息:

# cryptsetup 2.4.3 处理“cryptsetup open /dev/nvme0n1p3 nvme0n1p3_crypt --debug --verbose”
# 运行命令打开。
# 锁定内存。
# 安装 SIGINT/SIGTERM 处理程序。
# 解除信号中断阻碍。
# 为加密设备 /dev/nvme0n1p3 分配上下文。
# 尝试使用 direct-io 打开并读取设备 /dev/nvme0n1p3。
# 初始化设备映射器后端库。
# 尝试从设备 /dev/nvme0n1p3 加载任何加密类型。
# 加密后端(OpenSSL 3.0.2 2022 年 3 月 15 日 [默认])在 cryptsetup 库版本 2.4.3 中初始化。
# 检测到内核 Linux 5.15.0-43-generic x86_64。
# 加载 LUKS2 标头(修复已禁用)。
# 获取设备 /dev/nvme0n1p3 的读锁。
# 打开锁资源文件 /run/cryptsetup/L_259:3
# 验证 /dev/nvme0n1p3 的锁句柄。
# 设备 /dev/nvme0n1p3 已读取锁定。
# 尝试读取偏移量 0x0 处的主要 LUKS2 标头。
# 打开锁定的设备 /dev/nvme0n1p3
# 验证锁定的设备句柄(bdev)
# LUKS2 标头版本 2,大小为 16384 字节,校验和 sha256。
# 校验和:6369a9195ce5cecf8565547247efdee1d348591e7fda341591d1e67d8bdc24f9(磁盘上)
# 校验和:6369a9195ce5cecf8565547247efdee1d348591e7fda341591d1e67d8bdc24f9(内存中)
# 尝试读取偏移量 0x4000 处的辅助 LUKS2 标头。
# 在设备 /dev/nvme0n1p3 上重新使用 open ro fd
# LUKS2 标头版本 2,大小为 16384 字节,校验和 sha256。
# 校验和:a0619dc4d56b8426ba9a3ad7da84b62cf99295b7c0d88a40eba1f9c588c14731 (磁盘上)
# 校验和:a0619dc4d56b8426ba9a3ad7da84b62cf99295b7c0d88a40eba1f9c588c14731(内存中)
# 设备尺寸 997874204672,偏移量 16777216。
# 设备 /dev/nvme0n1p3 读取锁已释放。
# PBKDF argon2id、time_ms 2000(迭代 0)、max_memory_kb 1048576、parallel_threads 4。
# 使用令牌(任何类型)-1 激活卷 nvme0n1p3_crypt。
# dm 版本 [ opencount flush ] [16384] (*1)
# dm 版本 [ opencount flush ] [16384] (*1)
# 检测到 dm-ioctl 版本 4.45.0。
# 检测到 dm-crypt 版本 1.23.0。
# 设备映射器后端运行并启用 UDEV 支持。
# dm 状态 nvme0n1p3_crypt [ opencount noflush ] [ 16384 ] (*1)
没有可用的令牌。
# 请求交互式密码输入。
# 使用密码激活卷 nvme0n1p3_crypt [keyslot -1]。
# dm 版本 [ opencount flush ] [16384] (*1)
# dm 状态 nvme0n1p3_crypt [ opencount noflush ] [ 16384 ] (*1)
# 键槽 0 优先级 1 != 2 (必需),已跳过。
# 键槽 1 优先级 1 != 2 (必需),已跳过。
# 尝试打开 LUKS2 密钥槽 0。
# 运行 keyslot 密钥派生。
#读取键槽区域[0x8000]。
# 获取设备 /dev/nvme0n1p3 的读锁。
# 打开锁资源文件 /run/cryptsetup/L_259:3
# 验证 /dev/nvme0n1p3 的锁句柄。
# 设备 /dev/nvme0n1p3 已读取锁定。
# 在设备 /dev/nvme0n1p3 上重新使用 open ro fd
# 设备 /dev/nvme0n1p3 读取锁已释放。
# 从密钥槽 0、摘要 0 验证密钥。
# 摘要 0(pbkdf2)验证失败,结果为 -1。
# 尝试打开 LUKS2 密钥槽 1。
# 运行 keyslot 密钥派生。
#读取键槽区域[0x47000]。
# 获取设备 /dev/nvme0n1p3 的读锁。
# 打开锁资源文件 /run/cryptsetup/L_259:3
# 验证 /dev/nvme0n1p3 的锁句柄。
# 设备 /dev/nvme0n1p3 已读取锁定。
# 在设备 /dev/nvme0n1p3 上重新使用 open ro fd
# 设备 /dev/nvme0n1p3 读取锁已释放。
# 从密钥槽 1、摘要 0 验证密钥。
# 摘要 0(pbkdf2)验证失败,结果为 -1。
# 请求交互式密码输入。
# 使用密码激活卷 nvme0n1p3_crypt [keyslot -1]。
# dm 版本 [ opencount flush ] [16384] (*1)
# dm 状态 nvme0n1p3_crypt [ opencount noflush ] [ 16384 ] (*1)
# 键槽 0 优先级 1 != 2 (必需),已跳过。
# 键槽 1 优先级 1 != 2 (必需),已跳过。
# 尝试打开 LUKS2 密钥槽 0。
# 运行 keyslot 密钥派生。
#读取键槽区域[0x8000]。
# 获取设备 /dev/nvme0n1p3 的读锁。
# 打开锁资源文件 /run/cryptsetup/L_259:3
# 验证 /dev/nvme0n1p3 的锁句柄。
# 设备 /dev/nvme0n1p3 已读取锁定。
# 在设备 /dev/nvme0n1p3 上重新使用 open ro fd
# 设备 /dev/nvme0n1p3 读取锁已释放。
# 从密钥槽 0、摘要 0 验证密钥。
# 摘要 0(pbkdf2)验证失败,结果为 -1。
# 尝试打开 LUKS2 密钥槽 1。
# 运行 keyslot 密钥派生。
#读取键槽区域[0x47000]。
# 获取设备 /dev/nvme0n1p3 的读锁。
# 打开锁资源文件 /run/cryptsetup/L_259:3
# 验证 /dev/nvme0n1p3 的锁句柄。
# 设备 /dev/nvme0n1p3 已读取锁定。
# 在设备 /dev/nvme0n1p3 上重新使用 open ro fd
# 设备 /dev/nvme0n1p3 读取锁已释放。
# 从密钥槽 1、摘要 0 验证密钥。
# 摘要 0(pbkdf2)验证失败,结果为 -1。
# 请求交互式密码输入。
# 使用密码激活卷 nvme0n1p3_crypt [keyslot -1]。
# dm 版本 [ opencount flush ] [16384] (*1)
# dm 状态 nvme0n1p3_crypt [ opencount noflush ] [ 16384 ] (*1)
# 键槽 0 优先级 1 != 2 (必需),已跳过。
# 键槽 1 优先级 1 != 2 (必需),已跳过。
# 尝试打开 LUKS2 密钥槽 0。
# 运行 keyslot 密钥派生。
#读取键槽区域[0x8000]。
# 获取设备 /dev/nvme0n1p3 的读锁。
# 打开锁资源文件 /run/cryptsetup/L_259:3
# 验证 /dev/nvme0n1p3 的锁句柄。
# 设备 /dev/nvme0n1p3 已读取锁定。
# 在设备 /dev/nvme0n1p3 上重新使用 open ro fd
# 设备 /dev/nvme0n1p3 读取锁已释放。
# 从密钥槽 0、摘要 0 验证密钥。
# 摘要 0(pbkdf2)验证失败,结果为 -1。
# 尝试打开 LUKS2 密钥槽 1。
# 运行 keyslot 密钥派生。
#读取键槽区域[0x47000]。
# 获取设备 /dev/nvme0n1p3 的读锁。
# 打开锁资源文件 /run/cryptsetup/L_259:3
# 验证 /dev/nvme0n1p3 的锁句柄。
# 设备 /dev/nvme0n1p3 已读取锁定。
# 在设备 /dev/nvme0n1p3 上重新使用 open ro fd
# 设备 /dev/nvme0n1p3 读取锁已释放。
# 从密钥槽 1、摘要 0 验证密钥。
# 摘要 0(pbkdf2)验证失败,结果为 -1。
# 释放加密设备 /dev/nvme0n1p3 上下文。
# 释放设备映射器后端。
# 关闭 /dev/nvme0n1p3 的只读 fd。
# 解锁内存。
命令失败,代码为 -2(没有权限或密码错误)。

cat /proc/modules 的输出

nls_iso8859_1 16384 1-直播 0xffffffffc0146000
uas 28672 0 - 直播 0xffffffffc018e000
usb_storage 77824 2 uas,实时0xffffffffc01b6000
dm_crypt 53248 0 - 实时 0xffffffffc01a8000
hid_generic 16384 0 - 直播 0xffffffffc0210000
iommu_v2 24576 0-实时 0xffffffffc03ab000
gpu_sched 45056 0-实时 0xffffffffc02b3000
i2c_algo_bit 16384 0-实时 0xffffffffc0297000
drm_ttm_helper 16384 0 - 直播 0xffffffffc0292000
ttm 86016 1 drm_ttm_helper,直播 0xffffffffc027c000
usbhid 65536 0-实时 0xffffffffc0197000
drm_kms_helper 307200 0-直播 0xffffffffc0478000
hid 147456 2 hid_generic,usbhid,实时 0xffffffffc0169000
syscopyarea 16384 1 drm_kms_helper,实时 0xffffffffc0162000
sysfillrect 20480 1 drm_kms_helper,实时 0xffffffffc015a000
sysimgblt 16384 1 drm_kms_helper,实时 0xffffffffc0153000
fb_sys_fops 16384 1 drm_kms_helper,实时 0xffffffffc014c000
cec 61440 1 drm_kms_helper,直播 0xffffffffc0136000
crct10dif_pclmul 16384 1-实时 0xffffffffc020b000
crc32_pclmul 16384 0-实时 0xffffffffc026d000
ghash_clmulni_intel 16384 0-直播 0xffffffffc012e000
rc_core 65536 1 cec,直播 0xffffffffc08cb000
aesni_intel 376832 0 - 直播 0xffffffffc040d000
crypto_simd 16384 1 aesni_intel,实时 0xffffffffc0206000
cryptd 24576 2 ghash_clmulni_intel,crypto_simd,实时 0xffffffffc0275000
r8169 98304 0-直播0xffffffffc03e3000
drm 606208 4 gpu_sched,drm_ttm_helper,ttm,drm_kms_helper,实时 0xffffffffc02f4000
nvme 45056 0-实时 0xffffffffc02e1000
i2c_piix4 28672 0-实时0xffffffffc02d5000
ahci 45056 0-实时 0xffffffffc02c1000
gpio_amdpt 20480 0-实时0xffffffffc02ad000
xhci_pci 24576 0-实时 0xffffffffc02a2000
nvme_core 126976 1 nvme,实时0xffffffffc0248000
realtek 32768 0 - 实时 0xffffffffc023b000
libahci 45056 1 ahci,实时 0xffffffffc022a000
xhci_pci_renesas 20480 1 xhci_pci,实时 0xffffffffc0222000
wmi 32768 0 - 直播 0xffffffffc01f8000
gpio_generic 20480 1 gpio_amdpt,实时0xffffffffc0128000

相关内容