V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
dbw9580
V2EX  ›  问与答

为什么硬盘上文件的校验和在一直变化?

  •  1
     
  •   dbw9580 · Jul 15, 2018 · 3997 views
    This topic created in 2847 days ago, the information mentioned may be changed or developed.

    从老硬盘上复制数据到新搭的 nas 上,老硬盘是 NTFS 文件系统,nas 上用 ZFS 做了 RAID-1。

    复制过程用的是 rsync,第一次复制完之后发现有些照片有损坏,遂逐个文件检查 MD5 校验和。结果居然发现源硬盘上的文件的校验和会一直变化!

    13 日晚的源文件 14 日晚用 rsync 做了复制,此时两边的校验和是一致的 15 日零点过后再检查发现源文件的校验和发生了改变

    其他文件也有这种情况,在 rsync 之后源文件的检验和会改变:

    为了防止误操作,我源硬盘从始至终都是只读挂载的。这就很难理解了…… 而且,复制后的文件都有损坏的情况,体现在照片上就是有异色条纹,或者只有一半能显示。

    是什么原因导致这种情况呢?

    14 replies    2018-07-17 04:21:17 +08:00
    gamexg
        1
    gamexg  
       Jul 15, 2018 via Android   ❤️ 1
    硬盘或内存是坏的?
    dbw9580
        2
    dbw9580  
    OP
       Jul 15, 2018
    把硬盘连到 Windows 机器上检查,文件应该是完好的,但是检验和又是完全不一样了……
    dbw9580
        3
    dbw9580  
    OP
       Jul 15, 2018 via Android
    @gamexg 我去跑个内存测试
    ryd994
        4
    ryd994  
       Jul 15, 2018 via Android   ❤️ 1
    终于遇到一个知道基本操作的,ro 挂载很正确
    当下换台电脑试试
    这就是为什么 nas 强烈推荐 ECC 内存
    另外以防万一,先买块硬盘 dd 出来,然后操作镜像
    万一真是原硬盘坏了,至少可以保全一部分
    zk8802
        5
    zk8802  
       Jul 15, 2018 via iPhone
    > 把硬盘连到 Windows 机器上检查,文件应该是完好的,但是检验和又是完全不一样了……

    你是如何确定“文件完好”的?如果确实文件完好的话,可以在 Windows 上面存一份文件的 MD5 出来,作为 groundtruth。
    dbw9580
        6
    dbw9580  
    OP
       Jul 15, 2018 via Android
    @ryd994 @gamexg 内存测试下来没有错误
    dbw9580
        7
    dbw9580  
    OP
       Jul 15, 2018 via Android
    @zk8802 这个没啥好办法吧,我就看看照片显示是否正常,pdf 之类的能不能打开。
    dbw9580
        8
    dbw9580  
    OP
       Jul 15, 2018 via Android
    不用 rsync,用 cp 或者 dd 可能会有用吗?
    dbw9580
        9
    dbw9580  
    OP
       Jul 15, 2018 via Android
    @zk8802 我把硬盘连到多台 Windows 的机器上算下 check sum 试试
    ryd994
        10
    ryd994  
       Jul 15, 2018 via Android
    @dbw9580 内存错误测不出来也很正常
    换机器,dd 一份出来固定再说
    zk8802
        11
    zk8802  
       Jul 15, 2018 via iPhone
    压缩文件大多可以进行测试,以确认文件内容是否有问题。

    数据无价,先备份吧。

    另外也可以考虑硬盘数据线的问题。可以换根线试试。
    gamexg
        12
    gamexg  
       Jul 15, 2018 via Android
    HD Tune 健康状态正常吗?
    dbw9580
        13
    dbw9580  
    OP
       Jul 16, 2018   ❤️ 2
    花了一天时间终于解决问题了,原因是之前没有安装 ntfs-3g,用的是内核自带的 ntfs 驱动,不知道为何就会导致文件损坏。安装了 ntfs-3g 之后问题就消失了。

    @zk8802
    @ryd994
    @gamexg
    谢谢各位的建议。
    zk8802
        14
    zk8802  
       Jul 17, 2018 via iPhone
    哈哈,我本来一开始想到的就是这个问题,但是以为现在没人不用 ntfs-3g 了,就没问…
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   795 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 60ms · UTC 20:43 · PVG 04:43 · LAX 13:43 · JFK 16:43
    ♥ Do have faith in what you're doing.