镜像质量核对
镜像做完不代表采集完成,必须核对大小、扇区数与哈希,确认镜像与原始设备一致且没有截断。核对结果要写进采集记录表:镜像缺了多少扇区,后续结论的覆盖范围就只能到那里。
基本信息
| 常用命令 | ls -l、stat、blockdev --getsz、blockdev --getsize64、sha256sum |
|---|---|
| 采集侧工具 | dd(conv=noerror,sync)、dc3dd、ddrescue、ewfacquire |
| 记录内容 | 设备路径与容量、镜像字节数、扇区数、哈希、起止时间 |
| 错误处理 | 坏道需记录并标注区间,必要时生成映射文件 |
| 权限要求 | 读取块设备与写入证据目录通常需要 root |
典型使用场景
- 采集完成后的第一时间完整性核对
- 向委托方或法院交接前核对镜像与哈希清单
- 分析开始前确认镜像覆盖范围满足问题需求
- 出现读取错误时评估结论的置信度
- 复现他人采集结果时做扇区级一致性比对
最小示例
最小示例
ls -l /evidence/sdb.dd # 镜像字节数
sudo blockdev --getsz /dev/sdb # 原始设备扇区数
sudo blockdev --getsize64 /dev/sdb # 原始设备字节数
sha256sum /evidence/sdb.dd | tee /evidence/sdb.dd.sha256 # 客户端核对哈希
sed -n '1,10p' /evidence/sdb.log # 采集日志的起止记录
df -h /evidence # 确认存储卷空间与写入状态核对项与异常
| 核对项 | 要求 | 异常表现 |
|---|---|---|
| 镜像字节数 | 等于设备容量或记录的读取范围 | 小于预期说明截断 |
| 扇区数 | 与 blockdev 输出一致 | 出现余数说明末扇区不完整 |
| 哈希值 | 采集端与核对端一致 | 两次不一致需立即重算并排查介质 |
| 采集日志 | 含起止时间与错误汇总 | 日志缺失等于过程不可验证 |
| 文件时间 | 与设备操作记录一致 | 晚于交接时间说明事后被改动 |
存在坏道的设备应配合 ddrescue 生成映射文件,把错误区间一并记录,并在报告中说明哪一时段的数据不可读。
校验哈希之前不要对镜像做任何写操作,包括挂载、扩展或格式转换;任何写入都会使原始哈希失效。
网络传输或压缩存储场景要在记录里写清转换方式;压缩包的哈希只能证明压缩包本身未被改动,不能替代镜像哈希。