我刚刚在从 Microsoft 下载 ISO 时遇到了一个棘手的问题。我成功地将其刻录到可重写的 DVD 上,并将内容复制到另一台机器上的本地硬盘上,但当我运行它们时,它们已损坏。原来下载的内容已被截断。
现在,好的,有时会发生这种情况 - 但令我惊讶的是,截断的文件(仅略大于实际 ISO 的 60%)刻录成功,并且似乎向我提供了一个合理的文件系统,以至于我可以(显然)成功复制文件。
那么,我可以通过某种方式测试文件以查看它是否完整?MS 网站没有提供任何有关预期大小的信息,因此我正在寻找一个通用解决方案:给定一个可能被截断也可能未被截断的 ISO 文件,是否有某种方式可以判断?常用的 CD/DVD(数据)格式是否包含有关磁盘上应该有多少数据的嵌入信息,或者更好的是,某种 CRC?
可以检测出大多数截断图像的解决方案将被接受,它不需要完美。(不过,我更喜欢不会产生误报的解决方案。)
[附录:将刻录了截断映像的磁盘与从完整映像中提取的文件进行比较,表明许多文件的数据块已被随机信息替换,这些信息可能来自之前刻录到同一张可重写磁盘的内容。]
答案1
一种快速而简单的方法:如果你安装7-Zip,您可以右键单击 ISO 并将其作为存档打开 - 我通常会这样做来解压它(作为刻录到 DVD 的替代方法)。从那里,您可以使用工具栏中的“测试”命令测试存档。
答案2
假设源为你提供了正确的输出,最简单的方法是对完成的文件进行哈希处理如果哈希值匹配,您就可以开始了。在这个特定的例子中,我知道微软发布了他们的主要 ISO 的 MD5 或 SHA-1 哈希值。(我相信现在大多数提供 ISO 文件的合法软件供应商都可以轻松获得这些哈希值。)
编辑:这些信息可能不是直接在下载页面上提供的,但如果你仔细查找,通常可以找到。这实际上是绝对确保你拥有所需内容的唯一 100% 万无一失的方法。
答案3
下载中心提供的 ISO 与您从 MSDN 获得的 ISO 相同。
MD5 是61c2088850185ede8e18001d1ef3e6d12daa5692 vs2010sp1dvd1.iso
希望对您有所帮助。如果您没有 MD5,可以在此处下载。
http://corz.org/windows/software/checksum/simple-checksum.php
答案4
如果源没有提供任何校验和,您应该首先检查文件大小,看看是否匹配。如果不匹配,则意味着您的下载过早结束。
此外,在 Linux 中,您可以使用wget
, 和-c
命令继续中止的下载。我从未尝试继续从其他应用程序开始的下载(主要是浏览器),但我认为应该没问题。
我总是使用wget
它作为下载管理器,因为它很少失败,并且允许继续中止的下载。即使不每天都使用它,人们的工具中也应该有一个下载管理器,以便持续下载大文件。