Что означает ошибка 0x8007019e в WSL
Ошибка 0x8007019e (с человеко-читаемым описанием "Invalid registry data") возникает, когда Windows Subsystem for Linux (WSL) не может корректно прочитать или интерпретировать данные о зарегистрированных дистрибутивах в реестре Windows. Она обычно проявляется при попытке запуска дистрибутива из командной строки (wsl, wsl <дистрибутив>), PowerShell или через ярлык в меню "Пуск". Вместо запуска Linux-окружения вы видите сообщение об ошибке. Проблема может появиться после major-обновления Windows, сбоя системы или некорректного прерывания работы WSL.
Причины возникновения
Причина почти всегда в повреждении или отсутствии критически важных записей реестра в ветке HKCU\Software\Microsoft\Windows\CurrentVersion\Lxss (для текущего пользователя) или HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss (для всех пользователей). Конкретные сценарии:
- Некорректное обновление Windows. Процесс обновления может перезаписать, удалить или "сломать" структуру ключей реестра, отвечающих за WSL.
- Ручное удаление или перемещение папки дистрибутива. Дистрибутив WSL хранится в виртуальной файловой системе (VHDX-файл для WSL2) или в папке
Packages. Если переместить или удалить эту папку, не обновив соответствующие пути в реестре, WSL не сможет её найти. - Повреждение системных файлов WSL. Повреждение файлов компонента
Windows Subsystem for Linux(например,lxssmanager.dll) может привести к ошибке при чтении реестра. - Конфликт прав доступа. У текущего пользователя или службы WSL нет прав на чтение определённых ключей в указанной ветке реестра.
Способы решения
Способ 1: Базовая перезагрузка и проверка компонента
Это самый простой шаг, который решает проблему в редких случаях "зависших" состояний.
- Полностью завершите работу WSL. Откройте PowerShell от имени администратора и выполните:
Эта команда остановит фоновую службу (wsl --shutdownLxssManager) и все запущенные дистрибутивы. - Перезагрузите компьютер. После перезагрузки попробуйте снова запустить дистрибутив. Если ошибка persists, переходите к следующему шагу.
- Убедитесь, что компонент включён. Перейдите в Панель управления -> Программы и компоненты -> Включение или отключение компонентов Windows. Найдите "Подсистема Windows для Linux" и "Платформа виртуальной машины". Оба должны быть включены. Если вы их выключали/включали — перезагрузите ПК.
Способ 2: Восстановление записей реестра вручную (если дистрибутив на месте)
Если папка с вашим дистрибутивом (например, Ubuntu) физически существует на диске, можно попробовать восстановить связь, создав недостающую запись в реестре. Внимание: работа с реестром требует осторожности.
- Найдите путь к установке дистрибутива. Обычно для WSL2 это путь вида:
Или для WSL1:C:\Users\<ВашеИмя>\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu...\\LocalState\
Внутри будет папка с именем дистрибутива (например,C:\Users\<ВашеИмя>\AppData\Local\Lxss\Ubuntu) или файлext4.vhdx(для WSL2). Запомните полный путь. - Создайте резервную копию ветки реестра. В редакторе реестра (
regedit) найдитеHKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss. Щёлкните правой кнопкой по папкеLxss-> Экспорт. Сохраните файл.regв надёжном месте. - Удалите все подразделы (Key) внутри
Lxss. Щёлкните правой кнопкой по каждому подразделу с длинным GUID-именем и выберите Удалить. Это сбросит все записи о дистрибутивах для текущего пользователя. - Перезапустите WSL. В PowerShell выполните:
WSL автоматически попытается обнаружить установленные дистрибутивы по их папкам и заново зарегистрировать их в реестре. Если дистрибутив найден, он появится в списке (со статусомwsl --list --allStopped). Попробуйте его запустить.
Способ 3: Чистый импорт дистрибутива через tar-архив
Если у вас есть экспортированный ранее tar-архив дистрибутива, это самый чистый способ восстановления.
- Экспортируйте (если ещё можно запустить на другом ПК). На рабочем компьютере, где дистрибутив запускается, выполните:
wsl --export <ИмяДистрибутива> C:\путь\к\резервной\копии\ubuntu.tar - Импортируйте на проблемном ПК. На проблемном компьютере, где дистрибутив не запускается, но его папка с данными (например,
ext4.vhdx) у вас есть или вы создали архив:wsl --import <НовоеИмя> C:\путь\к\папке\для\новой\установки C:\путь\к\ubuntu.tar<НовоеИмя>— любое имя, под которым дистрибутив будет зарегистрирован (например,Ubuntu_Fixed).- Вторая команда создаст совершенно новую запись в реестре и связанную с ней файловую структуру. Старая повреждённая запись будет проигнорирована.
Способ 4: Полная переустановка WSL и дистрибутивов
Если ни один из предыдущих способов не помог, или вы не имеете резервной копии, придётся начинать с чистого листа.
- Удалите компонент WSL. Откройте "Включение или отключение компонентов Windows" и снимите галочку с "Подсистема Windows для Linux". Нажмите ОК и перезагрузите компьютер.
- Удалите остатки вручную (опционально, но рекомендуется). После перезагрузки удалите папки:
C:\Users\<ВашеИмя>\AppData\Local\Packages\(все папки, начинающиеся сCanonicalGroupLimited,Microsoft.Windows.Linux, и т.д.)C:\Users\<ВашеИмя>\AppData\Local\Lxss\(если существует)C:\Program Files\WindowsApps\(папки, связанные с дистрибутивами из Store). Осторожно, это может повлиять на другие приложения из Store.
- Включите компонент заново. Снова зайдите в "Включение компонентов" и поставьте галочку на "Подсистема Windows для Linux". Перезагрузите ПК.
- Установите дистрибутив заново. Скачайте нужный дистрибутив (например, Ubuntu) из Microsoft Store или установите через командную строку:
Это создаст абсолютно чистую запись в реестре и новую файловую систему.wsl --install -d Ubuntu
Профилактика
Чтобы избежать повторения ошибки 0x8007019e в будущем:
- Не перемещайте и не удаляйте вручную папки дистрибутивов (
Packages\...,Lxss). Для удаления дистрибутива всегда используйте командуwsl --unregister <Имя>или настройки Windows. - Регулярно создавайте резервные копии важных дистрибутивов. Используйте команду
wsl --export. Это сохранит все файлы и настройки в один переносимый tar-архив. - Перед крупными обновлениями Windows (например, переход на новую версию) экспортируйте все критические дистрибутивы. После обновления, если возникнут проблемы, вы сможете быстро их импортировать.
- Избегайте прерывания работы WSL (кнопка "Снять" в консоли, принудительное завершение процесса
vmmem). Всегда завершайте сессии корректно (exitв терминале Linux илиwsl --shutdown).