校验和失败 – Fedora 29 或 spin KDE Plasma

校验和失败 – Fedora 29 或 spin KDE Plasma

我尝试过对 Fedora Workstation 29 和 Fedora KDE Plasma 进行校验,但总是失败。是我做错了什么吗?教程不完整吗?还是服务器中的文件已损坏?

细节:

我使用 Windows -> Powershell 中的命令:

对于 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.

答案1

编辑:这个答案是在假设 iso 检查是在 Linux 中进行的情况下编写的。结果发现是在 Windows 中进行的。因此,本地下载目录可能与我提到的不同(只需替换您的实际下载目录),并且 Windows 可能没有附带校验和实用程序。

免费的校验和实用程序随处可见。我已经远离 Windows 一段时间了,但只要谷歌一下“windows sha256 校验和”,就会出现大量链接和推荐。这些都是简单的实用程序,因此即使是旧的推荐也可能没问题。您不需要任何花哨的东西;任何在您的 Windows 版本中运行并计算 sha256 哈希的东西。因此,您的 Windows 命令可能与我下面显示的不同;只需按照您使用的实用程序的简单说明进行操作即可。


每隔一段时间,我就会遇到同样的问题,即 iso 校验和不匹配。这似乎在 Fedora 上经常发生。我发现,虽然许多发行版都使检查过程万无一失(几乎没有机会获得损坏或篡改的 iso),但它们为良好的 iso 引入了多个潜在的故障点。这里的情况似乎就是这样。复杂的过程导致良好的 iso 无法正常运行。

就像背景一样,校验和可以让您验证 iso 是否未损坏。直到最近,发行版才提供校验和,以便您可以验证是否下载了好的 iso。但是,iso 可能会被篡改,校验和文件也可能被篡改。因此,一些发行版制定了略显复杂的程序,使您能够很好地确保与 iso 进行比较的校验和没有被篡改。

如果没有这些保护措施,即使对文件进行这种“不可检测”的篡改也非常困难。反复验证使任何此类篡改都很快被发现,而新程序的存在使黑客不敢尝试。所以我不再摆弄容易出问题的程序,而是直接用老方法将 iso 校验和与已发布的值进行比较。(所以我只能 99.999% 地免受破坏,而不是 99.999999999%;我的生活很狂野。)

已发布的校验和位于与 iso 相同的存储库中的文件中。当您下载 iso 时,Fedora 会将您带到一个页面,其中包含校验和文件的下载链接,并且该文件现在应该已经位于您的下载目录中。

您遵循的程序已经提取了已发布的校验和值,这些值显示在您的问题中。我刚刚测试了 KDE,其校验和开始5f7103a... 于您可以自己验证工作站 iso。

只需打开终端并导航到您的下载目录(通常是默认的下载位置)。如果是这样,并且您的终端默认打开到您的主目录,只需输入:

cd Downloads 

(注意大写)。要验证下载的位置,请键入:

dir *.iso 

你应该看到它。

不同的发行版使用不同的校验和。Fedora 使用的是 sha256。您可以使用内置命令生成校验和:

sha256sum *.iso

它会花一分钟来处理文件,然后会显示校验和值。将其与同一 iso 的已发布值进行比较。如果它们匹配,则您下载了损坏的 iso 的可能性微乎其微。您下载了带有伪造校验和的被破坏 iso(并且如果发生这种情况,尚未被检测到)的可能性微乎其微。

相关内容