Что означает ошибка WSL Service Failed
Ошибка WSL Service Failed (иногда с кодом 0x80070057 или аналогичным) — это сообщение от системы Windows, indicating that the Windows Subsystem for Linux service не смог запуститься. Обычно она появляется при попытке запустить дистрибутив Linux из командной строки (wsl), меню «Пуск» или через wsl.exe. Текст ошибки может варьироваться, но суть одна: служба, отвечающая за запуск виртуальной машины WSL 2 или интерфейса WSL 1, завершилась аварийно.
Симптомы:
- При вводе команды
wslилиwsl [дистрибутив]в PowerShell/CMD выводится ошибка. - В списке дистрибутивов (
wsl --list --verbose) статус указан какStoppedилиError. - Значок дистрибутива в меню «Пуск» не запускается или сразу закрывается.
Причины возникновения
Ошибка WSL Service Failed обычно вызвана одной из следующих конкретных причин:
- Повреждение файлов дистрибутива WSL. Файлы виртуального диска (
.vhdxдля WSL 2) или корневая файловая система дистрибутива повреждены, например, из-за некорректного завершения работы, сбоя диска или ручного вмешательства в папкуC:\Users\<User>\AppData\Local\Packages\<Distro>\. - Конфликт или отключение компонентов Hyper-V. WSL 2 полностью зависит от Платформы виртуальной машины (Hyper-V). Если компонент отключён, повреждён или конфликтует с другим ПО виртуализации (например, VMware, VirtualBox старших версий), служба WSL не сможет создать виртуальную машину.
- Повреждение реестра Windows, связанного с WSL. Ключи реестра, хранящие конфигурацию дистрибутивов и пути, могут быть повреждены или содержать неверные данные.
- Недостаточно прав доступа или блокировка антивирусом/брандмауэром. Запуск службы WSL требует определённых привилегий. Антивирусное ПО (особенно с активной защитой в реальном времени) или строгие политики брандмауэра могут блокировать создание виртуального адаптера или доступ к файлам.
- Устаревшая или повреждённая версия ядра WSL. Ядро Linux (
wsl.exeи связанные компоненты) было обновлено некорректно или конфликтует с версией Windows. - Недостаток системных ресурсов. Редко, но возможно: если на диске, где расположены файлы WSL, мало свободного места, или не хватает оперативной памяти для запуска виртуальной машины.
Способы решения
Представленные способы расположены от наиболее простого и быстрого к более комплексным. Начните с первого и переходите к следующему, если проблема не устранена.
Способ 1: Переустановка проблемного дистрибутива
Это самый быстрый способ, если проблема связана с повреждением файлов конкретного дистрибутива (например, Ubuntu, Debian). Внимание: этот способ удалит все данные и настройки внутри дистрибутива! Создайте резервные копии важных файлов (в /home/<user> или других папках) через \\wsl$\<DistroName>\ в Проводнике Windows.
- Откройте PowerShell или Командную строку от имени администратора.
- Узнайте точное имя вашего дистрибутива:
Найдите строку с вашим дистрибутивом (например,wsl --list --verboseUbuntu-22.04). Если он в состоянииStoppedилиError, это он. - Удалите (зарегистрируйте) дистрибутив:
Заменитеwsl --unregister Ubuntu-22.04Ubuntu-22.04на ваше имя. Это удалит запись о дистрибутиве из системы WSL и его виртуальный диск. - Переустановите дистрибутив:
- Через Microsoft Store: Откройте Store, найдите нужный дистрибутив (например, Ubuntu 22.04 LTS) и нажмите «Установить».
- Через командную строку (если Store недоступен):
wsl --install -d Ubuntu-22.04
- Запустите дистрибутив из меню «Пуск» или командой
wsl. Настройте нового пользователя и пароль.
Способ 2: Обновление и восстановление компонентов WSL
Если переустановка не помогла или вы не хотите терять данные, попробуйте обновить саму подсистему и восстановить системные компоненты.
- В PowerShell (администратор) выполните команду для принудительного обновления ядра WSL до последней стабильной версии:
wsl --update - Установите последнюю версию WSL (если доступна):
(Если у вас WSL 1, это попытается обновить конфигурацию до WSL 2, что также может помочь).wsl --set-default-version 2 - Проверьте состояние службы WSL:
Если статус неGet-Service -Name LxssManagerRunning, запустите её:Start-Service -Name LxssManager - Выполните проверку целостности системных файлов Windows. В той же PowerShell:
Дождитесь завершения (может занять 10-20 минут). Если SFC нашёл и исправил файлы, перезагрузите компьютер и проверьте WSL.sfc /scannow
Способ 3: Проверка и включение компонентов Windows
WSL, особенно версия 2, требует обязательных компонентов Windows. Их отсутствие или отключение — частая причина сбоя службы.
- Нажмите Win+R, введите
optionalfeatures.exeи нажмите Enter. - В окне «Компоненты Windows» найдите и убедитесь, что отмечены следующие пункты:
- Подсистема Windows для Linux (обязательно).
- Платформа виртуальной машины (требуется для WSL 2).
- Hyper-V (необязательно для WSL 2, но его включение часто решает проблемы с виртуализацией).
- Если какой-то компонент был не отмечен, поставьте галочку и нажмите «ОК». Windows установит выбранные компоненты и попросит перезагрузить компьютер. Сделайте это.
- После перезагрузки снова проверьте, можно ли запустить WSL.
Способ 4: Очистка реестра (для опытных пользователей)
Внимание! Неправильное изменение реестра может сделать систему неработоспособной. Создайте точку восстановления системы («Панель управления» → «Восстановление» → «Настроить» → «Создать»).
Повреждённые ключи реестра, связанные с WSL, могут блокировать запуск службы.
- Нажмите Win+R, введите
regedit, нажмите Enter. - Перейдите по пути:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss - Создайте резервную копию этого раздела: кликните правой кнопкой по
Lxss→ «Экспорт», сохраните файл.reg. - Внутри
Lxssвы увидите подразделы с буквами и цифрами (например,{GUID}). Каждый соответствует установленному дистрибутиву. Удалите все подразделы внутриLxss(клик правой кнопкой → «Удалить»). Это не удалит ваши дистрибутивы из системы, но очистит старые/повреждённые записи. - Закройте редактор реестра.
- В PowerShell (администратор) выполните:
Затем попробуйте снова запустить дистрибутив. WSL пересоздаст необходимые записи в реестре автоматически.wsl --shutdown
Способ 5: Временное отключение антивируса и брандмауэра
Некоторые сторонние антивирусы (Kaspersky, Avast, McAfee и др.) или встроенный брандмауэр Windows в строгом режиме могут ошибочно блокировать работу службы WSL или создание виртуального сетевого адаптера.
- Временно отключите ваш антивирус (обычно через иконку в системном трее → «Отключить защиту на 10-15 минут»). Не отключайте его на постоянной основе!
- Попробуйте запустить WSL. Если ошибка исчезла, добавьте исключения для папок WSL в настройках антивируса:
C:\Windows\System32\wsl.exeC:\Users\<ВашеИмя>\AppData\Local\Packages\- Папка с виртуальными дисками (по умолчанию
%USERPROFILE%\AppData\Local\Docker\wsl\илиC:\Users\<User>\AppData\Local\Microsoft\WindowsApps\).
- Также проверьте Брандмауэр Windows в режиме повышенной безопасности. Убедитесь, что нет правил, блокирующих
wsl.exeилиvmcompute.exe. Временное отключение брандмауэра для диагностики: откройте «Брандмауэр Защитника Windows» → «Включение и отключение брандмауэра Защитника Windows» → отключите для частных и публичных сетей. Не забывайте включить обратно!
Профилактика
Чтобы минимизировать риск появления ошибки WSL Service Failed в будущем:
- Не отключайте компоненты Hyper-V и «Подсистема Windows для Linux» в «Компонентах Windows», если вы используете WSL 2.
- Не удаляйте и не перемещайте вручную файлы дистрибутива из папки
AppData\Local\Packages\. Используйте командыwsl --exportиwsl --importдля переноса. - Регулярно обновляйте WSL и Windows. Выполняйте
wsl --updateраз в месяц и устанавливайте обновления Windows, особенно те, что связаны с «Платформой виртуальной машины». - Создавайте резервные копии важных данных из WSL на сторону Windows (в папку
\\wsl$\<Distro>\home\<user>\) перед крупными обновлениями Windows или сменой дистрибутива. - Если используете WSL 2, следите за свободным местом на системном диске (C:). ВIRT-диски
.vhdxмогут разрастаться. Освобождайте место в дистрибутиве (sudo apt clean,sudo du -sh /*) или уменьшайте размер диска черезwsl --shrink.