我尝试了校验和 Fedora Workstation 29 和 Fedora KDE Plasma,但它总是失败。我做错了什么,教程不完整还是服务器中的文件已损坏?
细节:
我在 Powershell 中使用 Windows -> 命令:
对于 KDE:
$image = "Fedora-KDE-Live-x86_64-29-1.2.iso"
$checksum_file = ""Fedora-Spins-29-1.2-x86_64-CHECKSUM"
$sha256 = New-Object -TypeName System.Security.Cryptography.sha256CryptoServiceProvider $expected_checksum = ((Get-Content $checksum_file | Select-String -Pattern $image) -split " ")[0].ToLower()
$download_checksum = [System.BitConverter]::ToString($sha256.ComputeHash([System.IO.File]::ReadAllBytes("$PWD\$image"))).ToLower() -replace '-', ''
echo "Download Checksum: $download_checksum"
Download Checksum: 5f7103a79e705bc1be95b7a2350b82cae857196542396cec0e3e7dfd7d16815a
echo "Expected Checksum: $expected_checksum"
Expected Checksum: #
if ( $download_checksum -eq "$expected_checksum" ) { echo "Checksum test passed!" } else { echo "Checksum test failed." }
Checksum test failed.
对于工作站:
$image = "Fedora-Workstation-Live-x86_64-29-1.2.iso"
$checksum_file = "Fedora-Workstation-29-1.2-x86_64-CHECKSUM"
$sha256 = New-Object -TypeName System.Security.Cryptography.sha256CryptoServiceProvider
$expected_checksum = ((Get-Content $checksum_file | Select-String -Pattern $image) -split " ")[0].ToLower()
$download_checksum = [System.BitConverter]::ToString($sha256.ComputeHash([System.IO.File]::ReadAllBytes("$PWD\$image"))).ToLower() -replace '-', ''
echo "Download Checksum: $download_checksum"
Download Checksum: 653cc283749100e9b46625d23938ff890ae29482bef142f5a0f99c5a5ddc03e9
echo "Expected Checksum: $expected_checksum"
Expected Checksum: #
if ( $download_checksum -eq "$expected_checksum" ) {echo "Checksum test passed!"} else {echo "Checksum test failed."}
Checksum test failed.
编辑:这个答案是假设 iso 检查是在 Linux 中进行的。原来是在 Windows 中。所以本地下载目录可能与我提到的不同(只需替换您的实际下载目录),并且 Windows 可能未与校验和实用程序捆绑在一起。
免费的校验和实用程序很容易获得。我已经离开 Windows 一段时间了,但只是谷歌“windows sha256 checksum”,那里有大量的链接和建议。这些都是简单的实用程序,因此即使是旧的建议也可能没问题。您不需要任何花哨的东西;在您的 Windows 版本中运行并计算 sha256 哈希的任何东西。所以你的 windows 命令可能与我下面显示的不同;只需按照您使用的实用程序的简单说明进行操作即可。
每隔一段时间,我都会遇到同样的问题,即 iso 校验和不匹配。Fedora 似乎经常发生这种情况。我发现,虽然许多发行版已经使检查程序变得无懈可击(几乎没有机会获得损坏或被篡改的 iso),但它们为良好的 isos 引入了多个潜在的故障点。这似乎是这里的情况。对于一个好的 iso,复杂的过程失败了。
正如背景一样,校验和可让您验证 iso 是否未损坏。直到最近,发行版才提供校验和,这样您就可以验证您是否下载了一个好的 iso。但是,iso 有可能被篡改,校验和文件也有可能被篡改。因此,一些发行版已经制定了一些复杂的程序,使您能够很好地保证与 iso 进行比较的校验和未被篡改。
即使没有这些保护措施,也很难对文件进行这种“无法检测”的篡改。反复验证使得任何此类篡改都可以很快被发现,并且新程序的存在甚至阻止了黑客尝试。所以我不再搞乱那些容易出问题的程序,而是直接用旧方法将 iso 校验和与发布的值进行比较。(所以我只有 99.999% 免受破坏,而不是 99.999999999%;我过着野蛮的生活。)
发布的校验和位于与 iso 相同的存储库中的一个文件中。当您下载 iso 时,Fedora 会将您带到一个页面,其中包含校验和文件的下载链接,该文件现在应该已经在您的下载目录中。
您遵循的过程已经提取了已发布的校验和值,这些值显示在您的问题中。我刚刚测试了 KDE,其校验和开始
5f7103a...
您可以自己验证工作站 iso。只需打开一个终端并导航到您的下载目录(这通常是默认下载位置)。如果是,并且您的终端默认打开到您的主目录,只需输入:
(注意大写)。要验证下载位置,请键入:
你应该看到它。
不同的发行版使用不同的校验和。Fedora 的是 sha256。您可以使用内置命令生成校验和:
它需要一分钟来处理文件,并且会显示校验和值。将其与同一 iso 的发布值进行比较。如果它们匹配,则您下载损坏的 iso 的可能性很小。您下载带有伪造校验和的被破坏的 iso 的机会(如果它发生了,它还没有被捕获)的可能性微乎其微。