Главная >> Windows >> Установка WSL 2 в Windows 10

Установка WSL 2 в 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.

Установка 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? Напишите в комментариях!

25 комментариев к “Установка WSL 2 в Windows 10”

  1. Круто, ништяк! Я этого жду сто лет. А ещё жду нативного SSH клиента, и особенно сервера. Наверняка, то что они вставили bash в винду это подготовка к нативному SSH-серверу. Наконец-то они доперли, сколько серверного сегмента теряют из-за банального неудобства удалённой работы с windows-серверами.

    Ответить
    • Привет ну что решил SSH в WSL ? Если да - дай пож наводку? Не могу выйти из убунту wsl по SSH - там что то напутано с ip адресом и нужен какойт о скрипт)))

      Ответить
  2. Отстойно, что созданные папки и файлы через винду не видны в терминале bash. Даже если файл создан через терминал, после редактирования виндоусными текст. ред. пропадает. Это ведь исправят со временем ? Юзать nano как-то очень - не очень.

    Ответить
  3. Ubuntu внутри Win10 -- это круто! Очень обрадовался, но потом расстроился. gedit, матрица -- это конечно хорошо, но мало. Я надеялся запустить Gambas. Установил (очень обрадовался, что даже есть в репозитории). Пытаюсь запустить --
    gambas3: cannot connect to X server
    Все запускал от имени администратора, что только не делал -- не запускается. А так надеялся, что можно будет над линуксовыми проектами работать из-под Винды...
    Может всё-таки есть способ? Или это только для игрушек?

    P.S. Установил пакет i2c-tools. Вроде всё прошло без ошибок. X-сервер для этих утилит не нужен. Но...
    $ sudo i2cdetect -l
    sudo: unable to resolve host HP
    И что толку от такой убунты? В игрушки можно и под виндой играться.

    P.P.S. gedit запускается, но тоже выдаёт ошибки:
    $ DISPLAY=:0 gedit

    (gedit:45): dconf-WARNING **: failed to commit changes to dconf: Failed to execute child process "dbus-launch" (Нет такого файла или каталога)

    (gedit:45): dconf-WARNING **: failed to commit changes to dconf: Failed to execute child process "dbus-launch" (Нет такого файла или каталога)

    (gedit:45): dconf-WARNING **: failed to commit changes to dconf: Failed to execute child process "dbus-launch" (Нет такого файла или каталога)

    ** (gedit:45): WARNING **: Could not load theme icon user-bookmarks-symbolic: Icon 'user-bookmarks-symbolic' not present in theme

    ** (gedit:45): WARNING **: Could not load theme icon user-home-symbolic: Icon 'user-home-symbolic' not present in theme

    ** (gedit:45): WARNING **: Could not load theme icon drive-harddisk-symbolic: Icon 'drive-harddisk-symbolic' not present in theme

    Как исправить?

    GAMBAS запустился. Но не "Ура!". Надо было указать DISPLAY=:0. Это похоже надо писать перед запуском любого графического приложения. Но на этом проблема не решилась. Проект, который работает под нормальной Убунтой в этой среде не запускается. пишет "Cannot load class 'FMain': Bytecode to recent. Please upgrade Gambas." Проапгрейлил. Та же проблема.

    Что делать?

    И что значит это:
    $ sudo DISPLAY=:0 gambas3
    sudo: unable to resolve host HP
    Что ещё надо разрешить? И так всё от администратора запущено.

    Ответить
    • А вы, видимо, читаете через строчку:
      Но запуск Bash в Windows 10 имеет некоторые ограничения, вы не сможете выполнять здесь серверное программное обеспечение, проще говоря сервисы, а также недоступны графические программы.

      Ответить
  4. Столько времени прошло и всё ещё никто не написал, что всё работает... И серверные программы(у меня, лично, ламп работает прекрасно) и графический интерфейс тоже(на винду ставим X11 и пишем экспорт дисплей 0 и запускаем хоть джиедит, хоть что-либо другое)

    Ответить
    • Привет решил SSH в WSL ? Если да - дай пож наводку? Не могу выйти из убунту wsl по SSH - там что то напутано с ip адресом и нужен какойт о скрипт)))

      Ответить
  5. Не будет мне щщастья

    c:\>systeminfo | find "ОС"
    Название ОС: Майкрософт Windows 10 Корпоративная LTSC
    Версия ОС: 10.0.17763 Н/Д построение 17763
    Изготовитель ОС: Microsoft Corporation
    Параметры ОС: Рядовая рабочая станция
    Сборка ОС: Multiprocessor Free

    c:\>C:\Windows\System32\bash.exe
    Нет установленных дистрибутивов подсистемы Windows для Linux.
    Дистрибутивы можно установить из Microsoft Store:
    https://aka.ms/wslstore

    c:\>date
    Текущая дата: 24.07.2019
    Введите новую дату (дд-мм-гг):

    Вот и приехали. На LTSC магазина нет как такового.

    Ответить
  6. я все сделал по инструкции, но при первом открытии Bash он мне открыл стартовую страницу гугл брузера и закрылся, в последующие разы он просто моментально закрывается , подскажите что я сделал не так, и как исправить

    Ответить
    • 1. Идем в поиск, ищем ПАРАМЕТРЫ, открываем ОБНОВЛЕНИЕ и БЕЗОПАСНОСТЬ, ищем ДЛЯ РАЗРАБОТЧИКОВ, ставим "точку" в "Режим разработчика".
      2. Идем в панель управления (классическую), выбираем "Программы и компоненты", выбираем "Включение или отключение компонентов Windows", выбираем "Подсистема Windows для Linux".
      3. Перезагружаемся
      4. Идем в Microsoft Store и качаем Ubuntu
      5. Запускаем скачанное.
      PROFIT!

      Ответить
  7. На сайте не нашел, как быть, если стоит 32-битная винда, а установка есть только для 64... Пункт 4 не идет, выдает ошибку установки WSL2

    Ответить
  8. Windows 10 + WSL отличный вариант для любой работы где требуется использовать и графические возможности Windows и терминал Linux. Например, Windows 10 + WSL хорошо подойдет для Full Stack разработки или внесение правок по seo

    Ответить

Оставьте комментарий