我只是无法在Ubuntu 18.04的新映像中安装Docker(在Virtualbox中,使用Vagrant)。 我正在使用官方网站上的说明:
或来自https://github.com/docker/docker-install的简短命令:
curl -fsSL https://get.docker.com -o get-docker.sh && sudo sh get-docker.sh
并且总是遇到相同的错误-哈希和不匹配:
Failed to fetch https://download.docker.com/linux/ubuntu/dists/bionic/pool/stable/amd64/docker-ce_19.03.8~3-0~ubuntu-bionic_amd64.deb Hash Sum mismatch
Hashes of expected file:
- SHA512:600f2d9b51024e5866a6256f2d08b4e733a6c8428e334d81de483a7138cbe9db00e8d67673a88d46c80ef0aa673e2f0183f8fd58226575a3a6a843f955c49e2a
- SHA256:22fe06851dde23200c835641e234760bbb60b79abc3b2a1fbbd1a9b0f1a2e9d0
- SHA1:7292df34a82e58cab0e45af61036ec19c81eb199 [weak]
- MD5Sum:8d62aefa851deb2f0739b4a1fd232322 [weak]
- Filesize:22879338 [weak]
Hashes of received file:
- SHA512:265e3e4f877e4d060098d88527258335a08c9b421fabd5573bb5c951fd337c2d157c418132ff6a54568e85c6bd0da3e1b66c51196410016b4b409d1cef2df4cd
- SHA256:3d15d2e2a7bacc0840aea09400970328d853eb369585e97ce33c8bebbc5c4d37
- SHA1:da5b39535801e35493cd2f7c6f2b176263bd7da4 [weak]
- MD5Sum:a4e2e8ec89b2d98c218b3931d7845f50 [weak]
- Filesize:22879338 [weak]
Last modification reported: Wed, 11 Mar 2020 19:46:26 +0000
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
答案 0 :(得分:5)
我也在多个Linux发行版中看到大量软件包的问题。全部在Windows 10上的VirtualBox 6.1.6中。 错误包括哈希总和不匹配,LZMA压缩损坏,GZIP损坏和Squashfs解压缩失败。基本上所有涉及校验和的东西。
我似乎不太可能下载4个发行版(和数十个软件包),而且它们都存在问题。禁用Hyper-V似乎可以改善。
答案 1 :(得分:3)
我在Windows 10 Update 2004上遇到问题。更新软件存储库索引和进行安装时,校验和不匹配。
问题实际上是由于联网和Windows的“自动调整”参数引起的。
您可以在提升的命令提示符下查看当前状态:
netsh int tcp show global
Receive Window Auto-Tuning
上的 normal
产生了问题。通过将其设置为disabled
,对我来说问题就不复存在了。
您可以通过在提升权限的命令提示符下执行以下命令来更改它。
netsh int tcp set global autotuninglevel=disabled
答案 2 :(得分:2)
好的,据我所知,这是Virtualbox的错。
因为当我在同一框中使用hyperv
提供程序时,在Vagrant中没有看到此问题。
Virtualbox的版本为6.1.4 r136177 (Qt5.6.2)
。
我检查了虚拟操作系统如何下载软件包(仅通过使用wget通过直接链接下载它),我发现下载的软件包的哈希值与原始哈希值确实不同(但大小绝对相等)。 我已经在主机操作系统中下载了相同的软件包,并且哈希值与原始值匹配。
输出错误和虚拟OS内已下载软件包的哈希和(与原始版本不同)
在主机操作系统上下载的软件包的哈希值(等于原始值):
答案 3 :(得分:2)
我也经常遇到这些问题!
我的设置是在Win10主机上运行Vagrant 2.2.7的Virtual Box 6.1.6。
使用上述想法,问题可能是Virtual Box而非Ubuntu固有的,我卸载了Virtual Box 6.1.6,然后安装了旧版本的Virtual Box(6.0.10),然后重新安装了Vagrant 2.2.7。我还从Windows卸载了Hyper-V。
在进行了这些系统和软件更改后,Vagrant的自动Docker配置按预期工作,没有任何哈希不匹配消息。这对我有用,我希望对其他人也有帮助。
答案 4 :(得分:1)
对于仍然对此有疑问的任何人,我都通过禁用HyperV使其正常工作(正如大多数人已经建议的那样)。但是,在我的设置中,使用上述方法禁用HyperV实际上并没有禁用HyperV,因为我的Windows机器同时将HyperV用于CredentialGuard和Secure Boot,这两个都需要在实际上完全禁用HyperV之前禁用
如果在高架终端中运行systeminfo.exe
显示A hypervisor has been detected. Features required for Hyper-V will not be displayed
,则说明HyperV没有完全禁用。禁用凭据保护和安全启动以及几次重新启动(以及已经提到的所有禁用HyperV的命令),对我来说解决了所有问题。
仅供参考,如果HyperV被完全禁用,您应该看到
Hyper-V Requirements: VM Monitor Mode Extensions: Yes
Virtualization Enabled In Firmware: Yes
Second Level Address Translation: Yes
Data Execution Prevention Available: Yes
运行systeminfo.exe
答案 5 :(得分:1)
对于仍然出现此错误的任何人,它已在最新版本的 VirtualBox 中修复(至少从 6.1.16 版开始)。检查您的版本是否已过期。
答案 6 :(得分:0)
在新的Debian VM(VBox)amd64(32GB VDI)中出现相同的问题。
sh get-docker.sh
...
E: Failed to fetch https://download.docker.com/linux/debian/dists/buster/pool/stable/amd64/containerd.io_1.2.13-1_amd64.deb Hash Sum mismatch
Hashes of expected file:
- SHA512:e0f8eb0ed3bd881bf5f278f3736da3e4fb05410014a0103301c135a33061945e013bcf8a9cd704d9d6b4fa088d478ebea27e86e466889d0194a8cbb77e94efdf
- SHA256:a4f244216e54a8a47f2dc5c57acb4cb48a779c54a8588ea2d55c40a57092baf6
- SHA1:90611afda0acabae485f871b09e4c1eba0ac4dc0 [weak]
- MD5Sum:78a039cf82b1bd4a285114bdd030982e [weak]
- Filesize:20114318 [weak]
Hashes of received file:
- SHA512:41c516c077d9941b55b605d4c83a9462c2ec52089f8af55618e5335da7d272d33d57fdd14a51b5a5e433ad6d9671e1a0063f9edeaa8c31525f56474b6ac1d875
- SHA256:57080e5482d92e74c3095b948fc0ba827f43b7b03c8825e5a64b7ef058b5434c
- SHA1:4f114ab71f4622f5785da726b822ad213ec77d44 [weak]
- MD5Sum:9a5d02cb5624219e6715875cc4bc8673 [weak]
- Filesize:20114318 [weak]
Last modification reported: Tue, 03 Mar 2020 04:24:01 +0000
E: Failed to fetch https://download.docker.com/linux/debian/dists/buster/pool/stable/amd64/docker-ce-cli_19.03.8~3-0~debian-buster_amd64.deb Hash Sum mismatch
答案 7 :(得分:0)
好,就在这里。
研究了最有帮助的@Kurt Le Breton的答案并反复测试后,我的结论如下。
Virtual Box的最新值为6.1.12,这带来了上述哈希总和不匹配的问题。实际上,似乎整个6.1.xx都存在此问题。
因此,请转到上一个6.0 version。但是,当您发出此无用的命令时,无用的对象会在您的脸上吐出以下错误。
There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.
Command: ["startvm", "40f50d63-6d70-4ac9-b0d6-02dcf1cdce7c", "--type", "headless"]
Stderr: VBoxManage.exe: error: Call to WHvSetupPartition failed: ERROR_SUCCESS (Last=0xc000000d/87) (VERR_NEM_VM_CREATE_FAILED)
VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component ConsoleWrap, interface IConsole
现在要解决此问题,您需要摆弄Hyper-v设置。您需要以管理员身份运行以下命令。
bcdedit /set hypervisorlaunchtype off
运行该命令后,需要重新启动计算机。 有了这个,您的Vagrant应该可以毫无抱怨地运行,并且docker应该安装在您的VM上,而没有任何哈希总和不匹配错误。
我使用6.0.24(它是最新的6.0版本)进行了测试,到目前为止,一切看起来都很正常。
但是,有一个陷阱。将hypervisorlaunchtype设置为off后,Docker桌面将无法启动。您现在收到此错误。当您尝试在Windows上为Linux容器启动Docker时,将收到此错误。对于Windows,这不是问题。
An error occured. Cannot enable Hyper-V service.
所以现在您需要将其重置为原始状态。
bcdedit /set hypervisorlaunchtype auto
这次注意 auto 而不是 off 。
同样,您需要成为管理员才能运行此程序,运行之后,您必须重新启动计算机。
因此,工作流应首先将其设置为关闭,启动您的虚拟机,然后使用vagrant为他们配置docker,然后最后将hypervisorlaunchtype设置回auto。
答案 8 :(得分:0)
我遇到相同的问题,并尝试了上述解决方案。它们都不适合我的情况。我将盒子更改为Debian。所有问题都消失了。
答案 9 :(得分:0)
我在使用 Docker 或 PHP 时遇到了同样的问题(Debian sury depo - Sury.org)
HyperV 已在我的 Windows 上禁用。但是我在VirtualBox下一直有这个问题。
我在 Virtualbox 机器配置中解决了这个问题:
<块引用>“系统”>“处理器”>“启用 PAE/NX”选项。
然后重新启动您的虚拟机,启动 apt install(或升级)命令,它应该可以工作了。
答案 10 :(得分:-1)
这是与我相同的错误。哈希总和不匹配...
初始化WSL2之后,Oracle VM固件运行良好。
-禁用Windows Hyper-v