Вопрос или проблема
У меня установлена Windows Subsystem for Linux уже давно. Сегодня, после чистой загрузки Windows 10, она не запускается, с обычным сообщением об ошибке:
В Windows Subsystem for Linux не установлены дистрибутивы.
Дистрибутивы можно установить, посетив Microsoft Store:
https://aka.ms/wslstore
Нажмите любую клавишу, чтобы продолжить…
В моем %LOCALAPPDATA%\lxss
видно, что WSL все еще полностью там. Могу ли я как-то все же запустить это? Если нет, то если я выполню новую установку, могу ли я как-то смонтировать старые каталоги так, чтобы не только все данные, но и все разрешения и т.д. были видны, и переместить их в новую установку?
Мне не нужно это разъяснять, но когда WSL не работает, любой резервный инструмент, который должен быть запущен из-под WSL, тоже не будет работать.
Я не решаюсь просто попробовать lxrun /install
, опасаясь, что это уничтожит все мои данные.
Без какой-либо очевидной причины оно снова начало работать. Я все равно хотел бы знать, что произошло и что это исправило, чтобы знать, что делать, если это случится снова в будущем.
Я понимаю, что у вас есть корневая папка вашего дистрибутива, но вы не можете запустить ее с помощью bash
или wsl
. Думаю, вы можете попытаться заново зарегистрировать старую папку установки, используя lxRunOffline
Регистрация существующей установки
# lxrunoffline register -n <distro name> -d <basepath>
C:> lxrunoffline register -n copy -d %LOCALAPPDATA%\Packages\...\LocalState
Я думаю, что BasePath
– это родительская папка для вашей папки rootfs
. Например, если корневая папка расположена здесь
%LOCALAPPDATA%\Packages\...\LocalState\rootfs
Базовый путь должен быть
%LOCALAPPDATA%\Packages\...\LocalState
У меня была установка Ubuntu, и путь, где я мог восстановить свои данные, был таким:
C:\Users\[username]\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_[someID]\LocalState\rootfs
Ответ или решение
Для восстановления вашей устаревшей версии Windows Subsystem for Linux (WSL) без потери данных, можно воспользоваться инструментом LxRunOffline. Давайте рассмотрим поэтапно, как произвести эту операцию, сохранив все ваши данные и разрешения.
Фаза 1: Анализ проблемы
-
Проблема: После перезагрузки Windows 10 система выдает сообщение об отсутствии установленных дистрибутивов Linux. Это может привести к опасениям относительно доступа к вашим данным, находящимся в WSL.
-
Первоначальный ресурс: Папка
%LOCALAPPDATA%\lxss
все еще содержит данные, что указывает на наличие всех файлов.
Фаза 2: Регистрация существующей установки через LxRunOffline
Для восстановления доступа к ранее установленной WSL можно воспользоваться инструментом LxRunOffline, чтобы зарегистрировать существующую установку WSL. Это откроет возможность восстановить работу без повторной установки, что теоретически сохранит все данные и разрешения.
-
Установка LxRunOffline: Прежде всего, скачайте и установите LxRunOffline с GitHub по этой ссылке.
-
Регистрация дистрибутива:
- Откройте командную строку от имени администратора.
- Выполните команду для регистрации существующего дистрибутива:
lxrunoffline register -n <имя_дистрибутива> -d <путь_к_папке_среды>
Пример:
lxrunoffline register -n ubuntu -d %LOCALAPPDATA%\Packages\CanonicalGroupLimited.UbuntuonWindows_[someID]\LocalState
-
Определение правильного пути: Ваш путь должен указывать на родительскую директорию, где находится
rootfs
. Обычно это%LOCALAPPDATA%\Packages\CanonicalGroupLimited.UbuntuonWindows_[someID]\LocalState
.
Фаза 3: Восстановление работоспособности
После успешной регистрации, попробуйте снова запустить WSL с использованием команд bash
или wsl
.
Фаза 4: Заключение и рекомендации
-
Мониторинг и диагностика: Опыт подобных сбоев подчеркивает важность регулярного мониторинга состояния системы. Периодически проверяйте целостность ваших данных в WSL и делайте бэкапы вне системы WSL.
-
Поиск причин: Если сбой устранен, но причины точно не установлены, рекомендуется следить за обновлениями и исправлениями для WSL. Постарайтесь установить, какие изменения в системе могли повлиять на работу WSL.
Таким образом, следуя этим шагам, вы сможете восстановить доступ к вашей WSL без потери данных, обеспечив сохранность всех имеющихся файлов и их настроек.