Имя wsl не распознано как имя командлета
Перейти к содержимому

Имя wsl не распознано как имя командлета

  • автор:

 

Как решить проблему "wsl : Имя "wsl" не распознано как имя командлета. "?

Ввожу "wsl —install" Появляется следующая ошибка: введите сюда описание изображения

Подозреваю, что тот, кто ставил винду, ставил минимальную сборку "без мусора". Концы сейчас не найти, а wsl2 нужен.

Подскажите, как установить wsl 2?

  • Выпуск Windows 11 Pro
  • Версия 21H2
  • Дата установки ‎02.‎12.‎2022
  • Сборка ОС 22000.318
  • Взаимодействие Windows Feature Experience Pack 1000.22000.318.0

В списке компонентов Windows WSL я не нашел введите сюда описание изображения

Ошибка WslRegisterDistribution failed with error: 0x80370102 – что делать?

Ошибка с кодом 0x80370102 сопровождается сообщением «WslRegisterDistribution failed with error». Имеет привычку появляться при попытке установить дистрибутив Linux для доступа через подсистему Windows к Linux 2 (WSL2). Таким образом процедура развертывания саб-системы обрывается и сам смысл свежевыпущенной функции Windows испаряется. Инсталляция Linux Distro обрывается сообщением:

WslRegisterDistribution failed with error: 0x80370102

Error: 0x80370102 The virtual machines could not be started because a required feature is not installed.

Причины ошибки 0x80370102

Речь идет о совсем новой ошибке, ведь она начала появляться только с конца лета 2021 года с выпуском WSL2. Она начала появляться не только при попытке установить подсистему Linux, но и Debian. В силу новизны, у нее пока нет подробного технического разбора со стороны разработчиков, и мы полагаемся на пользователей и их отчеты. Они указывают на наличие следующих нескольких проблем:

  • Используется сборкаWindowsInsiderPreview. Многие пользователи инсайдерской версии Windows испытывают данную проблему и это нормально, ведь речь идет о незавершенной системе. Нужно ждать обновлений.
  • Проблемы перехода сWSL 1 наWSL 2. Результат опять же недоработанного программного обеспечения.
  • Выключена или отсутствует аппаратная виртуализация. Ее должен поддерживать процессор. Если такой функции в ЦП не предусмотрено, воспользоваться подсистемой Linux не получится. Может быть, что опция просто отключена и ее нужно включить.
  • ВыключенHyper-V. Это важный компонент виртуальной среды, который участвует в запуске нескольких операционных систем на одной физической машине. Его нужно обязательно активировать.

Что делать при ошибке 0x80370102?

Все исправления вытекают из причин ошибки. Пока что мы можем только включить аппаратную виртуализацию и Hyper-V. Если ваша версия Windows (от 2004, май 2020 года) и оборудование позволяет использовать подсистему WSL2, она должна заработать после ручного включения обязательных компонентов.

1. Включить аппаратную виртуализацию в BIOS

Если попытаться запустить Ubuntu или другую разновидность Linux в VirtualBox без активации аппаратной виртуализации, Windows отобразит сразу ряд ошибок. Система начнет грешить на распределение регистров WSL, звук и другие сбои. Данная функция обязательно должна быть включена, иначе запустить виртуальную систему не получится. К сожалению, активируется опция в BIOS, поэтому придется сделать несколько лишних телодвижений.

Как исправить ошибку 0x80370102:

  1. Нажимаем на виртуальную кнопку в Пуске – «Перезагрузить».
  2. В момент включения компьютера должна быть подсказка снизу с тем, какую клавишу нужно нажать для активации BIOS. Обычно это Del, Esc, F2, но может отличаться. Если не удастся войти с первого раза, нужно будет снов перезагрузить ПК.
  3. Находим вкладку CPU config, Processor или Chipset.
  4. Ищем параметр Virtualization или Виртуализация.
  5. Нажимаем напротив него и выбираем опцию Enable. В зависимости от производителя он может называться Intel Virtualization Technology, AMD-V, Hyper-V, VT-X, Vanderpool, or SVM.
  6. Возвращаемся в начальное окно и жмем на вариант «Save & Exit».

Ошибка WslRegisterDistribution failed with error: 0x80370102

2. Активировать аппаратную виртуализацию в PowerShell и настроить ОЗУ

Есть и другой вид виртуализации, так называемая вложенная, позволяющая запускать Hyper-V в виртуальной машине. Она нужна для запуска эмулятора телефона Visual Studio внутри виртуальной машины или тестировать конфигурации оборудования с использованием нескольких хостов. Части пользователей удалось исправить свою ошибку активацией вложенной виртуализации.

Инструкция по исправлению ошибки 0x80370102:

  1. Нажимаем правой кнопкой мыши по Пуску и выбираем PowerShell (или ищем через поиск). У нее должны быть права администратора.
  2. Вставляем команду Set-VMProcessor <VMName> -ExposeVirtualizationExtensions $true и нажимаем Enter.
  3. Правым кликом мыши выбираем виртуальную машину посредством диспетчера Hyper-V и переходим в ее «Настройки».
  4. Жмем на вкладку «Память» в панели слева и выключаем параметр «Включить динамическую память», просто вручную увеличиваем значение вдвое.
  5. Запускаем виртуальную машину.
  6. Кликаем правой кнопкой мыши по ней и выбираем «Подключиться». После запуска Hyper-V произойдет перезагрузка и при повторной попытке запуска ошибка уже не должна появляться.

Ошибка WslRegisterDistribution failed with error: 0x80370102

3. Запустить компонент Hyper-V

Компонент Hyper-V нужен для того, чтобы администраторы могли получать больший контроль над собственным оборудованием при виртуализации нескольких операционных систем на одном оборудовании. Без него ошибка во время установки Linux гарантирована.

Нужно включить Hyper-V и вот, как это можно сделать:

  1. С помощью поиска переходим в «Панель управления».
  2. Открываем «Программы и компоненты».
  3. Жмем на элемент левого меню «Включение или отключение компонентов Windows».
  4. Ищем пункт Hyper-V (один из первых) и устанавливаем флаг возле него.
  5. Перезагружаем компьютер.

Ошибка WslRegisterDistribution failed with error: 0x80370102

Это лучшее, что мы можем предложить для исправления ошибки WslRegisterDistribution failed with error: 0x80370102. Перечисленные методы работают у большинства, на это указывают ответы в комментариях на форумах, поэтому без зазрений совести можем их рекомендовать к использованию.

wsl' is not recognized as an internal or external command

I installed Windows Subsystem for Linux and turned it on under windows turn ON OFF features. And then restarted my Pc. I did check on cmd soon after restarting the PC by typing «wsl» and it works. But when i run my script from its folder which has the command «wsl -e xxx.sh», i get an error

 

‘wsl’ is not recognized as an internal or external command, operable program or batch file.

Could you guys help me with it please. Thank you.

My PC is running on Os: Windows 10 Pro; Microsoft windows version: 1903; Os Build: 18362.418

anand s's user avatar

3 Answers 3

The most common reason why a command which runs an executable program works on the command line, but not in a batch script, is that, in the script, prior to the line containing the problem command, the user has created a variable %path%. It might seem a handy name for a variable that holds, well, a path. The problem is that this variable name is used by Windows to hold a semicolon-separated list of folders which are searched when an executable is called. It is a system variable. If you have redefined it, then all executables (e.g. .exe, .bat, .vbs, etc) that Windows uses, will not be found, and the script will fail with exactly this message, where xxx is the program or file that is expected:

‘xxx’ is not recognized as an internal or external command, operable program or batch file.

This can be confusing because commands which are internal to the cmd environment (dir, cls, set, copy, move, etc) (list here) still continue to work in this situation.

You can debug a script where this is suspected by inserting the path command immediately before a problem line. The Windows path variable starts with these folders, and may be extended as programs are installed:

Имя wsl не распознано как имя командлета

Исполняемый файл WSL не найден Powershell или CMD [закрыто]

Опыт настройки и использования WSL (подсистемы Linux в Windows 10)

Установка X-сервера, Xfce и прочих GUI’шных приложений
    config.xlaunch — файл настроек для VcXsrv

Взаимодействие окружения Windows и окружения подсистемы Linux

Глава 11. Устранение неисправностей WSL

Убедитесь что включены не обязательные функциональные возможности Windows


Включение через графический интерфейс функциональных возможностей Windows


Находим PowerShell при помощи клавиши Windows и запускаем его от имени Администратора


Включение WSL1 и WSL2 при помощи PowerShell

Получите самый последний дистрибутив из Windows Store


Запись дистро Ubuntu WSL в Microsoft Store


Проверка на обновления образов дистро WSL в Downloads и разделе обновлений Microsoft Store

Зависимости компонентов Linux
systemd


Отказ в запуске приложения Linux по причине зависимости от systemd


Приложение Linux с графическим интерфейсом, пытающееся контактировать с dbus


DBUS отклоняет исполнение без уникального UUID DBUS


Выработка UUID DBUS и запуск вручную DBUS, наше приложение Linux с графическим интерфейсом теперь запускается нормально

Приложения Linux
Применение «strace» в WSL1


Вывод strace в команде ls


Применение параметров strace для ограничения вывода файловых операций

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *