我遇到的问题类似于无法读取 /dev/mapper/veracrypt1上的超级块,但根本无法读取映射器设备。可以读取底层物理磁盘。即Veracrypt 可以解密加密的容器,但不能从中返回单个字节。
进一步来说:
- Ubuntu 服务器 18.04,带有四个使用 Veracrypt 1.23 完全加密的磁盘。
- 一个磁盘掉电后挂载失败。
- 由于无法快速找出故障磁盘出了什么问题,我重新创建了 veracrypt 分区并重新复制了上面的数据。
- 第二次断电后,两个磁盘无法挂载。一个和以前一样,又一个。
- 在两个失败中,第一个有一个加密分区,另一个是完全加密的。(所以他们有不同的设置。)
- 由于无法读取超级块错误,Veracrypt 挂载失败。
- 使用选项进行安装
--filesystem=none
并允许访问映射器设备。 - 结果
/dev/mapper/veracrypt1
无法用普通工具检查或修复,mke2fs, e2fsck
因为它根本无法读取。 - 即使
dd
从/dev/mapper/veracrypt1
失败。尝试 syslog 时填充FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
,Sense Key : Medium Error [current]
和Add. Sense: Unrecovered read error - auto reallocate failed
消息。 dd
从底层硬盘驱动器设备/dev/sde
或/dev/sdb1
正常工作,并允许以加密形式读取整个磁盘。
我怀疑某种硬件故障,但是:
- SMART 报告两个故障磁盘从未出现过任何问题。也可以如上所述阅读它们。
- 故障磁盘连接到不同的 SATA 卡,并且两者都是连接到各自卡的唯一磁盘。
我很迷惑。任何想法可能会发生什么以及尝试什么?
原来这是一个记忆错误的案例。
我注意到 syslog 中各种服务的随机崩溃,并开始怀疑是内核恐慌导致了导致文件系统损坏的重新启动。
更换了内存模块,突然你可以从加密的容器中读取并按照can't read superblock on /dev/mapper/veracrypt1中的说明修复文件系统。
还启用了 apport 以捕获未来的核心转储。