假设底层存储设备发生未检测到的位翻转,但没有报告错误。
- LUKS 对此有何反应?
- 它是否检测为错误?dmesg/syslog 中有任何内核消息吗?
- 它会忽略并解密无效数据吗?
- LUKS 中有任何类型的校验和验证吗?
我询问的是默认密码 aes-xts-plain64。
答案1
LUKS 不应决定什么是或不是位翻转。这应该在较低级别检测,例如硬盘控制器或基于闪存的设备的闪存转换层。
大容量存储设备自出现以来就一直存在可恢复错误的问题。数十年来,人们一直使用纠错码来检测这些错误,并在可能的情况下纠正这些错误。这就是需要检测和纠正轻微“位衰减”的地方。
为了让 LUKS 执行纠错,它必须复制(可能)已经存在的纠错方案。这些方案涉及开销——对于每 X 个字节的数据,还必须维护 Y 个字节的错误检测和纠正数据。LUKS 没有为 ECC 开销保留空间,因此它无法纠正错误。