使用加密的根分区启动更新的系统失败

使用加密的根分区启动更新的系统失败

我刚刚将 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

我不确定发生了什么变化;如果有人可以提供帮助,我们将不胜感激。

答案1

通过反复试验并将内核模块与 ArchLinux 系统进行比较,我发现将 ecb 和 ccm 模块添加到 initrd 可以使系统启动。

相关内容