下载的 ISO 为何会损坏?

下载的 ISO 为何会损坏?

可能重复:
使用 http 下载是否可能导致损坏?

我下载了 Fedora 的 ISO。打算将其作为 VM 安装。安装程序失败了 5 次。失败警告是“安装映像可能已损坏”。下载的 ISO 是如何损坏的?

(我很固执,不想再次下载这个大文件)所以最终在 5 次失败后,我再次下载 ISO...我想...也许警告是正确的。

因此,我没有盲目地相信下载的内容,而是使用提供的“sha256”校验和来验证 ISO。“!好吧,橄榄油,把我打倒!”果然,第一个下载的 ISO 未能通过校验和测试!

我的问题是这个...我的 ISO 最有可能被损坏的方式(或多种方式)是什么?

更新:

  • 下载的两个 ISO 文件的总字节数相同。
  • 我如何下载 ISO 文件?我通过浏览器中的链接下载。然后浏览器进行下载。所以 http。
  • 我的计算机如何连接到互联网,物理连接还是无线连接?无线。Wifi(不安全... 我知道不安全...)。

答案1

HTTP 和 FTP 没有内置校验和。TCP 提供了基本的校验和方法(填充和一补码加法),但这些方法无法解决数据在传输前、存储过程中(电源故障)和存储后(硬盘损坏)损坏的问题。

另一方面,BitTorrent 使用加密强度更高的方法(CRC32 或 MD5)对收到的每个块(几百千字节到几兆字节,取决于 torrent)进行校验,与 TCP 校验相比,该方法几乎可以保证正确无误。

但是,无论多少校验和都无法防止文件保存后发生损坏。(例如下载期间断电)

答案2

下载损坏文件的一种臭名昭著的方式是使用 FTP 以文本模式下载非文本文件(例如 ISO)。

在文本模式下,FTP 协议允许转换行尾,因此从 Unix 下载到 Windows 时,每个 0x0a 都会被 0x0d 0x0a(LF -> CR LF)替换,这对于二进制文件的完整性来说是灾难性的,因为 0x0A 可能作为数据的一部分出现,而不是代表换行符/换行符(LF)

答案3

与服务器的连接不良,下载程序显示已完成但实际上并未完成,文件在下载时发生更改、断开连接、下载时文件不完整...

相关内容