跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 有没有在文件复制过程中同时生成 MD5 的软件?
未分類
19 4 月 2020

有没有在文件复制过程中同时生成 MD5 的软件?

有没有在文件复制过程中同时生成 MD5 的软件?

資深大佬 : autoxbc 55

一块冷备盘中有 500G 的镜像文件,需要复制到另一块冷备盘中,两个盘的传输速度都是 100MB/s

单次复制需要时间:500*1024/100/60 = 85 分钟
生成 MD5 校验:85 分钟
复制然后生成 MD5:85*2 = 170 分钟

如果复制的同时生成 MD5,可以节省大量时间,有没有这类软件
最好是 Windows 下的,这样对 NTFS 读写安全一点

大佬有話說 (16)

  • 資深大佬 : xupefei

    真能省时间吗。
    复制文件需要写入 500G。MD5 需要读取硬盘 500GB。
    在复制文件的时候 HDD 占用是 100%,这时进行读取必定牺牲写入速度。换句话说,复制文件时间会变长。
    具体会变多长呢?当然是 170 分钟。

  • 資深大佬 : winterbells

    @xupefei 他是想说在内存里算 md5 吧,省一次读取

  • 資深大佬 : xupefei

    @winterbells 但是在内存里 md5 只能保证读取没错,不能保证写入没错……
    单单保证读取没错又没啥意义,毕竟读取时底层已经校验过了。

  • 主 資深大佬 : autoxbc

    @xupefei 不用检验写入,主要需要生成 MD5

    说个题外话,写入检验的软件如何保证穿透缓存的?

  • 資深大佬 : Sylv

    现成软件估计是没有,需求太小众了,自己写个 Python 脚本啥的不是太难。

  • 資深大佬 : xupefei

    @autoxbc dcfldd 可以,但是只有 linux 版。
    穿透缓存可以用系统提供的 API, 例如 Win32 的 CreateFile 有个 FILE_FLAG_NO_BUFFERING 选项可以关闭系统缓存。

  • 資深大佬 : eason1874

    MD5 是分块计算的,一边复制一边计算是可能的,但我搜了一圈没搜到现成软件,不知道是不是搜索词不对。

    刚看到一个叫 TeraCopy 的软件,有 Windows 版,支持 10 种哈希算法校验,看几个讨论都说 xxHash 比 md5 快,你可以试试。

  • 主 資深大佬 : autoxbc

    @Sylv 想过用 node 写,不过一旦有隐性 bug 就是灾难性的。希望是成熟一点的方案,至少被很多人用过的

  • 資深大佬 : lostpg

    有个软件能够在复制以后自动帮你做一遍校验,很方便,但是我现在在卫生间,等我出来了就报上软件名

  • 資深大佬 : lostpg

    @eason1874 对对我说的也是 teracopy。

  • 資深大佬 : SoloCompany

    cat file1 | tee file2 | md5sum > file2.md5 ?

  • 資深大佬 : ipwx

    一开始看 1L 的评论觉得他在无理取闹,按照主的字面需求,只要生成 MD5 就行了,根本没有 1L 说的问题。

    细细一品,卧槽,我怎么觉得主的需求很奇葩。。。 不把文件完整地存进第二张盘,然后清空缓存,再读出来,然后再算 MD5,就根本起不到校验拷贝操作的正确性吧。。

  • 資深大佬 : eason1874

    @ipwx #12 主这个需求确实很可能是不合理的。

    我刚才搜索相关软件的时候看了下那些专门做复制功能的商业软件,他们哈希校验都是 after copy,免费版付费版都没有边复制边校验,说明这个做法很可能有致命缺陷,只是我们不熟悉不知道。

  • 資深大佬 : ipwx

    @eason1874 因为边复制边校验,要么总时间更长(写入一块到目标盘、清空缓存、从目标盘读出一块;这肯定比不上先全部写入,清空缓存,然后全部读出计算 MD5 来得快),要么根本只能校验源盘而不能校验目标盘。

  • 資深大佬 : msg7086

    @xupefei @eason1874 @ipwx
    主的需求是复制时生成 MD5 而不是复制后校验写入完整。
    换句话说主对文件写入是否完整并没有需求,或者说校验写入完整和生成 MD5 本来就是分开的两个需求。

    生成 MD5 的目的是等几个月、几年以后,磁盘老化了产生 Bitflips 的时候,去检验备份是否完整。
    而你们提的校验写入完整,目的是检查当前的磁盘写入是否正确。

    假设主的冷备盘是新品品质,电脑也有 ECC,那么磁盘写入是否正确其实是不需要检查的。

    主的要求,换句话说,其实是生成一个 MD5 文件,然后把源文件和 MD5 文件一起复制到新硬盘里。

    ==========

    至于复制时计算 MD5,其实只要空余内存大点,复制的时候源数据都会缓存的,直接在旁边跑一个有暂停功能的校验软件就行了。让校验软件的速度和复制进度一样,两个软件会共享读取的数据的。

    如果不想手动操作,那就还是老老实实自己写代码实现功能吧。

  • 資深大佬 : ahhui

    自己写代码分分钟的问题,都是现成的库

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具