磁力下载完先别急着看:文件校验与完整性检查怎么做
BT 下载本身就带校验,为什么还要再查一遍
BT 协议的每个分片都有 SHA1 校验值,下载器收完一块会自己核对,理论上文件是完整的。但现实中出问题的情况不少:下到 99% 强制停止、硬盘有坏道、文件从移动硬盘拷来拷去、用网盘中转被二次压缩、或者下载器版本有 bug 写错了偏移。这些环节出问题,下载器不会报警,你打开才发现视频花屏、压缩包 CRC 错误。
所以我一般在两种情况下会额外校验:一是大文件,几十 G 的影视合集、系统镜像这类;二是别人传给我的文件。
下载器自带的校验怎么用
qBittorrent 右键任务,选“强制重新校验”,它会从头扫一遍所有分片,把损坏的块标出来重下。比特彗星类似,右键有“重新检查完整性”。这一步花的时间取决于硬盘速度,机械盘 20G 大概几分钟。
Transmission 可以在终端用 transmission-remote -t 序号 --verify。命令行版 aria2 没有分片校验,只能靠下载完成后的哈希值对。
手动校验:对哈希值
正规发布的资源,发布页通常会给出 MD5 或 SHA256。Windows 上用 certutil -hashfile 文件名 SHA256,macOS 和 Linux 用 shasum -a 256 文件名,几秒钟出结果,和发布页那一串比对,一位都不能差。
注意别只看长度对就放心。哈希值错一个字符整串都不一样,必须完整比对。有些发布页给的是 MD5,强度不如 SHA256,但用来判断文件有没有传坏完全够用。
压缩包和视频的快速自检
压缩包不用完整解压就能测。7-Zip 右键选“测试压缩文件”,或者命令行 7z t 包名,它会读一遍所有数据并报告 CRC 错误,速度比解压快得多。WinRAR 也有测试功能,遇到损坏会指出是哪个分卷出的问题。
视频没法算标准哈希,因为容器封装差异太大,实用的办法是拖进度条:从头、中间、结尾各跳一次,看能不能正常解码。某个位置卡住或者花屏,基本就是那块数据坏了。也可以用 ffmpeg 跑一遍 ffmpeg -v error -i 文件 -f null -,它能报出具体的损坏时间点。
校验不过怎么办
先在下载器里重新校验一次,让它把坏块补下来,这一步能解决大部分问题。如果反复校验都失败,说明做种的人手里也是坏文件,或者索引本身就是拼凑的,这时候别硬撑,换个资源更快。
还有一种情况是硬盘本身的问题。同一个盘上多个文件都校验失败,那要怀疑有没有坏道,用 CrystalDiskInfo 看一眼健康状态,别等到数据全丢了才后悔。
magnet:?xt=urn:btih:7c1e3a5b9d2f4c6e8a0b1d3f5c7e9a1b3d5f7c9e&dn=auvcili-verify-demo
该字段为演示用的占位示例代码,本站不制作、不存储、不提供任何资源文件。