V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
wudicgi
V2EX  ›  问与答

有什么能对整个分区的文件进行 checksum 计算、存储和校验的工具吗?

  •  
  •   wudicgi · 2022-02-23 10:45:54 +08:00 · 1941 次点击
    这是一个创建于 764 天前的主题,其中的信息可能已经有所发展或是发生改变。
    需要的功能:
    - 选择一个分区,能计算所有文件的 SHA-1 或 MD5 校验值
    - 文件路径和校验值可以保存到一个纯文本文件中
    - 之后打开这个文件,可以校验部分或所有文件
    - (可选) 能检测到文件的新增、删除并更新校验值存储文件就更好了

    在 Softpedia 上搜过了,在 AlternativeTo 上也看过了十多款 wxChecksums 的替代品
    https://alternativeto.net/software/wxchecksums/

    没找到一个能满足需求的

    不知道是我没找到,还是找错方向了
    我感觉有这种工具的话,磁盘 1:1 备份时,检查两个磁盘内容是否一致的开销也能低一些,否则每次要比只能全盘比较
    16 条回复    2022-07-19 23:51:56 +08:00
    julyclyde
        1
    julyclyde  
       2022-02-23 12:40:34 +08:00
    算 checksum 也需要读整个数据的,所以其实开销没什么区别
    loading
        2
    loading  
       2022-02-23 12:51:47 +08:00
    只算现有文件效率更高啊。何必舍近求远。
    neteroster
        3
    neteroster  
       2022-02-23 12:58:31 +08:00 via Android
    了解一下 snapraid ?
    wudicgi
        4
    wudicgi  
    OP
       2022-02-23 13:01:44 +08:00
    我现在备份数据主要靠磁盘离线备份,同样的数据用 2 块磁盘存 2 份
    有点担心长时间放置后,文件内容中的某些位可能会改变
    存一份 checksum 的话,之后可以验证用
    neteroster
        5
    neteroster  
       2022-02-23 13:03:47 +08:00 via Android
    另外如果是 Linux ,你说的 1 和 2 可以这样实现

    find . -type f -print0 | sort -z | xargs -r0 sha256sum > sha256SumOutput

    校验的话考虑用 diff ?
    neteroster
        6
    neteroster  
       2022-02-23 13:06:45 +08:00 via Android   ❤️ 1
    @wudicgi #4

    你这个需求就是用 snapraid 或者 zfs 比较合适,验证的时候 scrub 一遍就知道所有文件的完整性情况
    wudicgi
        7
    wudicgi  
    OP
       2022-02-23 13:14:48 +08:00
    @neteroster 可能是用些专用工具好些。现在为了自由度高,都是用的 NTFS + 开启 BitLocker
    所以就直接去找图形界面的 checksum 工具了
    wudicgi
        8
    wudicgi  
    OP
       2022-02-23 13:27:07 +08:00
    @neteroster 换 ZFS 之类带完整性校验和文件系统现在对我来说可行性不高,还是打算继续用 NTFS
    不过你启发我应该换一个思路,不能仅仅是检查文件的完整性,如果有问题最好能修复
    我其实能损失一些空间来存储额外的校验信息
    dingwen07
        9
    dingwen07  
       2022-02-23 13:30:30 +08:00
    wudicgi
        10
    wudicgi  
    OP
       2022-02-23 14:17:32 +08:00
    顺藤摸瓜找到个 RHash, 满足主贴描述的所有需求
    https://alternativeto.net/software/rhash/about/
    https://sourceforge.net/projects/rhash/

    跨平台的一个命令行工具,虽然没有图形界面但用法挺简单的
    wudicgi
        11
    wudicgi  
    OP
       2022-02-23 14:19:53 +08:00
    RHash 是在 Hash Tools 的 AlternativeTo 页面中发现的
    https://alternativeto.net/software/hashtools/

    之前在 wxChecksums 的页面中没被列出来
    Kagari
        12
    Kagari  
       2022-02-23 15:14:05 +08:00
    rapidcrc
    HashCheck
    Md5Checker
    wudicgi
        13
    wudicgi  
    OP
       2022-02-23 16:53:04 +08:00
    @Kagari 去查了下,这几个功能都不够用,而且年代久远了
    RapidCRC 2005 年 添加目录和所有子目录内所有文件的功能没有
    HashCheck 2016 年 是个 shell 扩展,不方便用,功能也远不够
    Md5Checker 2007 年 添加目录和所有子目录内所有文件的功能没有
    neteroster
        14
    neteroster  
       2022-06-18 15:42:15 +08:00 via Android
    虽然过了这么久,最近还是对 Windows 下的完整性校验有需要,想问问楼主 @wudicgi 。看起来 RHash 确实不错,想知道小文件多的话性能咋样,因为我之前自己也写了个工具,但是大量小文件性能很差。
    wudicgi
        15
    wudicgi  
    OP
       2022-06-18 17:56:03 +08:00
    @neteroster 我用的频率很低,而且用 RHash 的场景也没有大量小文件,所以不太清楚这方面性能怎么样
    而且估计即使出现性能不佳的情况,我可能也会把它归于机械硬盘而不是软件
    totoro625
        16
    totoro625  
       2022-07-19 23:51:56 +08:00   ❤️ 1
    最近也在看这方便的内容,TeraCopy ( Windows 软件)
    可以实现分区上右击进行测试,然后生成 md5 的校验记录并保存到文件
    文件路径和校验值都在一个.md5 文件内
    直接双击打开即可自动进行文件校验
    但是只能看到文件的修改(校验错误)、删除(文件丢失)、无法识别到文件新增、无法直接更新校验值(需要再次点击测试)

    另外 snapraid 可以生成多份不可读的私有校验文件,多份不可读的私有备份包
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1791 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 16:31 · PVG 00:31 · LAX 09:31 · JFK 12:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.