Вопрос или проблема
Я немного поиграл с подсистемой Linux/Bash для Win10.
Но потом я решил пока остаться с Cygwin. Поэтому я его удалил – или, как мне казалось, удалил.
Теперь я установил Cygwin и поставил его каталог bin
первым в переменной PATH
.
В cmd.exe
, когда я ввожу bash
, запускается Bash от Cygwin.
Но когда я нажимаю Win+R и ввожу bash
, я все еще получаю сообщение:
Подсистема Windows для Linux не имеет установленных дистрибутивов.
…бла-бла-бла…
Как полностью избавиться от подсистемы Linux/Bash, чтобы она вместо этого использовала Bash из Cygwin из переменной PATH
?
Если ваша ОС была обновлена до обновления Fall Creators, вы сможете использовать команду wslconfig
.
Вы, конечно, можете сначала попробовать удалить с помощью команды lxrun /uninstall /full
.
Если она все еще есть, вы можете попробовать удалить регистрацию дистрибутива:
-
Сначала вам нужно узнать, какой дистрибутив установлен, используя
wslconfig /l
-
Из списка выберите дистрибутив (например, Ubuntu), который вы хотите удалить, и введите команду
wslconfig /u Ubuntu
Чтобы отключить WSL, нужно зайти в
Панель управления -> программы и компоненты -> включить или отключить компоненты Windows и снять отметку с Windows Subsystem for Linux, затем нажать Сохранить. Появится диалог, показывающий прогресс удаления. Вам нужно перезагрузить ПК, чтобы завершить удаление.
Правка – это будет работать только на Windows Server, а не на клиентской ОС.
Похожие на то, что предложил Rop, но вы также можете использовать Powershell, чтобы полностью удалить подсистему Windows для Linux, с преимуществом не искать ее в Панели управления. Обратите внимание, что для этого нужно запускать от имени администратора.
Remove-WindowsFeature Microsoft-Windows-Subsystem-Linux
Список всех доступных функций, отфильтрованных по Linux:
Get-WindowsFeature | Where-Object Name -like '*linux*' | Select-Object Name
Несколько замечаний для экспериментаторов, но для клиентской ОС Windows 10 вы можете использовать следующее:
(Get-WindowsOptionalFeature -Online -FeatureName '*linux*') | Select-Object FeatureName
Затем:
Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Или аналог:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Вы также можете использовать другие инструменты для достижения той же цели, такие как dism.exe (как показано здесь: https://evidencen.com/wsl2/)
Я объединил удаление Ubuntu-18.04
wslconfig /l
wslconfig /u 'Ubuntu-18.04'
и с добавлением и запуском Ubuntu-20.04 из магазина Windows, чтобы снова успешно запустить WSL 2.0, который перестал работать. Я получал
[процесс завершился с кодом 4294967295]
когда я запускал wsl 2.
Windows 10:
- поиск: “дополнительные функции” (-> управление дополнительными функциями)
- предпоследний элемент на странице: другие функции Windows
- предпоследний элемент: WSL
На моем компьютере с Windows 11 выполнение wslconfig /u
или удаление функции Windows не полностью удаляло WSL.
Это сработало:
wsl --uninstall
Ответ или решение
Чтобы полностью удалить Подсистему Windows для Linux (WSL) в Windows 10, выполните следующие шаги:
-
Удаление установленных дистрибутивов WSL:
- Откройте командную строку с правами администратора.
- Введите следующую команду, чтобы просмотреть список установленных дистрибутивов:
wslconfig /l
- Если в списке отображается дистрибутив, который вы хотите удалить (например, Ubuntu), выполните:
wslconfig /u <название_дистрибутива>
Например, для удаления Ubuntu:
wslconfig /u Ubuntu
-
Отключение WSL через Панель управления:
- Откройте "Панель управления" и перейдите в "Программы и компоненты".
- Нажмите на "Включение или отключение компонентов Windows".
- Найдите "Подсистема Windows для Linux" и снимите отметку. Сохраните изменения.
- Процесс удаления может занять некоторое время, после чего вам потребуется перезагрузить компьютер.
-
Использование PowerShell:
- Откройте PowerShell с правами администратора.
- Чтобы отключить WSL, выполните следующую команду:
Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
- Если вы хотите проверить наличие доступных функций, фильтруя по Linux, выполните:
Get-WindowsOptionalFeature -Online -FeatureName '*linux*' | Select-Object FeatureName
-
Вариант использования DISM:
- Запустите командную строку или PowerShell с правами администратора и используйте следующую команду для удаления WSL:
dism.exe /Online /Disable-Feature /FeatureName:Microsoft-Windows-Subsystem-Linux
- Запустите командную строку или PowerShell с правами администратора и используйте следующую команду для удаления WSL:
-
Дополнительный шаг (если необходимо):
- В Windows 10 и 11 можно использовать следующую команду, которая удалит все дистрибутивы и саму подсистему:
wsl --uninstall
- В Windows 10 и 11 можно использовать следующую команду, которая удалит все дистрибутивы и саму подсистему:
После выполнения этих шагов WSL будет полностью удалена из вашей системы, и при введении команды bash
вы должны будете открыть Cygwin. Убедитесь, что путь к Cygwin (bin
) находится в переменной окружения PATH
перед попыткой запуска Cygwin.