Полностью переустановить WSL

Полностью переустановить WSL

Я установилВСЛ 1, мне нравилось иметь Linux на своем ПК, но затем я обнаружил ограничения, связанные с недостаточной совместимостью файлов между двумя операционными системами.

Итак, я установилВСЛ 2следуя спецификациям (включил виртуализацию в настройках BIOS и все такое), но установка не полностью работает, я не могу установить ее по умолчанию, и не все команды оболочки отвечают так, как ожидалось.
Я погуглил, и у кого-то были похожие проблемы, но не так много простых решений предложено (я думаю, это все еще относительно новый случай).

Поэтому я хочу удалить WSL как можно глубже и переустановить WSL 2 с нуля.

  • Какой наиболее безопасный и целесообразный процесс полного удаления WSL?
  • Можно ли установить WSL 2 с нуля, не устанавливая предварительно WSL 1?

решение1


Обновлять: Это немного устаревший ответ на данный момент. Если вы используете более старую версию WSL, которая была установлена ​​до Windows 10 или 11 22H2, то это может быть правильным ответом на вопрос, как удалить. Однако, если вы используете версию WSL из Store (или версию UWP), то, пожалуйста, см. мойболее новый ответ(и/или ответы других пользователей, если таковые имеются).


Можно ли установить WSL 2 с нуля, не устанавливая предварительно WSL 1?

Нет. Для WSL2 требуется базовая поддержка WSL.

Какой наиболее безопасный и целесообразный процесс полного удаления WSL?

Вот лучшая информация, которая у меня есть по удалениювсесвязанные с WSL.

Похоже, вы считаете существующий случай безнадежным, но если вы хотите сохранить его для потомков, вы можете начать с:

  • wsl --export <distroname> archivename.tar

Затем удалите существующие установки дистрибутива:

  • Любой дистрибутив, который вы установили из Магазина, сначала следует удалить через "Приложения и компоненты" (также известный как "Установка и удаление программ") в Windows. Это также касается дистрибутивов, установленных вручную через загруженный пакет Appx.

Затем проверьте, что ничего не осталось. Из PowerShell или CMD:

  • wsl -l
  • wsl --unregister <distroname>

Вы можете просто установить новый дистрибутив в этот момент из Магазина. Маловероятно, что дополнительная переустановка других компонентов что-то изменит. Но если вы хотите удалить их:

  • Из "Приложений и компонентов" (также известных как "Установка и удаление программ") в Windows удалите "Обновление подсистемы Windows для Linux". Я почти уверен, что это обновление ядра Linux. Возможно, перезагрузите, если хотите быть уверены, что оно полностью удалено перед следующим шагом.

  • В разделе «Включение и отключение компонентов Windows» отключите «Подсистему Windows для Linux». Согласно комментариям, перед следующим шагом может потребоваться перезагрузка.

  • В разделе «Включение и отключение компонентов Windows» в Windows отключите «Платформу виртуальной машины». Это поддержка WSL2 Hyper-V.

  • Перезагрузить.

При переустановке оттуда я был бы признателен, если бы вы подтвердили, что «Обновление подсистемы Windows для Linux» возвращается в раздел «Приложения и компоненты» после установки пакета обновления ядра (шаг 4 вУстановить документ). Я обновлю этот ответ на основе этой информации.

решение2

Этот ответ относится к новой версии Store/UWP WSL. Чтобы подтвердить, что вы используете эту новую версию, выполните следующее из PowerShell:

Get-AppxPackage |? { $_.Name -like "*WindowsSubsystemforLinux*" }

Если вы видите результат, продолжайте читать этот ответ. Если вы не получили результат, то, возможно, вы используете более старую версию WSL. Смотритемой старый ответо том, как полностью удалить эту версию.

Для версии Store/UWP ответ изменился:

Можно ли установить WSL 2 с нуля, не устанавливая предварительно WSL 1?

Да, в Windows 11 22H2 wsl --installпо умолчанию будеттолькоустановить WSL2. Чтобы установить WSL1, необходимо добавить wsl --install --enable-wsl1.

Обратите внимание, что эта --enable-wsl1опция недоступна в Windows 10, даже в полностью обновленной системе, которая в остальном совместима с новой версией WSP. В Windows 10 (19045.2311) WSL1 по-прежнему автоматически устанавливается и включается с помощью wsl --install.

Какой наиболее безопасный и целесообразный процесс полного удаления WSL?

Вот лучшая информация, которая у меня есть по удалениювсесвязанные с WSL. Это должно гарантировать, что (a) все функции удалены, и (b) все дисковое пространство освобождено.

  1. При желании можно создать резервную копию существующих дистрибутивов:

    Похоже, вы считаете существующий случай безнадежным, но если вы хотите сохранить его для потомков, вы можете начать с:

    wsl --export <distroname> archivename.tar
    

    Подтвердите резервное копирование всех имен дистрибутивов с помощью wsl -l -v.

    В качестве альтернативы, скопируйте только те файлы, которые важны для вас из дистрибутива, в безопасное место за пределами дистрибутива. Обычно это включает все в вашем домашнем каталоге, но также просмотрите /varи /etcна наличие любых файлов, которые вы, возможно, захотите сохранить.

  2. При желании подтвердите действительность резервных копий дистрибутивов:

    Конечно, если резервная копия для вас важна, то убедитесь, что она работает с wsl --importновым именем.

  3. Отменить регистрацию существующих дистрибутивов:

    Для каждого найденного дистрибутива wsl -l -vудалите его с помощью:

    wsl --unregister <distroname>
    

    Предупреждение: Это разрушительная и необратимая операция, если у вас нет действительной резервной копии, как указано выше.

  4. Удалить все дистрибутивыпакеты(приложения) установленные из Магазина:

    Идти кНастройки->Добавить или удалить программыи найдите все дистрибутивы, которые вы могли установить из Магазина (Ubuntu, Debian, Alpine, openSUSE или другие). На самом деле это отдельно от дистрибутива, регистрацию которого вы отменили выше. Эти пакеты включают Distro Launcher и rootfs, которые изначально создали ваш дистрибутив (например, ubuntu2004.exe).

    Удалите каждый дистрибутив.

    В старых версиях Windows удаление этих пакетовтакжеудалил соответствующий дистрибутив, что привело к непреднамеренной потере данных. Похоже, что большинство последних систем требуют их удаления в два отдельных шага, что хорошо.

  5. Также вНастройки->Добавить или удалить программы, найдите и удалите любые приложения "Подсистема Windows для Linux". Это может включать:

    • Подсистема Windows для Linux: сам основной пакет WSL
    • Обновление подсистемы Windows для Linux: обновления пакета ядра для старых версий WSL (встроенных, которые поставлялись как функция Windows).
    • Подсистема Windows для Linux WSLg Preview: функция WSLg, поставляемая с Windows 11.
  6. На этом этапе лучше всего перезагрузить компьютер, чтобы освободить все остальные используемые файлы.

  7. Далее, перейдите кНастройки->Включение и выключение функций Windows.

  8. Если они включены, отключите:

    • Платформа виртуальной машины
    • Подсистема Windows для Linux

    Windows, скорее всего, предложит перезагрузиться.

  9. После перезагрузки убедитесь, что все вышеперечисленные элементы были успешно удалены. На этом этапе любая wslкомандадолженпросто возвращает текст справки по умолчанию «install».

Рекомендуемый способ переустановки отсюда:

  • Откройте PowerShell с повышенными правами. Лучше всего сделать это как обычный пользователь в сеансе с повышенными правами администратора, а не какотдельныйПользователь-администратор.

    wsl --install
    

    По умолчанию это:

    • Повторно включите платформу виртуальной машины.
    • Установите последнюю версию WSL из Microsoft Store. Теперь эта версия включает ядро ​​напрямую, а не требует отдельного шага установки, как раньше.
    • Установите дистрибутив Ubuntu по умолчанию из Microsoft Store

    Также см. wsl --helpдополнительные параметры установки. Например, вы можете пропустить установку дистрибутива на этом этапе или выбрать другой дистрибутив.

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