Вопрос или проблема
Мне пришлось сбросить Windows к заводским настройкам, используя опцию Сохранить мои файлы, и я потерял свою WSL-инстанцию, забыв создать резервную копию/экспорт WSL-инстанции перед сбросом ПК (файлы все еще находятся в моем профиле пользователя, но WSL больше не распознает их).
Есть ли способ заново подключить WSL-инстанцию в моей новой копии Windows после того, как я убедился, что WSL, Docker и Hyper-V включены в Windows?
Я предлагаю сделать это следующим образом:
- Установить ненастоящую дистрибуцию той же версии Linux
- Выключить WSL2 с помощью
wsl --shutdown
- Заменить файл
ext4.vhdx
новой дистрибуции на ваш старый- Папка установки дистрибуции обычно хранится
в папке с названием, похожим на (чтобы избежать путаницы, я предлагаю выяснить, где находится стараяext4.vhdx
, прежде чем устанавливать новую):%LocalAppData%\Packages\CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc\LocalState
- Папка установки дистрибуции обычно хранится
Для тех, кто сделал то же самое, что и я, и не сохранил файловую систему вручную.
Откройте проводник файлов и попробуйте искать ext4.vhdx
. Скорее всего, вы найдете файл с файловой системой WSL в C:\Windows.old\Users\ВашПользователь\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState
Ответ или решение
Восстановление WSL2 после сброса Windows с опцией «Сохранить мои файлы»
Восстановление службы Windows Subsystem for Linux (WSL) после сброса системы – задача, требующая внимательного подхода. Опция «Сохранить мои файлы» в процессе сброса оставляет личные данные, однако настройки и установленные приложения могут быть удалены. Если вам потребовалось сбросить систему и вы забыли сделать резервную копию вашего экземпляра WSL, пересоздание окружения возможна. Ниже представлены пошаговые инструкции по восстановлению WSL2.
Шаг 1: Убедитесь в наличии необходимых компонентов
Перед началом убедитесь, что в вашей системе включены все необходимые компоненты:
- WSL: Убедитесь, что установлена последняя версия Windows и выполнена активация WSL.
- Docker: Если вы используете Docker в связке с WSL, убедитесь, что он установлен и работает.
- Hyper-V: Проверьте, что Hyper-V также активирован, так как это требуется для работы WSL2.
Шаг 2: Поиск старого файла ext4.vhdx
Если файл вашей WSL-файловой системы был удалён, возможно, он всё ещё хранится в резервной копии, созданной во время сброса системы. Чтобы его найти:
- Откройте проводник Windows.
- Попробуйте выполнить поиск по вашему компьютеру с запросом
ext4.vhdx
. Обратите внимание на возможное нахождение файла в каталогеC:\Windows.old\Users\Ваше_Имя_Пользователя\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState
.
Шаг 3: Установка временной (dummy) дистрибуции Linux
- Установите новую дистрибуцию Linux из Microsoft Store, которая соответствует вашей предыдущей версии (например, Ubuntu).
- После завершения установки, откройте PowerShell или командную строку и выполните команду:
wsl --shutdown
Эта команда завершит все экземпляры WSL2.
Шаг 4: Замена ext4.vhdx
- Перейдите в каталог установки новой дистрибуции, который обычно находится по следующему пути:
%LocalAppData%\Packages\CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc\LocalState
- В этом каталоге найдите файл
ext4.vhdx
и создайте его резервную копию на случай, если что-то пойдёт не так. - Замените новый файл
ext4.vhdx
на тот, который вы нашли на этапе 2. Данный файл содержит все ваши файлы и настройки из предыдущего экземпляра WSL.
Шаг 5: Запуск WSL
После замены файла выполните следующую команду в PowerShell или командной строке для перезапуска WSL:
wsl
Проверьте, что ваши файлы и настройки доступны. Если вы всё сделали правильно, ваш экземпляр WSL должен снова корректно работать.
Заключение
Процедура восстановления WSL2 после сброса системы может показаться сложной, однако следуя вышеописанным шагам, можно восстановить доступ к своей файловой системе WSL и сохранённым данным. В будущем рекомендуется регулярно выполнять резервное копирование WSL-экземпляров, чтобы избежать потери данных при подобных операциях сброса системы.