Как сбросить ручную установку подсистемы Windows для Linux?

Как сбросить ручную установку подсистемы Windows для Linux?

Связанный:Есть ли способ установить подсистему Windows для Linux на Win10 (v1709) без использования Магазина?

При установке дистрибутива WSLснаружиMicrosoft Store (например, в ограниченной сети, см. ссылку), многие стандартные средства взаимодействия с этим дистрибутивом недоступны. В моем примере, когда я захожу в Настройки > Приложения и функции, дистрибутив не отображается в списке, а функции управления недоступны. Если я привожу свой вручную установленный экземпляр Linux в плохое состояние, как правильно сбросить его и вернуть к новой установке?

Редактировать: Примеры «плохого состояния», с которыми мы сталкивались до сих пор, включают BSOD во время «apt-get update», что приводит к неисправимому состоянию. Также, выполнение множественных изменений конфигурации для устранения проблемы, удаление или отключение служб и установка других пакетов без тщательного отслеживания того, что было изменено, с желанием «начать заново», чтобы проверить, работает ли найденное решение само по себе..

решение1

Если мой установленный вручную экземпляр Linux окажется в плохом состоянии, как правильно сбросить его и вернуть к новой установке?

Если вы используете Windows 10 версии 1903:

wsl --unregister <DistributionName>

Если вы используете Windows 10 версии 1709, 1803 или 1809:

wslconfig /unregister <DistributionName>

Управление и настройка подсистемы Windows для Linux

решение2

Вы можете использоватьШоколадный(например, с помощью частного репозитория NuGet) и выберите образ Debian с:

choco install wsl-debiangnulinux

Но потом

  • Доступны только сочетания клавиш, такие как «WSL Terminal» и «Debian Terminal».
  • вам не будет предложено создать пользователя, запустится только оболочка root
  • Вы не найдете свой дистрибутив Linux для WSL в разделе «Настройки / Приложения и функции», а также нет «Дополнительных параметров» или «Сброса»

Кстати, командная строка wsl доступна, но тогда вам придется вручную создать учетную запись пользователя (useradd или adduser в зависимости от дистрибутива), предоставить sudo (группа sudo или sudoers) и создать /etc/wsl.confс помощью [user]раздела и default=yourlogin- см.wsl-configдокументация. В моем случае <distribution> config --default-user yourloginне имело никакого эффекта.

В случае окончательного отключения электроэнергии единственным вариантом представляется выполнение следующей последовательности действий:

wsl --export <distribution> wsl-backup-<distribution>.tar
wsl --unregister <distribution>
choco install wsl-<distribution>
wsl --import <distribution> wsl-backup-<distribution>.tar

с надеждой, что ваши проблемы не последуют за вами с импортированными файлами.

решение3

Предупреждение:Следующая информация не полностью официально документирована, поскольку вопрос касается "ручной установки" дистрибутива в WSL. Поэтому процедура может бытьнемного отличаетсяв будущих версиях Windows 10.

Чтобы понять это, сначала нам нужно узнать, в чем разница между установкой дистрибутива через Магазин Windows и вручную. Представьте себе Магазин Windows как менеджер пакетов в Windows. Он отслеживает все установленные, удаленные, обновленные пакеты и т. д. Итак, в меню «Настройки» есть список установленных приложений. Когда дистрибутив установлен, он поставляется как пакет Appx (архив ZIP). Этот пакет содержит tarball rootfs (tar-файл GZIP) этого дистрибутива (пример install.tar.gz), исполняемый файл запуска (пример ubuntu.exe) и некоторые другие вещи.

Когда этот лаунчер запускается в первый раз, он извлекает tarball (как tar -xfкоманда) и создает запись в реестре в HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss\{GUID}разделе реестра. Этот раздел реестра важен, так как он указывает, где установлен дистрибутив, пользователя по умолчанию и т. д.

Когда дистрибутив установленвручнуюэтот же ключ реестра создается, но с другим basepath и другими. Поскольку эта ручная процедура не проходит через Windows Store, она не указана в приложении «Параметры». Но wsl.exe --list --allкоманда может показать все установленные дистрибутивы в WSL. Таким образом, мы не получаем исполняемый файл запуска, но можем делать все с помощью wsl.exe.

Как мы можем сбросить из 'плохого состояния'? Если вы знакомы с миром UNIX, предположим, что дистрибутивы в WSL, как вchroot-окружение. Всегдарезервное копирование дистрибутива WSL. Как обычно в настоящих дистрибутивах на базе Debian мы обычно запускаем эти команды для исправления пакетов:

sudo dpkg –configure -a
sudo apt update –fix-missing
sudo apt install -f

Если это не может исправить проблему, удалите и переустановите, возможно, это исправит ситуацию. Вы можете сделать резервную копию папки /homeс помощью, tar -czfпоскольку большинство пользовательских конфигураций сохраняются там. Затем удалите дистрибутив с помощью wsl.exe --unregister <Distribution Name>команды. Резервная копия может быть важна для пользователей, поскольку предыдущая команда удаляет всю корневую папку, то есть. /. Теперь вы можете установить новый дистрибутив и извлечь предыдущую /homeрезервную папку с помощью, tar -xfкак обычно.

решение4

Попробуй это:

wsl --set-default-version 2

Вы также можете установить версию wsl для любого установленного дистрибутива:

wsl --set-version Ubuntu-20.04 1

Связанный контент