Не удается установить Docker - несоответствие суммы хэша (Ubuntu 18.04, Vagrant, Virtualbox)

Я просто не могу установить Docker в свежий образ Ubuntu 18.04 (в Virtualbox, используя Vagrant). Пользуюсь инструкцией с официального сайта:

https://docs.docker.com/install/linux/docker-ce/ubuntu/

Или короткую команду из 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?

person James Bond    schedule 04.04.2020    source источник
comment
Я была такая же проблема. Посмотрите этот ответ здесь, он его решает. В частности, для хоста Windows 10 с использованием Virtualbox. На мой взгляд, когда я задал этот вопрос, некоторые пакеты работали нормально, но Docker - нет. Ключом является отключение Hyper-V и Зеленая черепаха   -  person RyanQuey    schedule 23.05.2020
comment
@RyanQuey Однако этот ответ вообще не является решением. WSL2 включен специально, и оба должны работать в одной системе. А Hyper-V даже не включен. Тем не менее, я сталкиваюсь с этой ошибкой во время установки ядра на Virtual Box 6.1.8.   -  person Akito    schedule 02.06.2020


Ответы (11)


Я также вижу эту проблему с большим количеством пакетов в нескольких дистрибутивах Linux. Все в VirtualBox 6.1.6 в Windows 10. Ошибки включают несоответствие хеш-суммы, повреждение сжатия LZMA, повреждение GZIP и сбои распаковки Squashfs. В основном все, что связано с контрольной суммой.

Кажется маловероятным, что я скачал 4 дистрибутива (и десятки пакетов), и все они неисправны. Отключение Hyper-V действительно улучшает ситуацию.

person Silver    schedule 13.05.2020

Хорошо, ребята, насколько я понимаю, это вина Virtualbox. Потому что я не вижу этой проблемы в Vagrant, когда я использую поставщика hyperv в том же самом поле.

Версия Virtualbox - 6.1.4 r136177 (Qt5.6.2).

Я проверил, как виртуальная ОС загружает пакеты (просто загрузив его по прямой ссылке с помощью wget), и увидел, что хеш-сумма загруженного пакета действительно отличается от оригинала (но размер абсолютно одинаковый). Я загрузил тот же пакет в ОС хоста, и хеш-сумма совпадает с оригиналом.

Ошибка вывода и хеш-сумма загруженного пакета внутри виртуальной ОС (отличается от оригинала):

Хеш-сумма загруженного пакета внутри виртуальной ОС

Хеш-сумма загруженного пакета в ОС хоста (равна исходной):

Хеш-сумма загруженного пакета в ОС хоста

person James Bond    schedule 19.04.2020
comment
Спасибо за эту расширенную отладку! Это проливает свет на проблему. - person Akito; 02.06.2020

У меня тоже постоянно были эти проблемы!

Моя установка была Virtual Box 6.1.6 с Vagrant 2.2.7, работающей на хосте Win10.

Используя указанную выше идею о том, что проблема может быть свойственна Virtual Box, а не Ubuntu, я удалил Virtual Box 6.1.6, затем установил более старую версию Virtual Box (6.0.10) и переустановил Vagrant 2.2.7. Я также удалил Hyper-V из Windows.

После внесения этих системных и программных изменений автоматическая подготовка Docker для Vagrant работала, как ожидалось, без каких-либо сообщений о несоответствии хэша. Это сработало для меня, и я надеюсь, что это поможет и кому-то другому.

person Kurt Le Breton    schedule 03.05.2020
comment
Похоже, что последняя версия Virtual Box 6.1.6 не работает. Возможно, это не совпадение, учитывая, что 616 - это настоящее число дьявола (а не ошибочное 666). - person Akito; 02.06.2020

У меня были проблемы с Windows 10, обновление 2004. Я получал несоответствие контрольной суммы при обновлении индекса репозитория программного обеспечения и при установках.

На самом деле проблема была связана с сетью и параметром автонастройки Windows.

Вы можете проверить текущее состояние в командной строке с повышенными привилегиями:

netsh int tcp show global

Receive Window Auto-Tuning на normal создали проблемы. Установив его на disabled, проблема исчезла.

Вы можете изменить его, выполнив следующую команду в командной строке с повышенными привилегиями.

netsh int tcp set global autotuninglevel=disabled
person Christof Schöll    schedule 21.06.2020

Для тех, у кого все еще есть проблемы с этим, мне удалось заставить его работать, отключив HyperV (как уже предлагало большинство людей). Однако в моей настройке отключение HyperV с использованием упомянутых подходов фактически не отключило HyperV, поскольку моя машина с Windows использовала HyperV как для CredentialGuard, так и для безопасной загрузки, оба из которых необходимо было отключить, прежде чем 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

person P.Sauerborn    schedule 11.09.2020

Хорошо, вот оно.

После изучения наиболее полезного ответа @Kurt Le Breton и повторного тестирования я пришел к следующему выводу.

Последняя версия Virtual Box в настоящее время - 6.1.12, и это создает указанную проблему несоответствия суммы хэша. На самом деле кажется, что весь 6.1.xx дает эту проблему.

Поэтому перейдите к предыдущей версии 6.0. Но когда вы вводите эту команду vagrant up, vagrant выплевывает вам прямо в лицо следующую ошибку.

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 должен работать без жалоб, а докер должен быть установлен на вашей виртуальной машине без каких-либо ошибок Hash Sum Mismatch.

Я тестировал с помощью 6.0.24 , которая является последней версией 6.0, и пока все выглядит как файл.

Но тут есть одна загвоздка. После того, как вы отключите hypervisorlaunchtype, рабочий стол докера не запустится. Вы получаете эту ошибку сейчас. И вы получите эту ошибку, когда попытаетесь запустить Docker в Windows для контейнеров Linux. Для windows это не проблема.

An error occured. Cannot enable Hyper-V service.

Произошла ошибка. Невозможно включить службу Hyper-V с рабочего стола докера

Итак, теперь вам нужно вернуть его в исходное состояние.

bcdedit /set hypervisorlaunchtype auto

Обратите внимание на авто на этот раз вместо выкл.

Опять же, вам нужно быть администратором, чтобы запустить это, и после запуска вам придется перезагрузить компьютер.

Таким образом, рабочий процесс должен состоять в том, чтобы сначала отключить его, запустить виртуальную машину и настроить их с помощью докера с помощью vagrant, а затем, наконец, вернуть для hypervisorlaunchtype значение auto.

person VivekDev    schedule 18.07.2020

Для тех, кто все еще сталкивается с этой ошибкой, она исправлена ​​в последней версии VirtualBox (по крайней мере, начиная с версии 6.1.16). Проверьте, не устарела ли ваша версия.

person jhwa    schedule 01.01.2021

Такая же проблема здесь в новой виртуальной машине Debian (VBox) amd64 (32 ГБ 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

person Khalifa    schedule 18.04.2020

Я столкнулся с той же проблемой и попробовал вышеуказанные решения. ни один из них не работает в моих делах. Меняю коробку на Debian. Все проблемы исчезли.

person Jack Liu Shurui    schedule 31.10.2020

У меня была такая же проблема с Docker или PHP (Debian sury depo - Sury.org)

HyperV уже был отключен в моей Windows. Но у меня всегда была эта проблема под VirtualBox.

Я решил это в конфигурации машины Virtualbox:

Система ›Процессор› Включите опцию PAE / NX.

Затем перезагрузите виртуальную машину, запустите команду apt install (или upgrade), и она должна работать.

person BeWog    schedule 30.12.2020

Это такая же ошибка, как и у меня. Несоответствие хеш-суммы ...

После того, как я инициализировал WSL2, Oracle VMware работала нормально.

-Отключить Windows Hyper-v

person nuno    schedule 08.07.2020
comment
ПРИВЕТ! Добро пожаловать в SO! Спасибо за ответ, но не забудьте подробно объяснить, в чем проблема и почему ваш ответ будет работать. - person elersong; 08.07.2020