Download PC Repair Tool to quickly find & fix Windows errors automatically
Windows 11/10 supports the installation of a number of distros that come under Windows Subsystem for Linux. But even when these distros are installed users have reported encountering Windows Subsystem for Linux has no installed distributions error. Some of the causes for this error come out to be misconfiguration with the default distro, supporting services not working, and more. This error is spotted when the wsl command is executed inside the Windows Command Prompt.
If you face this error, one of these suggestions is sure to help you resolve the issue:
- Check the LxssManager service.
- Install or update the Linux distro.
- Enable Virtual Machine Platform optional feature.
1] Check the LxssManager service
Open the Windows Services Manager and locate the LxssManager service.
Open their Properties and ensure that their Startup type is set to be Automatic and make sure that the service is Running. If not,click on the Start button.
2] Install or update the Linux distro
You can try to download and install a suitable Linux distro for your computer from the Microsoft Store.
3] Enable Virtual Machine Platform optional feature
Open Windows PowerShell as an Administrator and execute this command:
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
In case that it asks for a confirmation, to reboot your computer, hit Y to do it straight away or to do it later, hit N.
This should help!
Related: WSL stopped working with Error 0x80070003.
How do I install WSL distributions?
You can follow these steps to install WSL distributions on Windows 11/10 computers:
- Enable the Windows Subsystem for Linux.
- Check requirements for running WSL 2.
- Enable Virtual Machine feature.
- Download the Linux kernel update package.
- Set WSL 2 as your default version.
- Install your Linux distribution.
Why is Windows Subsystem for Linux not showing?
The Windows Subsystem for Linux is not enabled. To enable it: Open Control Panel > Programs and Features > Turn Windows Feature on or off > Check Windows Subsystem for Linux > Click OK and restart your computer.
Ayush has been a Windows enthusiast since the day he got his first PC with Windows 98SE. He is an active Windows Insider since Day 1 and has been a Windows Insider MVP.
Download PC Repair Tool to quickly find & fix Windows errors automatically
Windows 11/10 supports the installation of a number of distros that come under Windows Subsystem for Linux. But even when these distros are installed users have reported encountering Windows Subsystem for Linux has no installed distributions error. Some of the causes for this error come out to be misconfiguration with the default distro, supporting services not working, and more. This error is spotted when the wsl command is executed inside the Windows Command Prompt.
If you face this error, one of these suggestions is sure to help you resolve the issue:
- Check the LxssManager service.
- Install or update the Linux distro.
- Enable Virtual Machine Platform optional feature.
1] Check the LxssManager service
Open the Windows Services Manager and locate the LxssManager service.
Open their Properties and ensure that their Startup type is set to be Automatic and make sure that the service is Running. If not,click on the Start button.
2] Install or update the Linux distro
You can try to download and install a suitable Linux distro for your computer from the Microsoft Store.
3] Enable Virtual Machine Platform optional feature
Open Windows PowerShell as an Administrator and execute this command:
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
In case that it asks for a confirmation, to reboot your computer, hit Y to do it straight away or to do it later, hit N.
This should help!
Related: WSL stopped working with Error 0x80070003.
How do I install WSL distributions?
You can follow these steps to install WSL distributions on Windows 11/10 computers:
- Enable the Windows Subsystem for Linux.
- Check requirements for running WSL 2.
- Enable Virtual Machine feature.
- Download the Linux kernel update package.
- Set WSL 2 as your default version.
- Install your Linux distribution.
Why is Windows Subsystem for Linux not showing?
The Windows Subsystem for Linux is not enabled. To enable it: Open Control Panel > Programs and Features > Turn Windows Feature on or off > Check Windows Subsystem for Linux > Click OK and restart your computer.
Ayush has been a Windows enthusiast since the day he got his first PC with Windows 98SE. He is an active Windows Insider since Day 1 and has been a Windows Insider MVP.
В прошлой статье мы рассмотрели установку WSL2 под Windows 10, подробности читайте здесь.
На одном из ПК, после установки WSL2, отказался запускаться linux.
Даже если установка прошла успешно, при запуске консоли linux вы можете получить ошибку:
Windows не удается получить доступ к указанному устройству, пути или файлу. Возможно, у вас нет нужных разрешений для доступа к этому объекту.
В этой статье мы рассмотрим способ её исправления.
Даже если вы уже установили дистрибутив linux, при запуске из консоли, вы обнаружите, что wsl не находит установленные дистрибутивы:
C:>wsl
Нет установленных дистрибутивов подсистемы Windows для Linux.
Дистрибутивы можно установить из Microsoft Store:
https://aka.ms/wslstore
Решение довольно простое – установить linux из приложения Microsoft Strore!
Для начала удалим старый пакет, получим список всех установленных Appx
Get-AppxPackage
В самом конце вы найдете блок с вашим дистрибутивом
Name : TheDebianProject.DebianGNULinux
Publisher : CN=51C4C664-ED6E-40E8-A008-10EFD2F72288
Architecture : X64
ResourceId :
Version : 1.1.3.0
PackageFullName : TheDebianProject.DebianGNULinux_1.1.3.0_x64__76v4gfsz19hv4
InstallLocation : C:Program FilesWindowsAppsTheDebianProject.DebianGNULinux_1.1.3.0_x64__76v4gfsz19hv4
IsFramework : False
PackageFamilyName : TheDebianProject.DebianGNULinux_76v4gfsz19hv4
PublisherId : 76v4gfsz19hv4
IsResourcePackage : False
IsBundle : False
IsDevelopmentMode : False
NonRemovable : False
IsPartiallyStaged : False
SignatureKind : Store
Status : Ok
Нам потребуется PackageFullName, запускаем
Remover-AppxPackage TheDebianProject.DebianGNULinux_1.1.3.0_x64__76v4gfsz19hv4
Теперь запускаем Miscrosoft Store и? в поиск вводим, например, Ubuntu, так как Debian у меня уже установлен
Выбираем нужный нам образ
Нажимаем Получить
И ждем окончания установки
Если установка не началась, просто нажмите на указанную кнопку, возможно сейчас скачивается другое обновление
После установки программа появится в меню пуск
Теперь вы сможете запустить консоль linux
Заключение
Мы рассмотрели решение проблемы с запуском, после установки WSL2 под Windows 10. В
Скорее всего у вас не возникнет проблем, но если ошибка появится, вы знаете как её исправить.
Windows 10 поддерживает установку ряда дистрибутивов, входящих в подсистему Windows для Linux. Но даже когда эти дистрибутивы установлены, пользователи сообщают о том, что Подсистема Windows для Linux не имеет установленных дистрибутивов ошибка. Некоторые из причин этой ошибки заключаются в неправильной настройке дистрибутива по умолчанию, неработающих вспомогательных службах и многом другом. Эта ошибка обнаруживается, когда WSL Команда выполняется в командной строке Windows.
Подсистема Windows для Linux не имеет установленных дистрибутивов
Если вы столкнулись с этой ошибкой, одно из этих предложений обязательно поможет вам решить проблему:
- Проверьте службу LxssManager.
- Установите или обновите дистрибутив Linux.
- Включите дополнительную функцию платформы виртуальных машин.
1]Проверьте службу LxssManager
Откройте диспетчер служб Windows и найдите LxssManager служба.
Откройте их свойства и убедитесь, что для них установлен тип запуска. Автоматический и убедитесь, что услуга Бег. Если нет, нажмите на Начинать кнопка.
2]Установите или обновите дистрибутив Linux.
Вы можете попробовать загрузить и установить подходящий дистрибутив Linux для своего компьютера с Магазин Microsoft.
3]Включить дополнительную функцию платформы виртуальных машин
Откройте Windows PowerShell от имени администратора и выполните эту команду:
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
В случае, если он запрашивает подтверждение, чтобы перезагрузить компьютер, нажмите Y чтобы сделать это сразу или сделать это позже, нажмите Н.
Это должно помочь!
В Windows 10 может быть установлена версия оболочки Unix (а именно Bash). Однако многие люди сталкивались с сообщением об ошибке «Подсистема Windows для Linux не имеет установленных дистрибутивов» при попытке использовать Bash.
Пользователь сообщил о следующей проблеме на форуме:
Я пытаюсь использовать Bash на Windows 10, но я получаю это сообщение при попытке запустить Bash:
Подсистема Windows для Linux не имеет установленных дистрибутивов. Дистрибутивы можно установить, посетив Магазин Windows: https://aka.ms/wslstore Нажмите любую клавишу, чтобы продолжить … Когда я перехожу по тому URL-адресу, который открывает приложение Магазина Windows, никаких признаков распространения Linux там нет.
Итак, это главная проблема, которая делает программу неработоспособной. Кроме того, нет никаких признаков распространения Linux в Microsoft Store.
Как исправить Windows Subsystem For Linux не имеет ошибки установленных дистрибутивов?
1. Подождите несколько минут
Довольно много пользователей сообщили, что проблема устранена сама собой через несколько минут. Некоторым процессам требуется время, прежде чем они начнут работать в фоновом режиме.
Поэтому, когда вы перезагрузите компьютер, подождите не менее 5 минут, а затем запустите программу.
Узнайте все, что нужно знать об установке Linux Bash на Windows 10!
2. Используйте командную строку для установки дистрибутивов
Если появляется сообщение об ошибке «Подсистема Windows для Linux не имеет установленных дистрибутивов», необходимо установить дистрибутивы вручную, выполнив следующие действия.
- Нажмите клавишу Windows и введите cmd .
- Щелкните правой кнопкой мыши командную строку и выберите « Запуск от имени администратора» .
- Введите lxrun / install .
- Нажмите Y, чтобы начать загрузку.
3. Включите сервис LxssManager
Эта ошибка может появиться, если по какой-то причине служба LxssManager отключена. Включите его, как описано ниже.
- Нажмите клавишу Windows + R.
- В диалоговом окне « Выполнить » введите services.msc и нажмите « ОК» .
- Найдите LsxxManager и дважды щелкните по нему.
- Выберите тип запуска как автоматический .
- Нажмите Пуск и Применить .
Вывод
Как видите, ошибку «Подсистема Windows для Linux не имеет установленных дистрибутивов» можно легко устранить.
Более того, проблема может решиться сама собой, если вы подождете несколько минут после перезагрузки компьютера. Если нет, установите дистрибутивы вручную или включите LxssManager Service.
Считаете ли вы наши решения полезными? Как вы используете Bash на Windows 10? Дайте нам знать в комментариях ниже!
СВЯЗАННЫЕ СТАТЬИ, КОТОРЫЕ ВЫ ДОЛЖНЫ ПРОВЕРИТЬ:
- Проблемы двойной загрузки Windows 10 и Linux: вот быстрое решение
- Не можете установить Linux с Windows 10? Вот что делать
- 4 великолепных эмулятора Linux для вашего ПК с Windows 10
Содержание
- Вариант 1: Установка в полуавтоматическом режиме
- Шаг 1: Выбор доступных дистрибутивов Linux
- Шаг 2: Запуск инсталляции
- Вариант 2: Установка в ручном режиме
- Шаг 1: Предварительная настройка системы
- Шаг 2: Загрузка и настройка ядра WSL2
- Шаг 3: Выбор и инсталляция дистрибутива Linux
- Вопросы и ответы
Вариант 1: Установка в полуавтоматическом режиме
Установка WSL в операционной системе Windows осуществляется посредством выполнения специальных команд в консоли. Для этого потребуется предварительно определиться с дистрибутивом Linux, а затем запустить процесс его инсталляции.
Важно! Приведенная ниже инструкция может быть выполнена только при условии использования Windows 10 версии 2004 (19041) и более новых. Узнать эту информацию можно в свойствах системы. Этой теме на нашем сайте посвящена отдельная статья, при необходимости ознакомьтесь с ней, перейдя по ссылке ниже.
Подробнее: Как узнать версию Windows 10
Шаг 1: Выбор доступных дистрибутивов Linux
Каждому пользователю актуальной версии Windows 10 предоставляется возможность вручную выбрать дистрибутив Linux, который будет использоваться в WSL2. Для просмотра списка доступных систем необходимо ввести специальную команду в консоль, поэтому предварительно запустите «Командную строку» с правами администратора. Сделать это можно множеством способов, например посредством поискового запроса, как показано на изображении ниже.
Читайте также: Как открыть «Командную строку» от имени администратора в Windows 10
Примечание! По умолчанию всегда выбрана последняя версия дистрибутива Ubuntu. Если именно его вы и хотите установить, то пропустите этот шаг и переходите сразу ко второму.
После того как окно консоли будет открыто, впишите или вставьте в него одну из нижеприведенных команд, после чего нажмите клавишу Enter:
wsl --list --online
или wsl -l -o
В результатах выдачи будет приведен список всех доступных дистрибутивов Linux. На этом этапе вам необходимо запомнить или скопировать в буфер обмена название, которое находится в столбце «NAME».
Обратите внимание! Если в списке доступных дистрибутивов нет желаемого, его можно импортировать в WSL2 посредством файла TAR или APPX. При необходимости есть возможность создать собственный дистрибутив на базе ядра Linux. Эти процессы описываются в официальной документации Microsoft, при необходимости ознакомиться с ними можно, воспользовавшись ссылками ниже.
Импорт любого дистрибутива Linux для использования с WSL
Создание пользовательского дистрибутива Linux для WSL
Шаг 2: Запуск инсталляции
После того как версия дистрибутива Linux для WSL2 была выбрана, можно переходить непосредственно к ее инсталляции. Делается это тоже в «Командной строке», для чего нужно воспользоваться приведенной ниже командой. Не забудьте после ее ввода нажать клавишу Enter.
wsl --install -d <НазваниеДистрибутива>
Примечание! Если вы хотите установить версию по умолчанию, тогда нет необходимости прописывать название дистрибутива вручную, можно воспользоваться следующей командой:
wsl —install
Сразу после этого начнется процесс установки платформы виртуальной машины, затем инсталлируется «Подсистема Windows для Linux», а в завершение будет выполнена загрузка ядра WSL2.
После всех этих процедур можно будет воспользоваться WSL2 для вызова подсистемы Linux. Для этого достаточно будет запустить установленный дистрибутив через меню «Пуск».
Вариант 2: Установка в ручном режиме
Если версия вашей операционной системы Windows 10 ниже 2004 (19041), тогда воспользоваться вышеприведенной инструкцией не получится и большинство действий придется выполнять вручную.
Шаг 1: Предварительная настройка системы
Первостепенно необходимо проверить, поддерживает ли установленная версия операционной системы обновление WSL до второй версии. Сделать это можно посредством вызова окна «Windows: сведения». Для этого нажмите сочетание горячих клавиш Win + R, впишите в поле запроса команду winver
и нажмите клавишу Enter.
Появится соответствующее окно, в котором будет указана версия операционной системы и ее сборка. Убедитесь, что она выше 1903 (18362). Если это так, можете продолжить выполнение этой инструкции, в противном случае попробуйте прежде обновить Windows 10 до актуальной версии.
Читайте также: Как обновить Windows 10 до последней версии
Важно! Если ваш компьютер работает на процессоре с архитектурой ARM64, этот способ установки WSL2 не подойдет. Обновитесь до последней версии Windows 10 и воспользуйтесь ранее предоставляемой инструкцией.
После того как вы удостоверились в актуальности версии операционной системы, необходимо произвести ее предварительную настройку, а именно — включить «Подсистему Windows для Linux» и компонент виртуальных машин. Делается это в оболочке PowerShell, поэтому предварительно запустите ее с правами администратора. Проще всего сделать это через контекстное меню кнопки «Пуск», как показано на изображении ниже. Но это не единственный способ.
Подробнее: Как открыть PowerShell в Windows 10
Теперь необходимо включить компонент «Подсистема Windows для Linux». Для этого скопируйте и вставьте в окно консоли PowerShell следующую команду, после чего нажмите Enter:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
Ожидайте завершения процедуры, когда на экране появится приглашение к вводу новой команды. После этого включите компонент виртуальных машин. Это делается посредством нижепредставленной команды:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
Важно! Если результатом ее выполнения является ошибка, потребуется предварительно включить виртуализацию. Делается это через BIOS, но сначала следует проверить статус этой функции в операционной системе. На нашем сайте есть отдельные статьи, посвященные этой теме.
Подробнее:
Как проверить, включена ли виртуализация в Windows 10
Как включить виртуализацию в BIOS
После того как компонент виртуальных машин будет установлен, потребуется перезагрузить компьютер.
Шаг 2: Загрузка и настройка ядра WSL2
Следующим шагом будет загрузка и установка ядра второй версии WSL, но изначально нужно определить архитектуру процессора, на которой работает операционная система. Для этого вызовите окно «Командной строки», в котором выполните следующую команду:
systeminfo | find "Тип системы"
В результатах выдачи будет указана архитектура процессора. Если упоминается x64, скачайте пакет обновления ядра Linux в WSL2 для 64-разрядных компьютеров на базе процессора x86. Если в результатах выдачи есть упоминание ARM64, загрузите пакет обновлений по этой ссылке. Сохраните файл в любое удобное место, после чего запустите его, дважды кликнув по названию. Далее следуйте инструкции инсталлятора, пока не будет произведена установка.
Теперь необходимо выбрать WSL2 версией по умолчанию, чтобы при установке дистрибутивов Linux они инсталлировались в этом окружении. Для этого достаточно в окне PowerShell выполнить представленную ниже команду:
wsl --set-default-version 2
Шаг 3: Выбор и инсталляция дистрибутива Linux
Как только все необходимые компоненты будут установлены, можно переходить к выбору дистрибутива Linux для инсталляции в окружении WSL2. В отличие от первого способа, представленного в этой статье, все действия будут выполняться не в «Командной строке», а в Microsoft Store. Для удобства ниже приведен список доступных систем со ссылками на них:
- Ubuntu 18.04 LTS
- Ubuntu 20.04 LTS
- Ubuntu 22.04 LTS
- openSUSE Leap 15.1
- SUSE Linux Enterprise Server 12 SP5
- SUSE Linux Enterprise Server 15 SP1
- Kali Linux
- Debian GNU/Linux
- Fedora Remix for WSL
- Pengwin
- Pengwin Enterprise
- Alpine WSL
- Raft (пробная версия)
Воспользуйтесь нужной ссылкой, чтобы перейти в магазин приложений от Microsoft. Находясь на странице нужного дистрибутива, щелкните по кнопке «Получить», расположенной рядом с его названием.
Дождитесь завершения загрузки, после чего кликните по появившейся кнопке «Открыть». Запустится окно консоли, в котором будет предложено подождать несколько минут, пока идет распаковка дистрибутива. В дальнейшем процедура инициализации ядра Linux будет занимать считанные секунды.
Примечание! Представленный выше список дистрибутивов взят с официального сайта Microsoft и может со временем измениться. В случае необходимости рекомендуем обратиться за справкой непосредственно к статье-первоисточнику.
Windows 10 Pro 21H2 19044
WSL 2 — это новая версия архитектуры подсистемы Windows для Linux, чтобы запускать двоичные файлы Linux ELF64 в Windows.
Т.е. можно запускать приложения Linux, в том числе c GUI, на Windows.
Однако, это не является полноценной виртуализацией, скорее контейнеризация, поэтому полноценный Linux Desktop заменить не сможет, по крайней мере на данный момент.
На сайте Microsoft довольная хорошая документация, обязательно к ознакомлению:
https://docs.microsoft.com/ru-ru/windows/wsl/about
https://docs.microsoft.com/ru-ru/windows/wsl/faq
Установка WSL 2
Установка компонентов
Установку компонентов можно выполнить через GUI
Параметры → Приложения и возможности → Дополнительные компоненты → Другие компоненты Windows
Либо через консоль cmd или PowerShell (запустить от имени Администратора)
# cmd dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /norestart # PowerShell Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux -NoRestart Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform -NoRestart
Выполнить перезагрузку
WSL 2 использует архитектуру Hyper-V для включения виртуализации. Эта архитектура будет доступна в качестве дополнительного компонента Virtual Machine Platform (Платформа виртуальной машины)
Если этот компонент не установлен, то будет работать WSL 1, а при попытке использовать WSL 2 выдаст сообщение:
Включите функцию Windows для платформы виртуальной машины и убедитесь в том, что в BIOS включена виртуализация. Дополнительные сведения см. на странице https://aka.ms/wsl2-install
Настройка WSL
Выбор WSL 2 в качестве версии по умолчанию
> wsl --set-default-version 2 Для получения сведений о ключевых различиях с WSL 2 перейдите на страницу https://aka.ms/wsl2 Операция успешно завершена.
Скачать (если выполняется первый раз) и/или обновить Linux ядро для WSL 2
> wsl --update Проверяется наличие обновлений... Скачивание обновлений... Выполняется установка обновлений... Это изменение вступит в силу при следующем полном перезапуске WSL. Чтобы выполнить перезапуск, выполните команду "wsl --shutdown". Версия ядра: 5.10.102.1
Посмотреть статус
> wsl --status Версия по умолчанию: 2 Подсистема Windows для Linux в последний раз обновлена 06.07.2022 Включены автоматические обновления WSL. Версия ядра: 5.10.102.1
Можно создать файл .wslconfig для глобальной настройки параметров WSL 2
%USERPROFILE%.wslconfig
[wsl2] kernel=<path> # An absolute Windows path to a custom Linux kernel. memory=<size> # How much memory to assign to the WSL2 VM. processors=<number> # How many processors to assign to the WSL2 VM. swap=<size> # How much swap space to add to the WSL2 VM. 0 for no swap file. swapFile=<path> # An absolute Windows path to the swap vhd. localhostForwarding=<bool> # Boolean specifying if ports bound to wildcard or localhost in the WSL2 VM should be connectable from the host via localhost:port (default true). # <path> entries must be absolute Windows paths with escaped backslashes, for example C:\Users\Ben\kernel # <size> entries must be size followed by unit, for example 8GB or 512MB
Например у меня много памяти и я хочу сберечь свой SSD отключив SWAP
По умолчанию SWAP file расположен
%USERPROFILE%AppDataLocalTempswap.vhdx
После изменения в .wslconfig требуется перезагрузка
wsl --shutdown
После команды shutdown все запущенные Linux контейнеры будут остановлены.
Или можно перезагрузить службу LxssManager, что будет иметь такой же эффект
# PowerShell Restart-Service LxssManager
Установка дистрибутива
Посмотреть текущие дистрибутивы
> wsl --list --verbose Нет установленных дистрибутивов подсистемы Windows для Linux. Дистрибутивы можно установить из Microsoft Store: https://aka.ms/wslstore
Посмотреть доступные дистрибутивы
> wsl --list --online Ниже приведен список допустимых распределений, которые можно установить. Установите с помощью команды wsl --install -d <Distro>. NAME FRIENDLY NAME Ubuntu Ubuntu Debian Debian GNU/Linux kali-linux Kali Linux Rolling openSUSE-42 openSUSE Leap 42 SLES-12 SUSE Linux Enterprise Server v12 Ubuntu-16.04 Ubuntu 16.04 LTS Ubuntu-18.04 Ubuntu 18.04 LTS Ubuntu-20.04 Ubuntu 20.04 LTS
Дистрибутив Linux устанавливается как приложение Windows app или UWP app
На данный момент в Microsoft Store доступна Ubuntu-22.04, а через консоль нет
Установка Ubuntu-20.04 через консоль
> wsl --install -d Ubuntu-20.04 Загрузка: Ubuntu 20.04 LTS Выполняется установка: Ubuntu 20.04 LTS Установка «Ubuntu 20.04 LTS» выполнена. Запуск Ubuntu 20.04 LTS...
Если сообщение висит долго, нажмите ENTER
Такой баг я встречал и в других диалогах, так что следует это запомнить.
Вводим имя пользователя и пароль для Ubuntu, они произвольные и не как не связаны с Windows логином. Над паролем лучше не мудрить и сделать простым.
Я сразу отключу требование ввода пароля для sudo, например можно отредактировать правило в /etc/sudoers через команду
sudo sed 's/(^%sudos.*)/%sudo ALL=(ALL:ALL) NOPASSWD:ALL/' /etc/sudoers -i
Посмотреть текущие дистрибутивы
> wsl --list --verbose NAME STATE VERSION * Ubuntu-20.04 Running 2
‘*’ отмечен дистрибутив по умолчанию, т.е. при выполнении команд wsl они будут применены к нему
Настройка дистрибутива
Можно создать файл /etc/wsl.conf для настройки дополнительных параметров внутри конкретного дистрибутива.
Под Linux я запускал VPN, поэтому мне понадобилось отключить управление файлом /etc/resolv.conf
Почему так происходит и какие подводные камни.
Открыл терминал, запустил VPN, который прописал DNS для использования внутреннего корпоративного домена.
И это работает до момента, когда открываешь еще один терминал или выполняешь команду через wsl, например даже такую
wsl ls
В этот момент WSL актуализирует resolv.conf и перетирает его, точнее это символическая ссылка, а сам файл расположен тут:
/etc/resolv.conf -> ../run/resolvconf/resolv.conf
Нужно создать конфиг
/etc/wsl.conf
[network] generateResolvConf = false
Перезагрузить
wsl --shutdown
Зайти в терминал Linux удалить ссылку, т.к. она уже будет ссылаться на несуществующий файл и создать новый файл
rm /etc/resolv.conf ip -4 route show default | awk '{print "nameserver",$3}' > /etc/resolv.conf
Однако IP адрес в WSL не статический и поменяется после перезагрузки Windows, что же делать в таком случае.
Все зависит от вашего сценария использования, например можно добавить задачу в Планировщик заданий (Task Scheduler) , что бы выполняла настройку после загрузки Windows.
Параметр [boot], для выполнения команд при первой загрузке доступен только в Windows 11.
Импорт дистрибутива
Можно установить любой другой дистрибутив, создать самому или клонировать существующий.
wsl --import <Distro> <Расположение установки> <Имя файла> [Параметры] Импортирует указанный tar-файл как новое распределение. Для стандартной загрузки имя файла может быть «-».
В рамках этой статьи я не буду рассматривать этот функционал см. https://docs.microsoft.com/ru-ru/windows/wsl/use-custom-distro
Удаление дистрибутива
Выполняется очень просто
> wsl --unregister Ubuntu-20.04 Отмена регистрации...
Файловая система
Файловая система WSL дистрибутива Linux хранится в VHD файле в каталоге
%USERPROFILE%AppDataLocalPackagesCanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgscLocalStateext4.vhdx
Доступ есть через проводник по адресу
\wsl$
Из Linux так же есть доступ в дискам Windows
ls -la /mnt/c/ ls -la /mnt/d/
Статический IP адрес
По мере использования WSL, можно столкнуться с этим вопросом.
Обсуждение https://github.com/microsoft/WSL/issues/4210
При первом запуске WSL создается интерфейс «vEthernet (WSL)» с случайной подсетью из диапазона приватной сети 172.16.0.0/12
т.е. после перезагрузки Windows сеть поменяется.
По итогу без костылей обойтись не получится.
Можно использовать скрипты, где каждый раз получать ip адрес и использовать его дальше по сценарию, как пример:
.bat
FOR /F %%i IN ('wsl -d Ubuntu-20.04 hostname -I') DO set WSLIP=%%i echo %WSLIP% netsh interface portproxy add v4tov4 listenport=8088 connectport=80 connectaddress=%WSLIP%
.bashrc
export DISPLAY=$(ip route list default | awk '{print $3}'):0 export LIBGL_ALWAYS_INDIRECT=1
Есть готовые скрипты, которые переконфигурируют интерфейс в Windows, а затем eth0 внутри Linux.
Например можно глянуть https://github.com/skorhone/wsl2-custom-network, https://github.com/ocroz/wsl2-boot
Запуск графических приложений
Т.к. в данной статье у нас Windows 10, то необходимо установить X-сервер для операционной системы Microsoft Window.
Например VcXsrv
Я установил Xming
Для безопасности в файле C:Program Files (x86)XmingX0.hosts указаны хосты, с которых разрешены подключения, но ip адрес у нас динамический, а указать подсеть в файле нельзя, поэтому придется запускать через ярлык XLaunch, т.к. там есть возможность выключить контроль доступа.
Выключаем проверку доступа
Конфиг XLaunch можно сохранить и в дальнейшем запускать через него.
В Linux есть мини программы, как раз подойдут для проверки, установим их
sudo apt-get install x11-apps
Выполним экспорт переменной DISPLAY, в дальнейшем эту команду можно записать в ~/.bashrc
export DISPLAY=$(ip -4 route show default | awk '{print $3}'):0.0
Запустить приложение «x-глаза» для проверки
xeyes
Отлично! Все работает.
Достаточно в командной строке прописать wsl.exe —install и нажать ввод
Как пишет источник, в последних сборках Windows Insider Preview появилась возможность установки подсистемы Linux для Windows (Windows Linux Subsystem) при помощи всего лишь одной команды из командной строки. А сейчас Microsoft подтвердила такую возможность для всех версий Windows 10 выше 2004 (и для Windows 11).
Чтобы установить подсистему Linux для Windows, теперь понадобится всего лишь запустить командную строку от имени администратора и выполнить команду wsl.exe —install. Если раньше этот процесс был продолжительным, нужно было открывать разные настройки и устанавливать различные пакеты ПО, то сейчас все осуществляется автоматически. После надо будет лишь перезагрузиться. По умолчанию устанавливается Ubuntu, но у пользователей (или администраторов) есть возможность выбрать другие дистрибутивы: чтобы просмотреть список доступных, нужно ввести команду wsl —list —online, а чтобы установить конкретный дистрибутив — выполнить команду wsl —install -d <Название дистрибутива>.
Есть еще несколько полезных команд. Например, wsl —update обновляет ядро WSL, а wsl —update rollback обеспечивает откат к прежней версии ядра WSL. Наконец, общую информацию по конфигурации WSL можно просмотреть при помощи команды wsl —status.
31 июля 2021 в 23:10
| Теги: Microsoft, Windows
| Источник: ITHome