Как разобрать Wsl/InstallDistro/VerifyChecksum/TRUST_E_BAD_DIGEST без отключения проверки: фиксируем канал загрузки, версию WSL, образ GitHub-hosted runner и безопасный повтор на новой виртуальной машине.
Не превращайте проверку в препятствие, которое нужно обойти
Код появляется на этапе проверки загруженного объекта, поэтому безопасная реакция — прекратить установку и сохранить контекст, а не отключать контроль. Не редактируйте манифест, не подменяйте ожидаемый digest, не переносите случайно скачанный пакет между заданиями и не используйте неофициальное зеркало. Один повтор допустим только как диагностическое наблюдение. Если повтор прошёл, это не доказывает, что первый отказ был ложным; если снова не прошёл, это также не называет виновным сеть, WSL или GitHub. Запишите полный код ошибки и этап, но не публикуйте URL временной загрузки, идентификатор worker или данные репозитория.
Что означает код и чего он не доказывает
Microsoft определяет TRUST_E_BAD_DIGEST как результат, при котором цифровая подпись объекта не прошла проверку. В строке WSL дополнительно виден этап VerifyChecksum, но из этих двух фактов нельзя вывести конкретную причину несовпадения. Возможные объяснения должны оставаться гипотезами до данных: изменившийся объект, неполная загрузка, рассинхронизация метаданных или дефект конкретной версии. Не называйте событие атакой и не объявляйте пакет вредоносным по одному коду. Для отчёта достаточно отметить, совпадает ли формат ошибки в двух запусках; сами длинные digest лучше передавать только в предназначенный канал поддержки, если их запросили.
Матрица runner, версии и канала загрузки
В журнале Set up job зафиксируйте название и версию runner image, версию Windows и WSL, имя дистрибутива и способ установки. Документация WSL различает обычную установку и параметр web-download, поэтому это две отдельные строки матрицы, а не взаимозаменяемые «исправления». GitHub сообщает, что стандартный hosted job обычно получает новую виртуальную машину, а образы обновляются регулярно. Повтор на новой VM полезен только вместе с точным image label: иначе меняются сразу среда и время. Не добавляйте произвольные ретраи до успеха. Два контролируемых запуска дают больше информации, чем серия, скрывающая долю отказов.
Пакет для эскалации и критерий остановки
Соберите короткую таблицу: время UTC, версия runner image, Windows, WSL, дистрибутив, канал загрузки, итог и точный код. Укажите, была ли VM новой, но удалите worker ID, регион, имя организации, репозиторий, токены и временные ссылки. Приложите ссылку на официальный образ runner, а не полный лог задания. Остановитесь, если следующий шаг требует отключить проверку подписи, принять изменённый digest или раскрыть приватный workflow. Такой набор позволяет владельцам WSL и runner images сопоставить версии, не подменяя расследование догадкой и не превращая временный успех повторного запуска в доказанное исправление.
Материал подготовлен редакцией VOne с применением ИИ для структуры матрицы; значение кода, команды WSL и свойства hosted runner вручную сверены по официальным документам, issue использован только как обезличенный сигнал.
Источники и проверка
- Microsoft Learn — Certificate and Trust Return Values проверено 2026-08-07
- Microsoft Learn — Basic commands for WSL проверено 2026-08-07
- GitHub Docs — GitHub-hosted runners проверено 2026-08-07
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.