首页/安全/取证与溯源速查/读取错误清单与扇区映射
证据与报告57 条

读取错误清单与扇区映射

ddrescue 映射文件记录了每个区块的状态,可用来列出未读到区域并在补读后复查,避免错误区域被静默忽略。

取证与溯源速查安全更新于 2026-10-13

读取错误映射

介质有坏道时,采集过程会产生读取错误,每一处错误对应的扇区区间都要落到映射文件里。ddrescue 生成的 mapfile 记录了哪些区间已读、哪些失败,ddrescuelog 能把这份映射转成可读统计。错误区间直接决定分析结论能覆盖到什么程度。

基本信息

工具GNU ddrescue 及其配套的 ddrescuelog
映射文件ddrescue 采集时指定的 logfile(默认生成 .map 文件)
查看方式ddrescuelog -t 输出状态摘要,映射内容可直接按文本阅读
状态字符+ 已完成、? 未尝试、* 未裁剪、/ 未刮擦、- 坏扇区
记录要点不可读区间、重试次数、最终状态
归档要求映射文件与镜像、采集日志一并保存并计算哈希

典型使用场景

  • 采集后统计不可读区域的范围
  • 与镜像分析结果对照,判断关键数据是否落在坏区
  • 在报告的数据覆盖说明中写明缺失范围
  • 二次采集时只针对未完成区间续读
  • 评估是否需要在结论中标注更低的置信度

最小示例

最小示例
ddrescuelog -t /evidence/sdb.map                  # 状态摘要
sed -n '1,12p' /evidence/sdb.map                   # 直接阅读映射内容
grep -c '^-' /evidence/sdb.map || true             # 统计坏扇区块数量
sha256sum /evidence/sdb.map > /evidence/sdb.map.sha256   # 映射文件归档
# 对未完成区间做续读采集
ddrescue --idirect /dev/sdb /evidence/sdb.dd /evidence/sdb.map

状态字符解读

状态含义处理方式
+已成功读取可正常参与分析
?尚未尝试读取说明采集未完成,需续读
*未裁剪区间可缩小范围后重试
/未刮擦区间对剩余小区域做精细重试
-坏扇区记录区间并在报告中说明
坏区落在关键时间段内时,报告必须写明哪一段数据不可读,并说明该缺口对结论的影响范围。
对同一坏道无限重试会显著延长采集时间,还会加速老化介质劣化;重试次数应设上限,并记录重试参数。
从其它来源补齐的区间要单独标注:不同来源的字节语义不同,不能当作原设备数据直接使用。
ddrescuelog 的参数在版本间略有差异,批量统计前先用本机帮助输出确认可用选项。

易错点

  • 只归档镜像不归档映射文件:缺失区间无法界定,结论的覆盖范围也就说不清
  • 把重试失败区间当成已采集:报告里出现未标注的数据空洞,可信度会直接受损
  • 对坏道无限重试:延长采集窗口并加速介质劣化,应设上限并改用其它手段取证
  • 混淆不同来源补齐的数据:补入字节与原设备语义不同,必须单独标注来源

数据来源与参考

  • GNU ddrescue 官方文档(ddrescuelog)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌