我刚刚将我的 Debian 系统更新为 Bullseye,使用 5.10.0-13-amd64 内核无法再访问我的加密根盘。
我仍然可以使用以前版本的 5.4.0-0.bpo.2-amd64 内核启动。
报告的错误是“错误分配加密 tfm”和“本地加密卷的依赖失败”。
它没有说明依赖是什么。有人怀疑缺少加密模块,但检查 initrd 内容似乎都在那里。
LUKS 标头如下所示:
LUKS header information
Version: 2
Epoch: 4
Metadata area: 16384 [bytes]
Keyslots area: 16744448 [bytes]
UUID: 27d09a50-bc61-473e-8c45-12295f45a319
Label: (no label)
Subsystem: (no subsystem)
Flags: (no flags)
Data segments:
0: crypt
offset: 16777216 [bytes]
length: (whole device)
cipher: aes-xts-plain64
sector: 512 [bytes]
Keyslots:
0: luks2
Key: 512 bits
Priority: normal
Cipher: aes-xts-plain64
Cipher key: 512 bits
PBKDF: argon2i
Time cost: 4
Memory: 735048
Threads: 4
...
initrd 中的加密模块(使用 dracut 构建并包括我强制输入的 cbc.ko)是:
kernel/arch/x86/crypto
kernel/arch/x86/crypto/aesni-intel.ko
kernel/arch/x86/crypto/crc32c-intel.ko
kernel/arch/x86/crypto/crct10dif-pclmul.ko
kernel/arch/x86/crypto/glue_helper.ko
kernel/arch/x86/crypto/sha256-ssse3.ko
kernel/crypto
kernel/crypto/aes_generic.ko
kernel/crypto/af_alg.ko
kernel/crypto/algif_hash.ko
kernel/crypto/algif_skcipher.ko
kernel/crypto/ansi_cprng.ko
kernel/crypto/async_tx
kernel/crypto/async_tx/async_memcpy.ko
kernel/crypto/async_tx/async_pq.ko
kernel/crypto/async_tx/async_raid6_recov.ko
kernel/crypto/async_tx/async_tx.ko
kernel/crypto/async_tx/async_xor.ko
kernel/crypto/authenc.ko
kernel/crypto/cbc.ko
kernel/crypto/cmac.ko
kernel/crypto/crc32c_generic.ko
kernel/crypto/crct10dif_common.ko
kernel/crypto/crct10dif_generic.ko
kernel/crypto/cryptd.ko
kernel/crypto/crypto_simd.ko
kernel/crypto/drbg.ko
kernel/crypto/ecc.ko
kernel/crypto/ecdh_generic.ko
kernel/crypto/essiv.ko
kernel/crypto/xor.ko
kernel/crypto/xts.ko
kernel/drivers/crypto
kernel/drivers/crypto/ccp
kernel/drivers/crypto/ccp/ccp.ko
kernel/drivers/crypto/padlock-aes.ko
kernel/lib/crypto
kernel/lib/crypto/libaes.ko
x86_64-linux-gnu/libcrypto.so -> libcrypto.so.1.1
x86_64-linux-gnu/libcrypto.so.1.1
我不确定发生了什么变化。如果有人可以提供帮助,将不胜感激。
通过反复试验并将内核模块与 ArchLinux 系统进行比较,我发现将 ecb 和 ccm 模块添加到 initrd 允许系统启动。