Dism exe online enable feature featurename microsoft windows subsystem linux all norestart

Время на прочтение
6 мин

Количество просмотров 86K

Раньше моей рабочей машиной был ноутбук, созданный Apple. Я мог делать на нём практически всё что угодно: разрабатывать программы, писать тексты, сочинять музыку, да и много чего ещё. Но мне не давали покоя мысли о том, что я привязан к экосистеме Apple, о том, что я зависим от прихотей этой компании. Поэтому я приступил к поискам чего-то нового.

Я начал собирать рабочую станцию под задачи машинного обучения. Поставил в неё, кроме прочего, отличный процессор, много памяти, достойную видеокарту. Практически все мои задачи я решал в Ubuntu. Правда, для работы с текстами мне нужен был Microsoft Office. Онлайновый Office тогда ещё не появился, и, давайте называть вещи своими именами, LibreOffice — это просто ужас какой-то. Для меня решением стала двойная загрузка в конфигурации Ubuntu — Windows 10. Мне невероятно понравилось то ощущение свободы, которое испытываешь, переходя с ОС от Apple на Ubuntu. А возможности, которые открываются перед тем, кто сам собирает свой компьютер, практически бесконечны.

Двойная загрузка в течение долгого времени полностью меня устраивала. А когда я миллион раз ей воспользовался, появилась технология WSL (Windows Subsystem for Linux, подсистема Windows для Linux). Когда это случилось, я начал решать некоторые свои Linux-задачи в Windows. Правда, даже так, многого для полноценной работы мне ещё не хватало. Но теперь, с выходом WSL 2, у меня возникает такое ощущение, что новая версия WSL способна кардинальным образом изменить ситуацию. Сегодня я предлагаю поговорить о том, как, с помощью WSL 2, перенести задачи по разработке программ из Linux в Windows 10. Я расскажу о новых возможностях WSL 2, и о том, что можно ожидать от этой подсистемы в будущем.

Обзор WSL 2

WSL 2 — это новая версия подсистемы Windows для Linux. В этой версии имеются некоторые изменения, определяющие то, как Linux-дистрибутивы взаимодействуют с Windows.

Microsoft любит Linux

В этом релизе WSL в распоряжении пользователя оказывается улучшенная производительность файловой системы и полная совместимость с системными вызовами. Конечно, у нас есть возможность запускать Linux либо на WSL 1, либо на WSL 2, и, более того, переключаться между разными версиями WSL можно в любое время. WSL 2 — это результат серьёзного усовершенствования базовой архитектуры системы, её новые возможности основаны на технологии виртуализации и на функционале ядра Linux. При этом Microsoft берёт на себя заботу о мелких деталях, поэтому пользователь WSL может просто заниматься своими делами, ни на что не отвлекаясь.

Установка

Microsoft обещает, что в ближайшем будущем установка WSL 2 будет выполняться очень просто, и что Linux можно будет обновлять с использованием механизма обновлений Windows. Пока же процесс установки WSL 2 требует некоторых усилий, но, на самом деле, ничего страшного тут нет.

В этом примере мы установим на Windows 10 Ubuntu 20.04. Надо отметить, что процесс установки будет одним и тем же для всех дистрибутивов Linux, доступных в Microsoft Store. Для начала нужно включить компонент Windows Subsystem for Linux. Для этого надо открыть PowerShell от имени администратора и выполнить следующую команду:

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

Далее, нужно обновить WSL до WSL 2. Для этого Windows 10 должна быть обновлена до версии 2004. В BIOS должна быть включена технология виртуализации Intel. Снова воспользуемся PowerShell с административными привилегиями и выполним такую команду:

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

Для завершения установки WSL и обновления до WSL 2 перезагрузите компьютер. Затем нужно установить WSL 2 в качестве версии WSL, используемой по умолчанию при установке новых дистрибутивов Linux. Для этого, всё так же, пользуясь PowerShell с правами администратора, выполним эту команду:

wsl --set-default-version 2

После того, как вы выполните эту команду, может появиться такое сообщение:

WSL 2 requires an update to its kernel component. For information please visit https://aka.ms/wsl2kernel

Сообщение, выдаваемое при попытке установки WSL 2 как подсистемы Windows для Linux, используемой по умолчанию

Перейдите по указанной ссылке и установите соответствующий MSI-файл, благодаря которому на вашу машину будет установлено ядро Linux для WSL 2. После того, как ядро будет установлено, выполните вышеприведённую команду снова. Теперь она должна завершиться успешно, не выдавая подобного сообщения.

Теперь осталось лишь установить нужный дистрибутив Linux. Для этого надо открыть Microsoft Store и поискать там Ubuntu 20.04 LTS. После установки дистрибутива в меню Пуск должен появиться ярлык для запуска Ubuntu. Запустите систему и следуйте инструкциям для завершения установки (в целом, завершение установки заключается в создании нового пользователя).

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

wsl --list --verbose

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

wsl --set-version <distribution name> <versionNumber>

Вот и всё. Теперь в вашем распоряжении имеется полноценный дистрибутив Ubuntu, работающий в Windows 10.

Настройка рабочей среды для программиста

Теперь, когда в вашем распоряжении оказалась рабочая Ubuntu, вы можете устанавливать всё, что вам может понадобиться. Например, если вы — дата-сайентист, вы можете установить самый свежий дистрибутив Anaconda. Если вы — фронтенд-разработчик, то вас, например, могут заинтересовать Angular, npm и многое другое. Здесь же мне хотелось бы сосредоточиться на двух инструментах. Это — Visual Studio Code и связка Docker + Kubernetes.

▍Visual Studio Code

VS Code — это редактор кода, которому отдаёт предпочтение множество разработчиков. Одна из сильных сторон этого редактора заключается в поддержке бесконечного множества расширений. А теперь, когда мы включили WSL 2, совершенно необходимым расширением для VS Code можно назвать Remote Development.

Это расширение позволяет удалённо работать над кодом, который имеется в среде, создаваемой средствами WSL 2, в контейнере, или даже на удалённой виртуальной машине, доступ к которой осуществляется по SSH. Данное расширение позволяет, например, создать проект в ОС Linux, работающей в WSL 2, и использовать для работы над этим проектом редактор VS Code, установленный в Windows 10.

Собственно говоря, VS Code отличается огромными возможностями. Это и интеллектуальная система IntelliSense, и интеграция с git, и отладчик, и терминал, и очень много чего ещё. Полагаю, с настройкой VS Code вы справитесь и очень скоро сможете сделать из этого редактора именно то, что нужно вам.

▍Docker + Kubernetes

Docker для Windows сделан на «хорошо», но не на «отлично». На самом деле, именно Docker заставлял меня постоянно «прыгать» между Windows и Ubuntu. Например, мне приходилось делать это тогда, когда нужно было создать новый образ Docker. А вот WSL 2 отличается полной поддержкой Docker. Это, полагаю, такая возможность новой подсистемы, которая делает работу с Docker даже удобнее, чем в Linux.

Для того чтобы включить эту возможность, нужно перейти в настройки Docker Desktop и включить опцию Use the WSL 2 based engine.

Включение поддержки Docker для WSL 2

Более того, перейдя в раздел настроек Kubernetes, можно включить возможность запуска локального кластера Kubernetes, просто установив соответствующий флажок.

Включение Kubernetes

Теперь можно перезапустить Ubuntu в WSL 2 и выполнить следующие команды:

docker version 
kubectl version

Результаты выполнения подобных команд покажут, что в вашем распоряжении теперь есть Docker и Kubernetes.

Docker и Kubernetes работают в среде WSL 2

Бонус: новый терминал Windows

В качестве дополнительной полезной программы вы можете установить из Microsoft Store новый терминал Windows. В описании к нему сказано, что перед нами новое современное приложение — быстрое, эффективное и мощное. Оно предназначено для пользователей, работающих с инструментами командной строки и с соответствующими средами, наподобие PowerShell. Среди его главных возможностей можно отметить следующие: поддержка вкладок и панелей, поддержка Unicode и UTF-8, ускорение вывода текста средствами GPU, поддержка пользовательских тем, стилей и настроек.

Вот видео про новый терминал Windows.

Более того, новый терминал очень хорошо выглядит, а его внешний вид поддаётся настройке. Настройки можно выполнять, пользуясь особым JSON-файлом. Здесь можно найти темы для терминала. Вот материал, в котором можно почитать подробности о терминале.

Планы развития WSL

В WSL 2 ещё недостаёт некоторых возможностей, но подсистема Windows для Linux развивается в правильном направлении. В ближайшее время установить WSL можно будет с помощью одной команды. Для этого достаточно будет открыть терминал Windows и выполнить в нём следующее:

wsl.exe --install

Кроме того, WSL 2 будет той версией подсистемы, которая, при первой установке WSL, устанавливается по умолчанию.

Надо отметить, что разработчики очень ждут от WSL следующих возможностей: поддержка видеокарт и поддержка приложений с графическим интерфейсом.

С момента выхода WSL 1 команду разработчиков этой подсистемы чаще всего просили о внедрении в WSL поддержки CUDA или GPU Compute. В последний код команды разработчиков WSL, систем виртуализации, DirectX, Windows Driver работают над этой возможностью. Поэтому — следите за новостями.

Обучение модели, использующей технологии глубокого обучения, в WSL 2 (с использованием CUDA)

Более того, на подходе и поддержка графических приложений для Linux. Например, в Linux-системах, установленных на WSL, можно будет пользоваться текстовыми редакторами или IDE. На Windows-машине можно будет даже разрабатывать GUI-приложения для Linux!

Поддержка графического интерфейса Linux в WSL 2

Итоги

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

А вы пользуетесь WSL 2?

Обновление от 08.03.2020

Теперь установка образа linux производится только через Microsoft Store

Перед тем как продолжить я крайне рекомендую обновить windows 10 до версии 20H2, а уже потом устанавливать WSL2! О том, как обновить windows 10 до версии 20H2 написано в этой статье.

Не так давно Windows представила новый функционал для Windows – Windows Subsystem for Linux (WSL) – подсистему linux для windows. Она позволяет нативно запускать приложения для linux под windows.

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

Новая версия WSL 2 принесла много нового и теперь появилось полнофункциональное ядро linux, благодаря которому, стало возможно запускать практически любые программы написанные для linux.

Сегодня мы рассмотрим установку WSL2 на Windows 10.

Установка возможна только на Windows 10, не важно какой редакции, главное, чтобы версия была 2004 сборки 19041 или выше, хотя всё должно работать и на 1903 сборка 18362, но все же рекомендую поставить всё поселение обновления, во избежание проблем.

Проверим версию windows

winver

2020-09-23_18-59-37.png

Если у вас уже установлен любая версия Docker, то нужно предварительно его удалить, во избежание проблем. Если вам не нужен для других целей Hyper-V вы его тоже можете удалить, нам он не понадобиться.

Установка Windows Subsystem Linux

Для начала установим Microsoft-Windows-Subsystem-Linux

Запустим PowerShell с правами администратора

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

Дождитесь окончания установки.

PS C:\WINDOWS\system32> dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart 

Cистема DISM
Версия: 10.0.19041.329

Версия образа: 10.0.19041.508

Включение функций
[==========================100.0%==========================]
Операция успешно завершена.

 Обновим до версии 2 

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
Cистема DISM
Версия: 10.0.19041.329

Версия образа: 10.0.19041.508

Включение функций
[==========================100.0%==========================]
Операция успешно завершена.

Теперь обязательно нужно перезагрузить ваш ПК.

Скачаем и установим обновление ядра Linux для WSL2

https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

Произведем настройку WSL2 укажем всегда использовать версию 2

LОткройте cmd.exe и запустите

wsl --set-default-version 2

Установка Debian в WSL2

Запустите Microsoft Store из меню Пуск

2021-03-08_09-56-36.png

Введите в поиск debian и нажмите Enter

2021-03-08_09-57-49.png

В следующем окне выберите Debian:

2021-03-08_10-00-51.png

Нажмите «Установить»

2021-03-08_10-02-04.png

Ждите окончания скачивания и установки.

Запуск Debian в WSL2

Если вы откроете меню Пуск, вы найдете новый ярлык с установленной операционной системой, в нашем случае это Debian.

2020-09-23_19-41-26.png

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

Введите имя пользователя мы укажем user

Введите пароль пользователя.

2020-09-23_19-44-071.png

Теперь вы можете работать с консолью, как будто у вас установлен обычный Linux.

Обновим пакеты:

sudo apt update && sudo apt upgrade 

 sudo apt update && sudo apt upgrade

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for user:
Get:1 http://security.debian.org/debian-security stretch/updates InRelease [53.0 kB]
Ign:2 http://deb.debian.org/debian stretch InRelease
Get:3 http://deb.debian.org/debian stretch-updates InRelease [93.6 kB]
Get:4 http://security.debian.org/debian-security stretch/updates/main amd64 Packages [579 kB]
Get:5 http://deb.debian.org/debian stretch Release [118 kB]
Get:6 http://deb.debian.org/debian stretch-updates/main amd64 Packages [2,596 B]
Get:7 http://deb.debian.org/debian stretch-updates/main Translation-en [2,176 B]
Get:8 http://security.debian.org/debian-security stretch/updates/main Translation-en [258 kB]
Get:9 http://deb.debian.org/debian stretch Release.gpg [2,410 B]
Get:10 http://deb.debian.org/debian stretch/main amd64 Packages [7,080 kB]
Get:11 http://deb.debian.org/debian stretch/main Translation-en [5,377 kB]
Fetched 13.6 MB in 6s (2,122 kB/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
37 packages can be upgraded. Run 'apt list --upgradable' to see them.
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
  apt apt-utils base-files debian-archive-keyring e2fslibs e2fsprogs gnupg gnupg-agent gpgv libapt-inst2.0
  libapt-pkg5.0 libc-bin libc-l10n libc6 libcomerr2 libdns-export162 libgnutls30 libidn11 libisc-export160 libseccomp2
  libsqlite3-0 libss2 libssl1.0.2 libsystemd0 libudev1 locales multiarch-support perl-base sudo systemd systemd-sysv
  tzdata udev vim-common vim-tiny wget xxd
37 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 26.5 MB of archives.
After this operation, 93.2 kB of additional disk space will be used.
Do you want to continue? [Y/n]

Пакеты ставятся довольно шустро.

Давайте попробуем поставить mc

sudo apt install mc
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  bzip2 file libgdbm3 libglib2.0-0 libglib2.0-data libgpm2 libicu57 libmagic-mgc libmagic1 libperl5.24 libssh2-1
  libxml2 mc-data mime-support perl perl-modules-5.24 rename sgml-base shared-mime-info unzip xdg-user-dirs xml-core
  xz-utils
Suggested packages:
  bzip2-doc gpm arj catdvi | texlive-binaries dbview djvulibre-bin genisoimage gv imagemagick libaspell-dev links
  | w3m | lynx odt2txt poppler-utils python python-boto python-tz xpdf | pdf-viewer zip perl-doc
  libterm-readline-gnu-perl | libterm-readline-perl-perl make sgml-base-doc debhelper
The following NEW packages will be installed:
  bzip2 file libgdbm3 libglib2.0-0 libglib2.0-data libgpm2 libicu57 libmagic-mgc libmagic1 libperl5.24 libssh2-1
  libxml2 mc mc-data mime-support perl perl-modules-5.24 rename sgml-base shared-mime-info unzip xdg-user-dirs
  xml-core xz-utils
0 upgraded, 24 newly installed, 0 to remove and 0 not upgraded.
Need to get 24.0 MB of archives.
After this operation, 108 MB of additional disk space will be used.
Do you want to continue? [Y/n]

Запустим mc

2020-09-23_19-54-17.png

Обратите внимание, в папке /mnt уже примонтированы диски вашего ПК.

И в конце, проверим версию linux

uname -a
Linux DESKTOP 4.19.128-microsoft-standard #1 SMP Tue Jun 23 12:58:10 UTC 2020 x86_64 GNU/Linux

Заключение

Сегодня мы рассмотрели установку новой подсистемы WSL2 на Windows 10.

Установили все необходимые модули и скачали образ debian.

Установили образ, запустили консоль и задали имя пользователя и пароль.

Обновили дистрибутив и установили пакет mc

Проверили версию linux.

Windows Subsystem for Linux (WSL) — подсистема ОС Windows 10, позволяющая разработчикам, тестировщикам запускать нативные приложения Linux, писать скрипты, выполнять команды непосредственно из Windows. В обновлённой Windows 10 (2004) появилась 2я версия WSL, в которой используется полноценное ядро Linux с возможностью запуска приложений и контейнеров Docker, реализована высокая скорость загрузки, небольшой объем потребляемых ресурсов, управление в фоновом режиме, обновление ядра. Таким образом вы сможете запускать ELF64 программы, которые могут получать доступ к файловой системе Windows без использования сторонних порто (таких как Cygwin).

Образ ядра Linux (версия ядра 4.19) в Windows 10 представляет собой легкую виртуальную машину, для запуска которой не нужно ставить полноценную роль Hyper-V. Системные вызовы Linux транслируются на лету в вызовы Windows без использования эмулятора (в отличии от WSL1).

Изначально компонент WSL отключен. Чтобы его включить, вам необходимо зайти в Пуск -> Панель управления -> Программы и компоненты -> Включение и отключение компонентов Windows (Control Panel\All Control Panel Items\Programs and Features\Turn Windows features on or off), активировать галочку Подсистема Windows для Linux (Windows Subsystem for Linux), нажать кнопку ОК, и перезагрузить компьютер.

установка Windows Subsystem for LInux 2 версия в windows 10

Вы можете включить компоненты WSL в Windows 10 с помощью dism:

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

или PowerShell

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

В Windows Server 2004 Semi-Annual Channel (SAC) для установки компонента WSL используется командлет Install-WindowsFeature:

Install-WindowsFeature -Name Microsoft-Windows-Subsystem-Linux

После этого также необходимо перезагрузить компьютер.

В настройка BIOS/UEFI компьютера должна быть включена поддержка аппаратной виртуализации: Intel VT (Intel Virtualization Technology) или AMD-V.

Теперь вам нужно выполнить обновление WSL до версии 2. Для этого требуется зайти на сайт https://docs.microsoft.com/ru-ru/windows/wsl/wsl2-kernel, скачать файл wsl_update_x64.msi, установить его. По завершении увидите картинку

windows subsyste for linux update setup

Чтобы сделать WSL2 архитектурой по умолчанию для новых дистрибутивов, в PowerShell выполните команду:

wsl --set-default-version 2

Далее вам необходимо открыть Microsoft Store, в поиске ввести слово “Linux”. В появившемся списке выберите нужный дистрибутив. Доступные Ubuntu, Debian, Kali Linux, Linux Cheatsheet, SUSE Linux Enterprise Server15, openSUSE Leap 15-1, Pengwin Enterprise, Fedora Remix for WSL или другие. В нашем примере мы будем использовать Ubuntu 20.04 LTS, нажмите кнопку Получить.

образы linux для wsl в microsoft store

Если у вас отключен Windows Store или вы хотите установить дистрибутив WSL в Core редакции Windows Server, вы можете скачать дистрибутив Ubuntu с помощью PowerShell командлета Invoke-WebRequest:

Invoke-WebRequest https://aka.ms/wslubuntu2004 -OutFile ubuntu-2004.zip –UseBasicParsing

Распакуйте архив:

Expand-Archive -Path .\ubuntu-2004.zip

Запустите установку образа Linux с помощью файла Ubuntu.exe.

Также вы можете скачать образ в виде appx файла и установить его с помощью командлета Add-AppxPackage.

После установки можно проверить используемую версию WSL с помощью команды

wsl --list –-verbose

wsl --list –-verbose список доступных образов linux

Если у вашей среды Linux указана версия 1, нужно изменить ее на WSL2 командой:

wsl --set-version Ubuntu-20.04 2

Файл жёсткого диска с образом виртуальной машины ОС Linux Ubuntu 20.04 будет располагаться в профиле пользователя: C:\Users\234\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState.

После установки дистрибутива в стартовом меню появляется ярлык на него. Для запуска Ubuntu зайдите в меню Пуск, нажмите на соответствующем ярлыке и получите в отдельном окне полноценную командную оболочку Bash. Запускать WSL можно и с помощью команды wsl. При первом запуске образа в командной строке Bash вам будет предложено создать пользователя и пароль (которые не должны совпадать с учётной записью Windows). Чтобы выполнять команды с правами root, необходимо использовать дополнительный ключ (префикс) sudo. В WSL есть общие команды для Bash и CMD, и тут нужно не забывать, что система Linux чувствительна к регистру.

Вы можете выполнить Linux-команды из CMD. Для этого необходимо вначале указать “WSL”. Например, для просмотра списка файлов и папок в каталоге Windows, выполните:

wsl
ls /mnt
ls/mnt/c

запуск команд linux в windows
dir | wsl grep Sa
wsl ls ‑la > 123.txt
wsl ls ‑la /proc/cpuinfo
wsl ls ‑la “/mnt/c/Program Files”

команды linux

Также вы можете открыть проводник командой explorer.exe, калькулятор – calc.exe, блокнот – notepad.exe, paint – mspaint.exe, календарь – cal, погоду – curl wttr.in

запуск команд linux в windows 10 subsystem for linux

Ещё один пример взаимосвязи 2х систем – вы можете открыть в Windows файл из WSL-дистрибутива по сетевому пути. Для этого в CMD наберите путь к файлу:

notepad \\wsl$\Ubuntu-20.04\home\1122.txt

Из окна консоли вы можете обновить список пакетов в Ubuntu с помощью команд:

sudo apt-get update
sudo apt-get upgrade

После обновления Ubuntu папка …/LocalState будет занимать 1.5 Гб.

Из командной строки Linux можно не только просмотреть Windows-файлы и каталоги, но и получить к ним доступ. Чтобы удобнее копировать файлы, просматривать директории и их содержимое, установите файловый менеджер Midnight Commander с помощью команды

sudo apt-get install mc

Вы можете запустить Midnight Commander как в командной оболочке Bash, так и внутри CMD. На скриншоте ниже показано, что в двух панелях MC показывается список файлов с обеих ОС.

Midnight Commander в windows 10 wsl2

Можно отобрахить сетевые настройки (IP адрес) IP-адрес Linux-системы:

ip addr | grep eth0

запуск команд linux из windows

В WSL не предусмотрена работа приложений с графическим интерфейсом. Тем не менее вы можете попробовать их установить и использовать. Чтобы запускать графические приложения в Linux, нужно скачать и установить в Windows программу VcXsrv Windows X Server (https://sourceforge.net/projects/vcxsrv/).

VcXsrv Windows X Server

С помощью пакетного менеджера apt-get установим несколько графических программ: например, браузер, текстовый редактор или что-то ещё:

sudo apt-get install gedit
sudo apt-get install firefox
sudo apt-get install x11-app

Затем создайте файл в директории root:

cd /~
vim .bash_login

впишите строку

export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0

сохраните запись

Esc -> :wr -> :q

Теперь можете запустить графические программы Linux через WSL командами:

firefox

или

gedit

запуск браузера firefox через WSL 2 в Windows 10

запуск графического редактора gedit в WSL

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

wsl --list –all

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

wsl --shutdown

У пользователей Windows 10 есть необычная возможность установить операционную систему Ubuntu на свой компьютер. Механизм, обеспечивающий такую возможность, называется WSL — Windows Subsystem for Linux. Далее я расскажу, как с помощью WSL установить полноценную Ubuntu на Win 10 штатными средствами системы.

Для начала кратко поясню, что такое WSL на практике. Это некий слой абстракции, который позволяет запускать linux приложения в среде windows. И это не виртуальная машина. И Linux, и Windows приложения работают в рамках одной операционной системы с совместным доступом к данным на дисках. Вы прозрачно можете запустить приложение на ubuntu и открыть им файл в директории windows.

Для примера, расскажу, где ubuntu под wsl версии 1 хранит свои файлы — C:\Users\user1\AppData\Local\lxss.

Файлы ubuntu wsl

Тут и корень системы, и директории пользователей. Посмотреть содержимое можно из-под windows. Только не рекомендуется их редактировать. Работа linux системы может быть нарушена. На примере доступа к файлам видно, что это не виртуальная машина. Важно понимать это отличие.

А вот то же самое можно сделать из-под ubuntu, открыв файлы из директории windows.

Доступ к windows каталогам из-под linux

С помощью данной технологии, вы условно сможете запустить полноценный Ubuntu Server на своем компьютере. Читайте мой обзор на Ubuntu, чтобы иметь представление о том, чем он отличается от остальных linux дистрибутивов.

Зачем нужна Ubuntu WSL на Windows

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

  1. Первое и самое очевидное — для использования линуксовых утилит — git, ansible, cron, rsync и т.д. Речь в первую очередь идет о том софте, которого нет в windows, либо которое затруднительно или неудобно запускать.
  2. Настройка привычного web окружения в виде lamp (linux, apache, mysql, php) или lemp (то же самое, только с nginx). Особенно это актуально для разработчиков.
  3. Для обычного знакомства и изучения linux. Нет нужды разбираться с виртуализацией или рядом с windows устанавливать отдельно linux. Тут все в комплекте, можно без проблем переключаться между системами в режиме реального времени. В общем, это удобно.

Это то, что первое приходит в голову. Думаю, есть и другие причины, для чего может быть полезно установить ubuntu wsl. Делитесь своим мнением в комментариях. Может я что-то важное упускаю.

Установка Ubuntu WSL под Win 10

Установка подсистемы Windows для Linux в Windows 10 неплохо описана в официальном руководстве от Microsoft. Чтобы установить Ubuntu WSL на Windows, надо для начала включить компонент системы Windows под названием Windows-Subsystem-Linux. Для этого запускаем cmd с правами администратора (это важно!) и переходим в powershell. Там выполняем:

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

Установка Ubuntu WSL в Windows 10

После этого активируем компонент Платформа виртуальных машин.

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

Активация компонента VirtualMachinePlatform

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

Cкачиваем и устанавливаем Пакет обновления ядра Linux в WSL 2 для 64-разрядных компьютеров — https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

Установка обновления ядра Linux в win10

Дальше устанавливаем версию WSL 2 по умолчанию. Она более продвинутая и быстрая, по сравнению с первой.

wsl --set-default-version 2

Выбор версии wsl 2 по умолчанию

Теперь идем в Windows Store и ищем там необходимую вам версию Ubuntu WSL. Я просто в строку поиска ввел название дистрибутива и получил все доступные версии.

Установка ubuntu wsl через магазин windows

После установки в меню Пуск можно запустить Ubuntu WSL. При первом запуске вам предложат задать имя пользователя для Linux системы.

Первый запуск ubuntu wsl

Вот и все. Заходим в свежеустановленную Ubuntu 20 LTS на Win 10.

ubuntu в win 10

У вас под рукой практически полноценная linux система, работающая нативно под windows.

Настройка Ubuntu WSL

Выполним первоначальную настройку Ubuntu WSL, чтобы с ней удобнее было далее работать. Начнем с подключения по SSH.

Настройка ssh

Терминал Windows не очень удобен и привычен. Так что если вы привыкли подключаться по ssh через какой-нибудь другой менеджер подключений, вам нужно будет на wsl системе настроить ssh. Это не совсем очевидная процедура. Чтобы заставить нормально работать openssh server, его надо переустановить. Делаем это:

# sudo apt reinstall openssh-server

Настройка ssh в ubuntu wsl

Теперь сразу разрешим подключаться с использованием паролей. Для этого открываем конфиг /etc/ssh/sshd_config и разкомментируем настройку:

PasswordAuthentication yes

Авторизация по паролю через ssh

После этого перезапустите службу sshd

sudo service ssh restart

Мы закончили настройку ssh в ubuntu. Теперь к ней можно подключиться, например, через putty. Используем адрес 127.0.0.1 и порт 22.

Подключение по ssh к wsl

Вот и все. Можете использовать любой другой ssh клиент.

Обновление

Для того, чтобы обновить Ubuntu WSL на Windows 10 достаточно внутри linux системы запустить стандатрное средство обновления пакетов — apt.

sudo apt update
sudo apt full-upgrade

Обновление Ubuntu WSL на windows

В общем случае этого достаточно для обновления системы. Если же вы хотите выполнить обновление до следующего релиза, то лучше это сделать через Windows Store, установив нужную версию ubuntu.

Установка MC

Для того, чтобы установить популярный в linux среде файловый менеджер Midhight Commander или коротко MC, необходимо опять же воспользоваться пакетным менеджером apt.

sudo apt install mc

Установка MC в WSL

При этом вы сможете без проблем перемещаться не только внутри ubuntu, но и открывать файлы windows. Традиционные диски C:, D: и т.д. смонтированы в /mnt.

Войти под root

Для того, чтобы в Ubuntu WSL зайти под ученой записью root, необходимо под пользователем выполнить в консоли:

sudo su

root в ubuntu wsl

Теперь вы полноценный root пользователь и можете запускать команды с повышенными привилегиями без sudo.

Автозапуск служб

В Ubuntu WSL не работает systemd и возникает закономерный вопрос, а как же тогда настроить автозапуск нужных служб. Тут есть два принципиально разных подхода по автозапуску служб:

  1. Служба в wsl запускается автоматически после запуска компьютера.
  2. Служба wsl запускается автоматически после первого входа в bash установленного linux.

Для первого случая проще всего воспользоваться готовым скриптом wsl-autostart — https://github.com/troytse/wsl-autostart. С его помощью вы можете выбрать любые программы из ubuntu, которые захотите запустить при старте компьютера.

Если вы хотите выполнить какую-то команду при первом входе в wsl, то просто добавьте ее в файл .bashrc домашнего каталога пользователя. Например, добавим туда вывод фразы Hello World! Для этого добавляем в самый конец:

echo "Hello World"

Автозапуск службы в ubuntu wsl

Теперь при запуске терминала wsl, вы увидите свое сообщение.

Пример выполнения команды при входе

Вместо команды echo можете написать любую другую. Например, запуск MC:

/usr/bin/mc

Теперь при запуске терминала ubuntu wsl у вас автоматически будет запускаться файловый менеджер MC.

Обновление WSL до WSL2

Во время установки любой WSL системы у вас есть возможность выбора ее версии. Вторая версия более современная и быстрая, так что в общем случае рекомендуется использовать ее. Но возможно вам по какой-то причине понадобится первая. Например, в WSL 1 файловая система linux в открытом виде в виде файлов в директории C:\Users\user1\AppData\Local\lxss, а во второй версии в виде единого виртуального диска. Разница принципиальна.

Для того, чтобы обновить WSL1 до WSL2 необходимо через powershell активировать компонент VirtualMachinePlatform:

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

Далее скачать и установить обновленный пакет ярда Linux (msi установщик) — https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi.

Указать версию WLS2 как дефолтную:

wsl --set-default-version 2

В завершении проапгрейдить установленный дистрибутив до WSL2 или поставить новый.

wsl --set-version <distribution name> <versionNumber>

Версии WSL можно переключать в любое время. Узнать distribution name можно с помощью команды:

wsl --list --verbose

Обновление WSL до WSL2

Reboot Ubuntu WSL

Работа в Windows 10 с Ubuntu несколько необычна, поэтому сходу не понятные даже такие простые вещи, как перезагрузка linux системы. Как сделать reboot в Ubuntu WSL? Для того, чтобы перезагрузить систему, достаточно выполнить в консоли powershell команду:

wsl.exe --shutdown

Все экземпляры wsl будут завершены. После запуска терминала ubuntu wsl она запустится заново, что будет равнозначно обычной перезагрузки системы.

Если вы используете первую версию WSL, то перезапуск linux систем выполняется перезапуском службы, которая их обслуживает. Выполняется так же в консоли windows^

net stop LxssManager
net start LxssManager

Как удалить Ubuntu WSL

Если вам нужно удалить Ubuntu WSL из Windows 10, то сделать это можно точно так же, как любое другое приложение, установленное из Магазина. Выбираете Ubuntu WSL через пуск и нажимаете Удалить.

Удаление Ubuntu WSL

То же самое можно сделать и через консоль powershell

wsl --unregister <distribution name>

Список установленных систем смотрим командой:

wsl --list --verbose

Ничего сложного, система удаляется фактически в одну команду. Для повторной установки достаточно еще раз установить ubuntu через Магазин.

Под GNU/Linux-дистрибутивы создано огромное количество полезных и удобных инструментов и приложений для обычных пользователей и разработчиков. Далеко не всё из этого доступно на Windows, но, к счастью, для ОС от Microsoft есть решения, исправляющие эту проблему.

WSL — официальная подсистема Linux внутри Windows

В Windows 10 существует крайне полезная вещь под названием Windows Subsystem for Linux (WSL). Она позволяет использовать GNU/Linux-среду прямо в Windows и запускать не только команды, но и, например, Bash-скрипты. Для использования WSL необходимо следовать инструкции ниже.

Шаг 1. Проверьте, подходит ли текущая версия Windows требованиям. Для этого нажмите сочетание клавиш Win+R, затем введите winver. Найдите строку «Сборка ОС» — она должна быть свежее версии 14316.

Как выполнять Linux-команды внутри Windows: официальный и сторонние способы

Шаг 2. Запустите стандартную утилиту PowerShell от имени администратора и введите в ней команду для включения WSL:

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

Шаг 3. Если версия Windows, определённая в первом пункте, свежее 18362, вы можете установить WSL 2, который в разы быстрее первой версии и обладает доработанным ядром. Введите команду ниже, если нужно установить WSL 2:

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

После этого скачайте и установите пакет обновления с официального сайта.

Шаг 4. Перезагрузите компьютер. Если была произведена установка WSL 2, введите в PowerShell от имени администратора следующую команду:

wsl —set-default-version 2

Шаг 5. После перезагрузки откройте фирменный магазин приложений Microsoft Store и найдите подходящий GNU/Linux-дистрибутив. Самым популярным является Ubuntu — вы можете установить любую версию из представленных в Microsoft Store.

Как выполнять Linux-команды внутри Windows: официальный и сторонние способы

Шаг 6. Как только установка завершится, найдите дистрибутив в меню «Пуск» и запустите его.

Шаг 7. Пройдите этап первоначальной настройки, введя имя нового пользователя и придумав пароль.

Шаг 8. Теперь различные GNU/Linux-команды можно выполнять, запустив дистрибутив, либо введя в командной строке wsl <команда>. Например, для просмотра всех файлов в текущей директории достаточно в командной строке выполнить wsl ls -a.

Как выполнять Linux-команды внутри Windows: официальный и сторонние способы

Обращу внимание на то, что путь к дискам в WSL отличается от такового в Windows. Вместо привычного C:/ используйте /mnt/c/. Также не забывайте про экранирование пробелов с помощью символа \ — это также пригодится при вводе путей к файлам.

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

Шаг 1. Загрузите X-сервер и установите его.

Шаг 2. Запустите его с помощью ярлыка на рабочем столе. В открывшемся окне выберите вариант Multiple windows, затем Start no client. Завершите настройку кнопкой Finish.

Шаг 3. Откройте дистрибутив через меню Пуск и выполните команду export DISPLAY=:0

Шаг 4. Запустив приложение с графическим интерфейсом в WSL, вы увидите новое окно прямо в Windows.

Как выполнять Linux-команды внутри Windows: официальный и сторонние способы

CoreUtils — лёгкий инструмент для запуска базовых команд

Плюс данной утилиты — возможность запуска не только на Windows 10, но и на более старых версиях ОС. Кроме того, она легка и не занимает много места. Не обошлось без недостатков — программа скудна на функционал и не обновлялась очень давно. Она не только не умеет запускать скрипты и приложения с GUI, но и поддерживает лишь самые базовые GNU/Linux-команды. Установка CoreUtils весьма проста.

Шаг 1. Скачайте утилиту с официального сайта.

Шаг 2. Следуйте инструкциям установщика.

Шаг 3. Откройте «Панель управления», в разделе «Система и безопасность» выберите пункт «Система». На панели слева откройте «Дополнительные параметры системы». Нажмите кнопку «Переменные среды» и в открывшемся окне найдите область с заголовком «Системные переменные». В случае, когда там есть переменная Path, выберите её, нажмите «Изменить» и далее создайте новую строку. Содержимым этой строки должен быть путь к папке, который был указан при установке. Если вы ничего не меняли, то введите следующее:

C:\Program Files (x86)\GnuWin32\bin

Переменной Path нет? Тогда для начала создайте её кнопкой «Создать», затем в поле имени введите Path, а в поле значения — строку выше.

Шаг 4. Запустите командную строку и выполняйте команды прямо там.

Cygwin — запуск команд и Bash-скриптов

Ещё одна утилита, схожая с CoreUtils, но обладающая более широким функционалом — в том числе и возможностью запуска скриптов. Из минусов — немалый вес и более сложная установка. Разумеется, не идёт ни в какое сравнение с максимально удобным WSL, но для базовых команд вполне подойдёт.

Шаг 1. Загрузите Cygwin и запустите установку.

Шаг 2. Выберите Install from Internet, укажите директории для установки и загрузки пакетов, а также любой подходящий сайт из списка для скачивания файлов.

Шаг 3. В процессе установки можете выбрать необходимые пакеты, либо сразу нажать «Далее», оставив базовый набор.

Шаг 4. Откройте «Панель управления», в разделе «Система и безопасность» выберите пункт «Система». На панели слева откройте «Дополнительные параметры системы». Нажмите кнопку «Переменные среды» и в открывшемся окне найдите область с заголовком «Системные переменные». В случае, когда там есть переменная Path, выберите её, нажмите «Изменить» и далее создайте новую строку. Содержимым этой строки должен быть путь к папке, который был указан при установке. Если вы ничего не меняли, то введите следующее:

C:\cygwin64\bin

Переменной Path нет? Тогда для начала создайте её кнопкой «Создать», затем в поле имени введите Path, а в поле значения — строку выше.

Как выполнять Linux-команды внутри Windows: официальный и сторонние способы

Как выполнять Linux-команды внутри Windows: официальный и сторонние способы

Шаг 5. Команды можно выполнять как через командную строку, так и через специальный терминал.

Шаг 6. Для удаления Cygwin достаточно удалить папку, в которую программа была установлена, а также (по желанию) значение из переменной Path по методу, обратному тому, что был описан в 4 шаге (не удаляйте саму переменную).

  • Dispatcher realtek hd for windows 10
  • Dism windows server 2012 r2
  • Dism exe online cleanup image scanhealth windows 7
  • Dism windows 11 как проверить систему
  • Dism exe online cleanup image restorehealth source c repairsource windows limitaccess