You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

寻求可定位.RAW镜像与写入分区后文件系统差异的工具

定位RAW镜像与写入后分区的文件差异方案

核心思路

要对比RAW镜像和写入分区后的文件变化,本质是对比两个文件系统的内容——一个是镜像封装的文件系统,一个是挂载后的目标分区文件系统。直接做块级差异对比效率低且难以关联到具体文件,因此优先从文件系统层面入手更高效。

可用工具与操作步骤

1. 双挂载后用rsync直接对比

这是最直观的方式,适合能同时挂载镜像和目标分区的场景:

  • 挂载RAW镜像到临时目录:
    mkdir /mnt/image_raw
    mount -o loop image.raw /mnt/image_raw
    
  • 挂载目标分区(建议只读挂载,避免对比过程中文件被修改):
    mkdir /mnt/target_part
    mount -o ro /dev/sdaX /mnt/target_part
    
  • 用rsync的模拟同步模式列出差异:
    rsync -avn --delete /mnt/image_raw/ /mnt/target_part/
    
    参数说明:-a保留文件权限、时间戳等元数据,-v输出详细信息,-n仅模拟执行不实际修改文件,--delete包含对比被删除的文件。输出会清晰标记新增、修改、删除的文件路径。

2. 生成文件哈希清单后对比

如果无法同时挂载两者,可分别生成文件哈希清单再做比对:

  • 为RAW镜像生成哈希清单:
    mount -o loop image.raw /mnt/image_raw
    cd /mnt/image_raw
    find . -type f -exec sha256sum {} \; > /tmp/image_hashes.txt
    umount /mnt/image_raw
    
  • 为目标分区生成哈希清单:
    mount -o ro /dev/sdaX /mnt/target_part
    cd /mnt/target_part
    find . -type f -exec sha256sum {} \; > /tmp/target_hashes.txt
    umount /mnt/target_part
    
  • 用diff对比两个清单:
    diff /tmp/image_hashes.txt /tmp/target_hashes.txt
    
    差异行对应的就是内容变更的文件,同时可通过文件名对比找出新增或删除的文件。

3. 块级对比工具(进阶场景)

如果需要排查文件系统元数据的变更,可使用块级对比工具,但需要分区与镜像大小一致:

cmp -l image.raw /dev/sdaX | head -20

这种方式输出的是块偏移和字节差异,需要结合文件系统结构分析才能关联到具体文件,适合对文件系统原理熟悉的用户。

注意事项

  • 操作前务必确保目标分区处于只读挂载或已卸载状态,防止对比过程中文件被意外修改。
  • 若RAW镜像包含多个分区,需先用fdisk -l image.raw找到目标分区的偏移量,再用mount -o loop,offset=偏移字节数 image.raw /mnt/image_raw挂载单个分区。
  • 针对大镜像,rsync的-n模式比生成哈希清单的速度更快。

内容的提问来源于stack exchange,提问作者bearrito

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 20:14:59