我家里有一个全盘加密的 Ubuntu 16.04 系统,运行在 SSD 上,它有无法纠正的媒体错误,因此必须更换。
所以我习惯ddrescue
将所有分区复制到新的 SSD,然后ddrescue
使用填充模式用字符串“BAD SECTOR ”填充原始磁盘上所有不可读的扇区。此模式的目的是允许稍后在文件系统再次挂载时通过搜索包含“BAD SECTOR BAD SECTOR BAD ...”等的文件来搜索损坏的数据。
就我的情况而言,原始磁盘上只有大约 600kb 的不可读数据,分布在大约 50 个位置,因此应该有一些磁盘上的数据损坏某处。
不幸的是,由于我修改了加密数据的纯文本,因此在已安装的 LUKS 上搜索“BAD SECTOR”似乎不起作用(这是有道理的)。但我的文件都不是不可读的(=由于纯文本数据损坏而无法解密),至少此命令没有返回任何错误:
find $HOME -type f | while read X ; do cat "$X" > /dev/null ; done
此外,安装debsums
(根据原始 MD5sum 验证软件包安装的所有文件)仅返回两个经过修改的文件,这两个文件看起来都没有被修复。所以我的系统似乎仍然很好。
那么我的文件系统/数据损坏在哪里?或者更好的是,如果我知道磁盘上坏扇区的物理位置,我该如何找出问题所在?