Нет установленных дистрибутивов подсистемы windows для linux bash

I am trying to use bash on Windows 10, but I'm getting this message when tried to run bash: Windows Subsystem for Linux has no installed distributions. Distributions can be installed by visiti...

The actual answer to the question query is: The user exists with Ubuntu already installed. But WSL command does not find anything in CMD.exe «Command Line» «System does not find distribution.»

You need to start the below WSL command from Windows Start Menu. And then the old Linux System will show up on WSL in the command line as found.

If this doesn’t work for you? Just start up PowerShell with Administrator and:

WSL --help
WSL "only this command, will start the Linux default distro selected"

Run the WSL

You can then start up using this command with CMD.exe Administrator in Windows:

lxrunoffline l "This will now list all your distros"

With an option to remove old distros copied to Windows folders are with perhaps Ubuntu18.04 such way that you will have to use Linux to remove older folders, do not try to copy or edit files in a distro with Windows Apps. You risk integrity problems as well as many errors followed by huge processing time. Use folder /mnt to find your drive with Linux and use commands there to further finish your work as perhaps copying the home directory into a new distro.

My solution to move «not copy» my distro then was: «to give space for C:»

lxrunoffline m -n Ubuntu-18.04 -d d:wslinstalledUbuntu-18.04 "remember folder names"

«Remember folder name such as Ubuntu-18.04 for a specific movement. Unless you will overwrite everything on that folder name with also the lxrunoffline files and you risk losing older copies if you use one folder name. You might end up with a strange name to your project if you just use one directory.»

Lxrunoffline has several other commands if you need help just run:

lxrunoffline

The actual answer to the question query is: The user exists with Ubuntu already installed. But WSL command does not find anything in CMD.exe «Command Line» «System does not find distribution.»

You need to start the below WSL command from Windows Start Menu. And then the old Linux System will show up on WSL in the command line as found.

If this doesn’t work for you? Just start up PowerShell with Administrator and:

WSL --help
WSL "only this command, will start the Linux default distro selected"

Run the WSL

You can then start up using this command with CMD.exe Administrator in Windows:

lxrunoffline l "This will now list all your distros"

With an option to remove old distros copied to Windows folders are with perhaps Ubuntu18.04 such way that you will have to use Linux to remove older folders, do not try to copy or edit files in a distro with Windows Apps. You risk integrity problems as well as many errors followed by huge processing time. Use folder /mnt to find your drive with Linux and use commands there to further finish your work as perhaps copying the home directory into a new distro.

My solution to move «not copy» my distro then was: «to give space for C:»

lxrunoffline m -n Ubuntu-18.04 -d d:wslinstalledUbuntu-18.04 "remember folder names"

«Remember folder name such as Ubuntu-18.04 for a specific movement. Unless you will overwrite everything on that folder name with also the lxrunoffline files and you risk losing older copies if you use one folder name. You might end up with a strange name to your project if you just use one directory.»

Lxrunoffline has several other commands if you need help just run:

lxrunoffline

В прошлой статье мы рассмотрели установку WSL2 под Windows 10, подробности читайте здесь.

На одном из ПК, после установки WSL2, отказался запускаться linux.

Даже если установка прошла успешно, при запуске консоли linux вы можете получить ошибку:

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

2020-09-24_12-06-12.png

В этой статье мы рассмотрим способ её исправления.

Даже если вы уже установили дистрибутив 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 у меня уже установлен

Выбираем нужный нам образ

2020-09-24_17-09-22.png

Нажимаем Получить

2020-09-24_17-09-55.png

И ждем окончания установки

2020-09-24_17-10-40.png

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

2020-09-24_17-11-35.png

После установки программа появится в меню пуск

2020-09-24_17-12-38.png

Теперь вы сможете  запустить консоль linux

2020-09-24_17-14-06.png

Заключение

Мы рассмотрели решение проблемы с запуском, после установки WSL2 под Windows 10. В

Скорее всего у вас не возникнет проблем, но если ошибка появится, вы знаете как её исправить.

Недавно мы говорили о том, как выполнять различные Linux утилиты в Windows. Но для Windows 10 это, похоже, уже неактуально. Уже давно в Windows 10 появилась нативная поддержка оболочки Bash, в окружении дистрибутива Ubuntu благодаря подсистеме Linux для Windows 10.

Вы можете запускать различные дистрибутивы Linux в Windows без виртуализации, а с недавних пор, можно даже полноценно заставить работать графический интерфейс, правда для этого уже нужна вторая версия WSL. В этой статье мы рассмотрим как установить Linux в Windows 10.

Что такое WSL?

В начале цикла разработки Windows 10, Microsoft открыла страницу обсуждения и голосования за новые функции. Там зашел разговор о командной строке Windows. Разработчики спросили сообщество, что им не нравится в командной строке Windows и какие функции они хотели бы увидеть в новой версии.

Многие пользователи заявили что им нужны небольшие улучшения командной строки, другие же сказали что неплохо было бы иметь возможность использовать инструменты Linux / Unix и Bash в Windows 10. Много пользователей согласились с тем, что нужно сделать проще использование этих инструментов в Windows.

Прислушиваясь к голосу сообщества, в Microsoft первым делом улучшили CMD, PowerShell и другие инструменты командной строки. А во-вторых, они сделали, то что казалось невероятным несколько лет назад, они добавили реальный, нативный Bash вместе с поддержкой всех необходимых инструментов командной строки, работающих непосредственно на Windows, в среде, которая ведет себя как Linux. Это не какая-нибудь виртуальная машина, это реальный Linux в Windows.

Для реализации этого Microsoft построили новую инфраструктуру в Windows, это Windows Subsystem for Linux или WSL, на основе которой работает образ окружения Ubuntu, поставляемый партнером Canonical. Эта функция позволит разработчикам более эффективно использовать инструменты Linux. Инфраструктура основана на уже заброшенном проекте, Project Astoria, который должен был использоваться для запуска Android-приложений в Windows. Ее можно расценивать как противоположность Wine, только Wine запускает приложения Windows в Linux, подсистема Linux позволяет выполнять приложения Linux в Windows, точнее, только консольные приложения Bash в Windows 10.

С технической точки зрения, это вообще не Линукс. Каждая система GNU Linux должна быть основана на ядре Linux, здесь же просто есть возможность выполнять двоичные файлы, которые работают в Ubuntu.

С каждой новой версией  в WSL всё меньше ограничений, вы уже можете использовать сервисы, а также с WSL 2 стали доступны графические приложения. Решение предназначено для разработчиков, которые хотят запускать linux-утилиты из командной строки Windows. Да, эти команды имеют доступ к файловой системе Windows, но вы не можете использовать их для автоматизации своих задач или в стандартной командной строке Windows. Теперь давайте разберемся как установить WSL в Windows 10.

1. Проверка версии системы

Вы можете установить WSL в Windows 10 начиная с версии Windows 10 Insider Preview 14316, а для WSL версии 2, которая принесла много улучшений нужно обновление Windows 10 19041 или новее. Сначала убедитесь, что у вас правильная версия Windows. Для этого октройте PowerShell кликнув правой кнопкой по иконке пуск:

Затем выполните команду:

[environment]::osversion

Если отображается версия как на снимке экрана или выше, значит всё хорошо. Иначе идите обновлять систему.

2. Активация WSL и виртуализации

Чтобы активировать компонент Windows Subsystem for Linux можно использовать уже открытую командную строку PowerShell. Для этого выполните:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

Затем выполните ещё одну команду чтобы включить компонент виртуализации Hyper-V:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

Когда эта работа будет выполнена перезапустите компьютер, чтобы все компоненты установились.

3. Активация WSL 2

Чтобы установить WSL 2 необходимо скачать пакет с новым ядром с официального сайта Microsoft. Кликните по ссылке download the latest WSL2 Linux kernel:

Затем установите загруженный файл:

Чтобы всегда по умолчанию использовалась версия WSL 2 необходимо выполнить такую команду:

wsl --set-default-version 2

Если вы всё же получаете ошибку, с сообщением о том, что такой опции у этой команды нет, значит у вас старая версия Windows, обновляйте. Если команда не выдала ошибки — значит настройка WSL завершена успешно.

4. Установка Linux

Далее вам надо установить какой-либо дистрибутив Linux из магазина Microsoft. Достаточно просто открыть магазин и набарть в поиске имя дистрибутива, например Ubuntu, затем нажмите кнопку Get:

Дождитесь завершения установки и запустите загруженный дистрибутив из главного меню:

5. Настройка дистрибутива

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

Затем два раза пароль:

После этого вы сможете пользоваться оболочкой Bash в Windows 10:

6. Установка X сервера

Если вы хотите запускать графические приложения из WSL Windows, то вам понадобится установить в систему X сервер. Скачать его можно здесь.

Затем просто установите.

7. Запуск X сервера

После завершения установки на рабочем столе появится ярлык. В первом окне выберите Multipe windows чтобы окна программ, выполняемых на X сервере интегрировались в систему:

Затем выберите, что клиентов запускать не надо — Start no client:

Поставьте все галочки, затем нажмите кнопку Next, а потом Finish для завершения установки.

Брандмауэр Windows тоже попросит разрешить доступ этому приложению в сеть. Надо разрешить.

8. Настройка подключения

Чтобы настроить подключение к X серверу из WSL нужно узнать какой адрес система Windows присвоила WSL окружению, для этого вернитесь к PowerShell и выполните:

ipconfig

В данном случае это 172.25.224.1. Выполните в окружении дистрибутива такую команду:

export DISPLAY=172.25.224.1:0

Шаг 9. Установка и запуск приложений

Для установки приложений в дистрибутив необходимо сначала обновить списки репозиториев:

sudo apt update

Затем установите графическое приложение, например, Firefox:

sudo apt install firefox

После этого его можно запустить:

firefox

На снимке вы видите графический интерфейс WSL для браузера Firefox, запущенного в Linux:

Использование WSL

Установка WSL Windows 10 завершена. Теперь у вас есть полноценная командная строка Ubuntu в Windows с оболочкой Bash. Поскольку используются одни и те же двоичные файлы, вы можете устанавливать программное обеспечение с помощью apt из репозиториев Ubuntu. Можно установить любое приложение, но не все будут работать.

Если вы раньше уже пользовались Bash в Linux или MacOS, то будете чувствовать себя здесь как дома. Здесь не нужно использовать команду sudo, поскольку у оболочки уже есть права администратора. Ваша файловая система Windows доступна в /mnt/c.

Для управления и перемещения по каталогам используйте те же команды что и в Linux. Если вы привыкли к стандартной оболочке Windows, то вот основные команды, которые вам могут понадобится:

  • cd — изменить текущий каталог;
  • ls — посмотреть содержимое каталога;
  • mv — переместить или переименовать файл;
  • cp — скопировать файл;
  • rm — удалить файл;
  • mkdir — создать папку;
  • vi или nano — открыть файл для редактирования.

Важно также понимать, что в отличии от WIndows, оболочка Bash и ее окружение чувствительны к регистру. Другими словами, file.txt и File.txt, это совсем разные файлы.

Для установки и обновления программ необходимо использовать команду apt-get. Вот небольшой список ее  параметров:

  • apt update — скачать списки программного обеспечения из репозиториев;
  • apt install пакет — установить пакет;
  • apt search слово — поиск пакета по слову;
  • apt upgrade — загрузка и установка последних обновлений дистрибутива.

Не забудьте, что устанавливаемые в этой оболочке программы, ограничиваются по области действия оболочкой. Вы не можете получить доступ к ним из обычной командной строки PowerShell, CMD или в любом другом месте Windows. Также WSL не может напрямую взаимодействовать с исполняемыми файлами Windows, хотя обе среды имеют доступ к одним и тем же файлам на компьютере.

Выводы

Использование Linux в Windows как нельзя лучше подойдёт для разработчиков, но может понадобиться и начинающим пользователям, которые хотят познакомиться с системой. А что вы обо всём этом думаете? Использовали ли когда-нибудь WSL? Напишите в комментариях!

Creative Commons License

Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

Установка Linux в Windows 10В Windows 10 появилась новая возможность для разработчиков — оболочка Ubuntu Bash, позволяющая запускать, устанавливать приложения Linux, использовать скрипты bash прямо в Windows 10, все это называется «Подсистема Windows для Linux». В версии Windows 10 1709 Fall Creators Update доступны уже три дистрибутива Linux для установки. Во всех случаях требуется 64-разрядная система для установки.

В этой инструкции — о том, как установить Ubuntu, OpenSUSE или SUSE Linux Enterprise Server в Windows 10 и некоторые примеры использования в конце статьи. Следует также учитывать, что есть некоторые ограничения при использовании bash в Windows: например, нельзя запускать GUI приложения (правда, сообщают об обходных путях с помощью X server). Кроме этого, командами bash нельзя запустить Windows-программы, несмотря на наличие полного доступа к файловой системе ОС.

Установка Ubuntu, OpenSUSE или SUSE Linux Enterprise Server в Windows 10

Начиная с версии Windows 10 Fall Creators Update (версия 1709) установка подсистемы Linux для Windows несколько изменилась по сравнению с тем, что было в предыдущих версиях (для предыдущих версий, начиная с 1607, когда функция была представлена в бета-версии, инструкция — во второй части этой статьи). Также обратите внимание, что в Windows 10 2004 можно установить Kali Linux с графическим интерфейсом.

Теперь необходимые шаги выглядят следующим образом:

  1. Прежде всего, необходимо включить компонент «Подсистема Windows для Linux» в «Панель управления» — «Программы и компоненты» — «Включение и отключение компонентов Windows». Включение компонентов Linux для Windows 10
  2. После установки компонентов и перезагрузки компьютера, зайдите в Магазин приложений Windows 10 и загрузите оттуда Ubuntu, OpenSUSE или SUSE Linux ES (да, теперь доступно три дистрибутива). При загрузке возможны некоторые нюансы, о которых далее в примечаниях. Дистрибутивы Linux в магазине Windows 10
  3. Запустите загруженный дистрибутив как обычное приложение Windows 10 и выполните первоначальную настройку (имя пользователя и пароль). Настройка Ubuntu Linux в Windows 10 1709

Для включения компонента «Подсистема Windows для Linux» (первый шаг) можно использовать команду PowerShell:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Теперь несколько примечаний, которые могут быть полезны при установке:

  • Вы можете установить сразу несколько дистрибутивов Linux.
  • При загрузке дистрибутивов Ubuntu, OpenSUSE и SUSE Linux Enterprise Server в русскоязычном магазине Windows 10 заметил следующий нюанс: если просто ввести название и нажать Enter, то нужных результатов в поиске не оказывается, но если начать вводить и затем нажать по появляющейся подсказке, автоматически попадаешь на нужную страницу. На всякий случай прямые ссылки на дистрибутивы в магазине: Ubuntu, OpenSUSE, SUSE LES.
  • Запускать Linux можно и из командной строки (не только с плитки в меню Пуск): ubuntu, opensuse-42 или sles-12

Установка Bash в Windows 10 1607 и 1703

Для того, чтобы установить оболочку bash, выполните следующие простые действия.

  1. Зайдите в параметры Windows 10 — Обновление и безопасность — Для разработчиков. Включите режим разработчика (должен быть подключен Интернет для загрузки необходимых компонентов). Включение режима разработчика в Windows 10
  2. Зайдите в панель управления — Программы и компоненты — Включение или отключение компонентов Windows, отметьте пункт «Подсистема Windows для Linux». Установка подсистемы Linux в Windows 10
  3. После установки компонентов, введите в поиске Windows 10 «bash», запустите предлагаемый вариант приложения и выполните установку. Вы можете задать свое имя пользователя и пароль для bash, либо использовать пользователя root без пароля. Установка Ubuntu bash

По завершении установки вы можете запускать Ubuntu Bash на Windows 10 через поиск, или создав ярлык для оболочки там, где вам требуется.

Запуск Ubuntu Bash в Windows 10

Примеры использования Ubuntu Shell в Windows

Для начала отмечу, что автор не является специалистом по bash, Linux и разработке, а примеры ниже — просто демонстрация того, что в Windows 10 bash работает с ожидаемыми результатами для тех, кто разбирается в этом.

Приложения Linux

Приложения в Windows 10 Bash можно устанавливать, удалять и обновлять с помощью apt-get (sudo apt-get) из репозитория Ubuntu.

apt-get install в Windows 10

Использование приложений с текстовым интерфейсом ничем не отличается от такового на Ubuntu, например, вы можете установить Git в Bash и использовать его привычным образом.

Использование bash git в Windows 10

Скрипты bash

Вы можете запускать скрипты bash в Windows 10, создать их можно в имеющемся в оболочке текстовом редакторе Nano.

Скрипты bash в Windows 10

Скрипты bash не могут вызвать программы и команды Windows, но возможен запуск скриптов и команд bash из bat файлов и сценариев PowerShell:

bash -c "команда"

Также вы можете попробовать запускать приложения с графическим интерфейсом в Ubuntu Shell в Windows 10, на этот счет в Интернете уже имеется не одна инструкция и суть способа сводится к использованию Xming X Server для вывода GUI приложения. Хотя официально возможность работы с такими приложениями Майкрософт не заявлена.

Как было написано выше, я не тот человек, который может в полной степени оценить ценность и функциональность нововведения, но вижу как минимум одно применение для себя: различные курсы Udacity, edX и другие, связанные с разработкой проходить будет куда проще, работая с необходимыми инструментами прямо в bash (а в этих курсах обычно демонстрируется работа именно в терминале MacOS и Linux bash).

СОВЕТУЕМ: Нажмите здесь, чтобы исправить ошибки Windows и оптимизировать производительность системы

Bash — это оболочка Unix и форма командного языка, впервые появившаяся в 1989 году. Она широко распространялась как оболочка входа по умолчанию для Linux и MacOS. Хотя это в основном наблюдается в Linux и Marcos, существует версия, которую можно установить в Windows 10. Однако поступает много жалоб от пользователей, которые не могут использовать Bash в Windows 10 и « Подсистема Windows для Linux». не имеет установленных дистрибутивов »ошибка при попытке сделать это.

«Подсистема Windows для Linux не имеет установленных дистрибутивов» Сообщение об ошибке

Что вызывает ошибку «Подсистема Windows для Linux не имеет установленных дистрибутивов»?

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

  • Отсутствующие дистрибутивы: после установки bash для Windows существуют определенные дополнительные файлы, которые необходимо установить для подсистемы Windows. Если эти файлы не могут быть автоматически загружены из Магазина Microsoft, эта ошибка срабатывает.
  • Отключенная служба: в некоторых случаях служба LxssManager, которая обычно работает в фоновом режиме, может быть заблокирована после недавнего обновления. Это может помешать операционной системе получить все необходимые файлы для запуска оболочки bash, которая может вызвать ошибку.
  • Выбран неправильный дистрибутив по умолчанию: Если Ubuntu не был выбран в качестве дистрибутива по умолчанию для операционной системы, это может вызвать эту ошибку. Потому что Ubuntu — это необходимый дистрибутив для запуска оболочки bash.

Теперь, когда у вас есть общее представление о природе проблемы, мы будем двигаться к ее решению. Убедитесь, что реализовали их в определенном порядке, в котором они представлены, чтобы избежать конфликта.

Решение 1. Установка дистрибутивов вручную

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

  1. Нажмите одновременно кнопки « Windows » + « R », чтобы открыть окно «Выполнить».
  2. Введите « cmd » и нажмите « Shift » + « Ctrl » + « Enter », чтобы предоставить административные привилегии. Введите cmd в командной строке и нажмите Shift + Alt + Enter, чтобы открыть командную строку с повышенными правами.
  3. Введите следующую команду и нажмите ввод.
     lxrun / install 

    Инициирование команды Lxrun / install

  4. Это запустит загрузку из Microsoft Store, нажмите « Y », чтобы начать процесс загрузки, если это будет запрошено в командной строке.
  5. Проверьте, сохраняется ли проблема.

    Примечание. Эту команду также можно выполнить в Power Shell (администратор).

Решение 2: подождите 10 минут

У некоторых пользователей проблема исправлялась через 5-10 минут. Часто после перезагрузки некоторым процессам и службам требуется некоторое время для запуска. Из-за этого ошибка может быть вызвана, если вы попытаетесь запустить bash слишком рано после запуска. Поэтому перед загрузкой компьютера рекомендуется подождать не менее 10 минут после загрузки компьютера.

Решение 3. Установка Ubuntu

Если Ubuntu не был установлен на вашем компьютере, он может вызвать эту ошибку, потому что это очень важный дистрибутив, необходимый для запуска bash. Чтобы скачать и установить Ubuntu, выполните следующие действия.

  1. Перезагрузите компьютер и войдите в свою учетную запись.
  2. Нажмите на эту ссылку, чтобы открыть страницу загрузки.
  3. Нажмите « Получить » и выберите «Открыть Microsoft Store ». Нажав на кнопку «Получить»
  4. После загрузки Microsoft Store нажмите « Получить », чтобы начать загрузку дистрибутива Ubuntu.
  5. Когда процесс загрузки завершится, нажмите « Установить », который появляется вместо « Получить ». Нажав на кнопку «Установить»
  6. Ubuntu теперь будет установлен на компьютер.
  7. Проверьте, сохраняется ли проблема.

Решение 4. Запуск службы LxssManager

Возможно, служба LxssManager была отключена, из-за чего эта ошибка вызвана. Поэтому на этом этапе мы будем вручную запускать службу LxssManager. Для этого:

  1. Нажмите одновременно клавиши « Windows » + « R », чтобы открыть окно «Выполнить».
  2. Введите « Услуги . мск »и нажмите« Enter ». Введите «Services.msc» и нажмите Enter
  3. Прокрутите вниз и дважды щелкните сервис « LxssManager ».
  4. Нажмите на выпадающий тип запуска и выберите « Автоматически ».
  5. Нажмите на « Пуск » и выберите « Применить ». Выбрав Автоматический в качестве типа запуска и нажав Enter
  6. Нажмите « ОК » и проверьте, сохраняется ли проблема.

Windows

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

Отлично! Все работает.


Понравилась статья? Поделить с друзьями:
  • Нет синхронизации времени в windows 10
  • Нет усиления микрофона windows 10 почему в настройках
  • Нет синего экрана в windows 10
  • Нет усиления микрофона windows 10 usb
  • Нет сигнала с микрофона windows 10