Все способы:
- Способ 1: Апплет «Программы и компоненты»
- Способ 2: Утилита «DISM»
- Способ 3: Команда установки
- Дополнительные рекомендации
- Вопросы и ответы: 0
WSL, или «Подсистема Windows для Linux», представляет собой встроенную функцию Windows 10, позволяющую запускать в Windows-среде консольные и графические приложения Linux. Существуют два основных способа установки данного компонента.
Способ 1: Апплет «Программы и компоненты»
Данный способ является устаревшим, он использовался, когда Windows 10 (версия 20H2) еще не поддерживала установку WSL через консоль.
- Вызовите нажатием клавиш Win + R диалоговое окошко быстрого запуска приложений и выполните в нем команду
optionalfeatures
, чтобы запустить апплет «Программы и компоненты». - Отыщите в списке компонентов «Платформа виртуальной машины» и «Подсистема Windows для Linux», включите их и нажмите кнопку «ОК».
Для применения конфигурации и установки компонентов потребуется перезагрузка компьютера.
- Запустите встроенное приложение «Microsoft Store», найдите через поиск нужный дистрибутив Linux и установите его. Процедура установки практически ничем не отличается от инсталляции других UWP-приложений, разве что занимает больше времени.
Запустить установленную Linux можно будет из меню «Пуск», как и всякое другое приложение. В настоящее время в магазине Windows доступны несколько популярных Linux-дистрибутивов, в частности Ubuntu, openSUSE Leap, SUSE Linux Enterprise, Kali Linux, Debian и некоторые другие.
Способ 2: Утилита «DISM»
Этот способ дублирует предыдущий, разница лишь в том, что необходимые компоненты устанавливаются через консоль.
- Запустите от имени администратора «PowerShell» из контекстного меню кнопки «Пуск». Вместо «PowerShell» можно использовать классическую «Командную строку».
- Выполните одну за другой следующие две команды:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
Вместо указанных выше, вы также можете использовать команды Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
и Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
(в «PowerShell») — результат будет тот же. Для применения настроек потребуется перезагрузка компьютера, после чего можно устанавливать дистрибутивы Linux из магазина Windows.
Способ 3: Команда установки
Все новые версии и сборки Windows 10 поддерживают установку WSL одной командой. Этот способ является наименее затратным по времени и наиболее простым.
- Запустите от имени администратора «PowerShell» или «Командную строку».
- Выполните команду
wsl --install
.
Windows 10 сама включит необходимые компоненты и установит актуальную на текущий момент версию подсистемы. Также автоматически будет загружен и установлен дистрибутив по умолчанию – Linux Ubuntu. Чтобы установить другой дистрибутив, сделайте следующее:
- Сначала выведите в запущенной консоли список доступных дистрибутивов командой
wsl --list --online
. - Установите WSL c нужным дистрибутивом, выполнив команду
wsl --install -d name
, где name – название дистрибутива.
Дополнительные рекомендации
После установки WSL рекомендуется выполнить некоторые настройки и проверить доступность обновлений подсистемы.
- На момент написания этой инструкции существуют две версии «Подсистемы Windows для Linux» – 1.0 и 2.0. Проверить версию установленной подсистемы можно командой
wsl -l -v
в запущенной «PowerShell». - Установите последние обновления подсистемы, выполнив в запущенной с правами администратора консоли команду
wsl --update
. - Чтобы инсталлировать вторую версию используемой по умолчанию, выполните команду
wsl --set-default-version 2
. - Скачайте и установите обновление ядра Linux для WSL2 с сайта Microsoft.
Скачать обновление ядра WSL2 с официального сайта - Инсталлятор представлен исполняемым файлом MSI – запустите его двойным кликом и проследуйте указаниям мастера.
Если при инсталляции обновления ядра появится ошибка, вероятнее всего, версия Windows 10 не поддерживает данное обновление. В этом случае рекомендуется сначала установить последние обновления для самой операционной системы.
Читайте также: Обновление Windows 10 до последней версии
Наша группа в TelegramПолезные советы и помощь
Время на прочтение9 мин
Количество просмотров271K
К написанию данной статьи меня побудил вопрос на Тостере, связанный с WSL. Я, после нескольких лет использования систем на ядре Linux, около полугода назад перешел к использованию Windows 10 на домашнем ПК. Зависимость от терминала и Linux окружения в моей работе практически сразу привели меня к вопросу: или ставить виртуалку или попробовать WSL. Я выбрал второе, и остался вполне доволен.
Под катом я расскажу как установить и настроить WSL, на какие я наткнулся проблемы и ограничения, как запускать Linux приложения из Windows и наоборот, а так же как интегрировать элементы окружения Xfce в окружение рабочего стола Windows.
Никогда не думал, что однажды вернусь на Windows, но повод попробовать мне дали стечения обстоятельств: жена, далекая от IT, дергала почти каждый раз, когда у нее возникала необходимость воспользоваться компом; проснулась ностальгия по одной игре, но она никак не хотела адекватно работать под wine; а тут еще мне подарили коробочную Windows 10 Pro. WSL я поставил чуть ли не сразу после установки системы, поигрался несколько вечеров, понял, что продукт для моих задач годный, но хочется более привычный терминал и вообще некоторых удобств.
Установка WSL и дистрибутива
Сразу оговорюсь, в интернете можно найти описание установки с помощью выполнения команды lxrun /install
в командной строке или консоли PowerShell. Данный способ больше не работает (после выхода WSL в стабильный релиз). Насколько мне известно, сейчас WSL можно установить только из Microsoft Store вместе с предпочитаемым дистрибутивом.
Так же отмечу, что когда установку производил я, на выбор были доступны дистрибутивы OpenSUSE, SUSE Linux Enterprise и Ubuntu 16.04 — последний я и установил. Сейчас также доступны Ubuntu 18.04, Debian 9 и Kali Linux, возможно появятся и другие дистрибутивы. Действия по установке могут отличаться. Так же, часть проблем описанных в статье может быть уже исправлена.
Находим в магазине желаемый дистрибутив и устанавливаем. Установка пройдет быстро, так как скачает только эмулятор ядра Linux и утилиту для запуска подсистемы, которая окажется в системной папке в трех экземплярах: wsl.exe, bash.exe и ubuntu.exe (вместо ubuntu будет имя Вашего дистрибутива). Все они равнозначны и делают одно и то же — запускают собственный эмулятор терминала, в нем linux’овый bash работающий под эмулятором ядра. При первом же запуске нас попросят придумать логин и пароль для пользователя по умолчанию, а после произойдет непосредственно установка дистрибутива. В качестве пользователя по умолчанию указываем root без пароля — это потребуется для дальнейших шагов. Безопасность не пострадает, кроме того при подготовке материалов к статье, в англоязычном туториале, я наткнулся на информацию, что новые версии WSL теперь делают пользователем по умолчанию root без пароля без лишних вопросов.
Дожидаемся установки. Далее первым делом стоит обновить зеркала apt на ближайшие. Для этого понадобится CLI текстовый редактор. В комплекте только vi, я же больше предпочитаю nano, поэтому ставлю его:
apt install nano
sudo вводить не требуется, так как мы уже под root’ом. Отредактируем файл /etc/apt/sources.list:
nano /etc/apt/sources.list
У меня лучше всего работают зеркала Яндекса, поэтому мой файл выглядит так:
deb http://mirror.yandex.ru/ubuntu/ xenial main universe restricted
deb-src http://mirror.yandex.ru/ubuntu/ xenial main universe restricted
deb http://mirror.yandex.ru/ubuntu/ xenial-security main universe restricted
deb-src http://mirror.yandex.ru/ubuntu/ xenial-security main universe restricted
deb http://mirror.yandex.ru/ubuntu/ xenial-updates main universe restricted
deb-src http://mirror.yandex.ru/ubuntu/ xenial-updates main universe restricted
Нажимаем Ctrl+O для сохранения и Ctrl+X для выхода. Теперь можно обновить систему до актуального состояния:
apt update && apt upgrade
После обновления можно создать нашего основного пользователя. В данной статье я назову его user1, Вы же можете задать привычное имя:
addgroup --gid 1000 user1
adduser --home /home/user1 --shell /bin/bash --uid 1000 -G user1,sudo user1
Далее переходим в папку юзера, зайдем под ним, установим пароль и отредактируем файл ~/.bashrc:
cd /home/user1
su user1
passwd
nano .bashrc
Мой базовый .bashrc выглядит так
# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac
# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth
# append to the history file, don't overwrite it
shopt -s histappend
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
# If set, the pattern "**" used in a pathname expansion context will
# match all files and zero or more directories and subdirectories.
#shopt -s globstar
# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
debian_chroot=$(cat /etc/debian_chroot)
fi
# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
xterm|xterm-color|*-256color) color_prompt=yes;;
esac
# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes
if [ -n "$force_color_prompt" ]; then
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
# We have color support; assume it's compliant with Ecma-48
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
# a case would tend to support setf rather than setaf.)
color_prompt=yes
else
color_prompt=
fi
fi
if [ "$color_prompt" = yes ]; then
if [[ ${EUID} == 0 ]] ; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\h\[\033[01;34m\] \W \$\[\033[00m\] '
else
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\] \[\033[01;34m\]\w \$\[\033[00m\] '
fi
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h \w \$ '
fi
unset color_prompt force_color_prompt
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h \w\a\]$PS1"
;;
*)
;;
esac
# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
#alias dir='dir --color=auto'
#alias vdir='vdir --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi
# colored GCC warnings and errors
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
# Add an "alert" alias for long running commands. Use like so:
# sleep 10; alert
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi
Все, подсистема готова к использованию… почти…
Установка X-сервера, Xfce и прочих GUI’шных приложений
Первая же проблема, на которую я натолкнулся — bash-completion в предлагаемом эмуляторе терминала работал, мягко говоря, некорректно. Кроме того, данный эмулятор не умеет вкладки, а каждый его экземпляр запускает все в новом пространстве процессов, с отдельным init’ом (который кстати не заменить). Мне захотелось нормальный эмулятор терминала, некоторых других GUI приложений, а так же панельку, чтоб это все быстро запускать.
Когда я гуглил этот вопрос, я наткнулся на множество проблем, вроде необходимости перевода dbus на tcp протокол. На данный момент всех этих проблем нет. В подсистеме нормально работают unix-domain-socket’ы и все спокойно общается через них.
Первым делом нам понадобится X-сервер, притом установленный в основную систему (в Windows). Лично я использую для этих целей VcXsrv — порт X11 на Windows. Официальный сайт указанный в about самой утилиты его сейчас не предоставляет, поэтому гуглим установщик и устанавливаем все по умолчанию.
Пока идет установка возвращаемся в терминал WSL, командой exit выходим обратно в root’а. Первым делом настроим русские локали:
locale-gen ru_RU
locale-gen ru_RU.UTF-8
update-locale
Далее установим некоторые компоненты Xfce. Можно конечно установить его целиком из мета-пакета, но большинство компонентов нам не понадобится, а модульная архитектура Xfce позволяет нам поставить только необходимое:
apt install -y xfce4-session xfce4-notifyd xfce4-appfinder xfce4-panel xfce4-quicklauncher-plugin xfce4-whiskermenu-plugin xfce4-xkb-plugin xfce4-settings xfce4-terminal xfce4-taskmanager mousepad
Запускать каждый раз окружение руками не очень удобно, поэтому я автоматизировал данный процесс. Для этого в основной системе создадим в удобном для нас месте папку, а в ней 3 файла для запуска:
- config.xlaunch — файл настроек для VcXsrv
<?xml version="1.0" encoding="UTF-8"?> <XLaunch WindowMode="MultiWindow" ClientMode="NoClient" LocalClient="False" Display="0" LocalProgram="xcalc" RemoteProgram="xterm" RemotePassword="" PrivateKey="" RemoteHost="" RemoteUser="" XDMCPHost="" XDMCPBroadcast="False" XDMCPIndirect="False" Clipboard="True" ClipboardPrimary="True" ExtraParams="" Wgl="True" DisableAC="False" XDMCPTerminate="False" />
-
x-run.vbs — WSL всегда запускается со своим эмулятором терминала, если его закрыть — завершатся все его дочерние процессы. Чтоб данное окно не мозолило глаза, неплохо его запускать скрытым. К счастью в Windows встроен интерпретатор VBScript, который позволяет это сделать в одну строчку:
WScript.CreateObject("Shell.Application").ShellExecute "wsl", "cd /home/user1; DISPLAY=:0 LANG=ru_RU.UTF-8 su user1 -c xfce4-session", "", "open", 0
Поясню, что здесь происходит. Мы говорим VBscript выполнить приложение wsl с параметром
cd /home/user1; DISPLAY=:0 LANG=ru_RU.UTF-8 su user1 -c xfce4-session
, папка запуска нам не важна, поэтому пустая строка, действие open — запуск, 0 — скрытый режим. Самому wsl мы отдаем команду на выполнение: переход в папку пользователя, затем с установкой переменных окружения DISPLAY (дисплей X-сервера) и LANG (используемая локаль) мы запускаем xfce4-session от имени нашего пользователя user1 (благодаря команде su) - start.bat — batch файл для запуска, по желанию его можно засунуть в автозагрузку
start config.xlaunch wscript x-run.vbs
Далее можем запустить наш start.bat и настроить панель Xfce под себя. Замечу, что здесь я наткнулся на еще одну проблему — панель прекрасно отображается поверх всех окон, но вот выделить себе место, как панель на рабочем столе Windows она не может. Если кто знает решение данной проблемы, поделитесь в комментариях.
Ну и под конец данной части, скриншот моего рабочего стола:
Взаимодействие окружения Windows и окружения подсистемы Linux
Запускать Linux приложения напрямую из Windows можно через те же 3 команды — bash, wsl или ubuntu. Не забываем, что по умолчанию запуск идет от root, поэтому стоит понижать привилегии через su
, так же нужно не забывать передавать переменную окружения DISPLAY=:0 если приложению требуется X-сервер. Так же нужно менять папку, из которой должно работать приложение, через cd внутри WSL. Пример, посчитаем md5 для file.txt на диске D средствами Linux’овой md5sum:
wsl md5sum < d:\file.txt
Доступ к файловой системе Linux так же имеется, лежит она в %localappdata%\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs
. Читать таким образом файлы можно, а вот писать — не желательно, можно поломать файловую систему. Думаю проблема в том, что Windows не умеет работать с правами и владельцами файловой системы Linux.
Из Linux так же можно запускать Windows приложения. Просто запускаем exe-шник и он выполнится в основной системе.
Диски Windows монтируются в /mnt
в соответствии со своими буквами в нижнем регистре. Например диск D будет смонтирован в /mnt/d
. Из Linux можно свободно читать и писать файлы Windows. Можно делать на них симлинки. Права у таких файлов всегда будут 0777, а владельцем будет root.
Сетевой стек у подсистемы общий с Windows. Сервер поднятый в Linux будет доступен на localhost в Windows и наоборот. Однако unix-domain-socket для Windows будет просто пустым файлом, работать с этим можно только внутри Linux. Выход во внешнюю сеть у Linux так же есть, в том числе можно слушать порты, если этого не запрещает фаервол.
ifconfig в Linux и ipconfig в Windows выдают одинаковую информацию о сетевых интерфейсах.
Из диспетчера задач Windows можно спокойно прибить процесс внутри подсистемы Linux. Однако Linux увидит только свои процессы.
Особенности, ограничения и подводные камни
Ядро Linux в WSL не настоящее. Это всего лишь прослойка-эмулятор, которая часть Linux-специфичных задач выполняет сама, а часть проксирует напрямую в ядро winNT. Большая часть api в нем реализована, но не все. Свое ядро собрать не получится, как и не получится подключить модули ядра (.ko, Kernel Object).
Init процесс у WSL тоже свой и заменить его, например, на system.d не выйдет. У меня давно есть желание написать менеджер демонов на go, который бы работал с файлами юнитов system.d и предоставлял бы схожий интерфейс, да все руки не доходят.
Нет поддержки openFUSE, соответственно примонтировать виртуальную или удаленную файловую систему не получится. Так же нельзя сделать mount из файла, mount вообще ничего кроме bind здесь, похоже, не умеет.
Так же нет никакой возможности разбить файловую систему Linux на несколько разделов/дисков.
Прямой доступ к железу практически отсутствует. Все таки мы находимся в песочнице Windows, а не в полноценном Linux. /dev и /sys заметно пустуют, в них лишь проц да виртуальные устройства. Доступ к GPU — только через X-сервер, напрямую — никак, так что нейросети обучать придется в Windows.
В JS разработке столкнулся с тем, что electron.js отказался запускаться в WSL, пришлось дублировать окружение node.js в Windows.
Итоги
Статья получилась довольно длинной, надеюсь, что она окажется еще и полезной.
WSL для меня лично оказался инструментом вполне юзабельным, решающим мои задачи fullstack backend разработчика. Виртуалка с Linux за полгода так и не понадобилась. По общим ощущениям Windows+WSL намного функциональнее, чем Linux+Wine.
Пока писал статью, обнаружил, что в Microsoft Store появилась сборка WSL с Debian 9.3, данный дистрибутив мне более симпатичен, чем Ubuntu, поэтому буду пробовать ставить.
Среда Windows Subsystem for Linux (WSL) позволяет запускать нативные приложения, писать скрипты, выполнять команды и скрипты Linux непосредственно из Windows без использования эмуляторов или развертывания выделенных виртуальных машин. Актуальной версией среды является WSL 2, в которой используется полноценное ядро Linux (версия ядра 5.15) и обеспечивает полную совместимость с системными вызовами. Образ ядра Linux в WSL представляет собой легкую виртуальную машину, для запуска которой не нужно устанавливать полноценную роль Hyper-V.
Содержание:
- Как установить Windows Subsystem for Linux (WSL2)?
- WSL: Установка дистрибутива Linux в Windows
- Команды для управления WSL в Windows
- Использование Linux в среде WSL
Вы можете запустить WSL 2:
- Во всех версиях Windows 10, начиная с 1903, а также в Windows 11 и Windows Server 2022;
- В настройка BIOS/UEFI компьютера должна быть включена поддержка аппаратной виртуализации: Intel VT (Intel Virtualization Technology) или AMD-V (SVM Mode).
Как установить Windows Subsystem for Linux (WSL2)?
Компонент WSL по умолчанию отключен в Windows. Современных дистрибутивах Windows 10 и Windows 11 для установки среды WSL достаточно выполнить команду:
wsl --install
Этак команда автоматически включит все необходимые компоненты Windows, необходимые для работы WSL, установить обновление ядра Linux для WSL2, загрузит дистрибутив Ubuntu (по-умолчанию) и установит его в WSL.
Осталось перезагрузить компьютер, и вы можете запускать среду WSL!
Вы можете установить для WSL другой дистрибутив Linux. Выведите список доступных дистрибутивов:
wsl --list --online
Укажите имя дистрибутива Linux, который установить в WSL. Например:
wsl --install -d kali-linux
Если в BIOS/UEFI компьютера не включена виртуализация, при установке WSL вы получите ошибку:
Installation failed with error 0x80070003 or error 0x80370102” it means that Bios Level Virtualization is not enabled on your computer.
Вы можете установить WSL2 в Windows вручную. Для этого придется вручную последовательно выполнить все этапы, который команда wsl —install запускала автоматически:
- Установить WSL
- Включить компонент виртуалзации VirtualMachinePlatform
- Установить ядро WSL 2
- Скачать и установить дистрибутив Linux для WSL
Сначала установите следующие компоненты Windows:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
Перезагрузите компьютер.
Скачаем и установим обновление ядра Linux для WSL2 (WSL2 Linux kernel update package for x64 machines — https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi). Можете скачать пакет вручную или с помощью PowerShell:
Invoke-WebRequest -Uri https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi -OutFile "$($env:userprofile)\Downloads\wsl_update_x64.msi" -UseBasicParsing
Invoke-Item "$($env:userprofile)\Downloads\wsl_update_x64.msi"
rm "$($env:userprofile)\Downloads\wsl_update_x64.msi"
Еще раз перезагрузите компьютер и назначьте версию WSL 2 в качестве среды по-умолчанию:
wsl --set-default-version 2
WSL: Установка дистрибутива Linux в Windows
После того, как ядро WSL установлено в Windows, вы можете установить один или несколько дистрибутивов Linux на компьютер.
Можно установить пакет с дистрибутивом Linux через Microsoft Store. Доступны следующие дистрибутивы:
- Ubuntu
- Debian
- Kali Linux
- OpenSUSE
- Oracle Linux
- SUSE Linux Enterprise Server
- Fedora
Найдите нужную версию дистрибутива в Store и установите ее, нажав кнопку Получить (Get).
Если у вас отключен Windows Store, вы хотите установить дистрибутив WSL в Core редакции Windows Server или вам нужно установить WSL на Изолированном от интернета компьютере (оффлайн), вы можете скачать дистрибутив Ubuntu с помощью PowerShell командлета Invoke-WebRequest:
Invoke-WebRequest https://aka.ms/wslubuntu2204 -OutFile ubuntu-2204.appx –UseBasicParsing
Установите пакет для WSL с помощью:
Add-AppxPackage .\ubuntu-2204.appx
После окончания установки появится окно, в котором вам будет предложено указать имя пользователя и пароль для вашего дистрибутива.
После установки вы можете в меню Пуск появится отдельная программа для запуска Linux.
Также вы можете запустить ваш Linux из отдельной вкладки Windows Terminal или с помощью команды
wsl
.
Команды для управления WSL в Windows
Рассмотрим основные команды для управления ядром и дистрибутивами Linux в WSL.
Проверить текущую версию ядра WSL:
wsl --version
Обновить ядро WSL вручную:
wsl --update
Откатится к предыдущему ядру WSL:
wsl --update rollback
Вывести список установленных версий Linux:
wsl --list
Вывести дистрибутив Linux, который используется по-умолчанию:
wsl --status
Дистрибутив Linux по-умолчанию в WSL можно изменить:
wsl --setdefault Ubuntu
Запустить определенный дистрибутив в WSL:
wsl -d kali-linux
Завершить среду WSL:
wsl --shutdown
Можно войти в WSL Ubuntu под root и сбросить пароль:
ubuntu config --default-user root
Passwd
Вернуть пользователя по умолчанию
ubuntu config --default-user your_username
Для настройки параметров WSL и дистрибутивов Linux используются конфиг файлы:
- wsl.conf – файл с настройками конкретного дистрибутива Linux (находится в директории /etc)
- .wslconfig – глобальные настройки WSL, которые применяются ко всем дистрибутовам (находится в профиле пользователя в
%UserProfile%
)
Например, если вы хотите ограничить использование оперативной памяти и CPU компьютера дистрибутивами Linux в WSL, создайте такой файл
%UserProfile%\.wslconfig
:
[wsl2] memory=2GB processors=2
Использование Linux в среде WSL
Дистрибутив Linux, установленный в WSL является полноценной операционной системой. Поэтому после установки рекомендуется выполнить обновление пакетов. Для Ubuntu выполните команду:
$ sudo apt-get update && sudo apt-get upgrade -y
Файловая система вашего дистрибутива Linux хранится в профиле пользователя в виде VHDX файла. Например, виртуальный диск Ubuntu хранится в папке
%USERPROFILE%\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc\LocalState
Файловая система Linux в WSL монтируется в виде сетевой папки прямо в проводник Windows.
Также для прямого доступа к файлам WSL из Windows можно использовать UNC путь. Например:
notepad \\wsl$\Ubuntu\sysops\home\1122.txt
В свою очередь локальные диски Windows монтируются в WSL в папку mnt. Вывести список файлов папок на диске C:
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. Например, установите файловый менеджер Midnight Commander:
$ sudo apt-get install mc
В современной версии WSL 2 вы можете запускать из Windows любые приложения Linux с графическим интерфейсом (X11 и Wayland). Например, установите графический редактор:
$ sudo apt install gimp -y
Чтобы запустить его из Windows просто выполните команду:
wsl gimp
Provide feedback
Saved searches
Use saved searches to filter your results more quickly
Sign up
Вступление
С 90-х годов в качестве основной операционной системы я задействовал то Windows, то различные дистрибутивы Linux. И почти каждый раз использовал обе эти системы, переключаясь между ними в ходе двойной загрузки либо запуская одну из них на виртуальной машине с помощью стороннего программного обеспечения, такого как VirtualBox. Но после того, как несколько лет назад в Microsoft представили подсистему Windows для Linux, или WSL (Windows Subsystem for Linux), а позже и WSL 2, для меня как разработчика она быстро стала любимой конфигурацией.
1. Установка подсистемы Windows для Linux
Первым делом убедитесь, что используете Windows 10 версии 1903 или новее. Подсистема Windows для Linux относится к дополнительному функционалу, и по умолчанию в Windows она отключена. Для ее подключения откройте меню «Пуск», введите Windows Feature
(«Компоненты Windows») и нажмите на клавишу enter («Ввод»).
В диалоговом окне Windows Features («Компоненты Windows») подключите Virtual Machine Platform («Платформу виртуальной машины») и Windows Subsystem for Linux («Подсистему Windows для Linux») и нажмите на кнопку OK. После завершения установки Windows попросит перезагрузить систему. Сделайте это.
Теперь подсистема Windows для Linux установлена, идем дальше.
2. Обновление WSL до версии 2
Прежде чем использовать подсистему Windows для Linux версии 2, необходимо загрузить и установить обновление для ее ядра:
- Пакет обновления ядра Linux в WSL2 для 64-разрядных компьютеров
Загрузите и установите пакет. Теперь поменяем версию по умолчанию, которую использует WSL, на версию 2. Для этого откройте командную строку и введите:
wsl --set-default-version 2
Эта команда настраивает подсистему Windows для Linux на использование версии 2 при установке новых дистрибутивов Linux.
3. Установка дистрибутива Linux
В этом руководстве описывается установка Ubuntu 20.04, что не мешает вам установить любой другой дистрибутив.
- Откройте Microsoft Store.
- Найдите Ubuntu 20.04 LTS.
- Нажмите на кнопку install («Установить»).
По завершении процесса нажмите на кнопку launch («Запустить»). Откроется новое окно терминала, и Ubuntu завершит установку. Затем введите имя пользователя и пароль для пользователя по умолчанию.
Здесь же в терминале обновите Ubuntu, запустив команду:
sudo apt update && sudo apt upgrade
Введите пароль и дождитесь завершения процесса.
Если хотите, можете продолжать использовать этот терминал. Лично я предпочитаю терминал с дополнительными параметрами настройки. И в качестве такового Microsoft предлагает Windows Terminal («Терминал Windows»). Для его установки надо:
- Открыть Microsoft Store.
- Найти Windows Terminal.
- Нажать на кнопку install.
Доступных вариантов настройки довольно много. Загляните в официальную документацию, и вы найдете тот вариант, который вам понравится.
Если потребуется помощь в настройке терминала, посмотрите мой ролик на Youtube о том:
- Как установить и настроить терминал Windows.
Заключение
Итак, у вас с помощью WSL и симпатичного терминала запущен и готов к работе дистрибутив Linux. А что же дальше? А дальше все будет зависеть от вас: от того, что вы будете разрабатывать и, конечно же, от инструментов, которые вы предпочитаете при работе с кодом. Теперь у вас есть отличная база, чтобы эту работу начать.
Очень рекомендую редактор кода Visual Studio Code. Он тоже разработан в Microsoft и хорошо подходит для WSL. По нему есть специальное руководство:
- Начало работы с Visual Studio Code и подсистемой Windows для Linux.
Читайте также:
- Краткая история инструментов веб-дизайна
- 10 трендов UI-дизайна в 2021 году
- 5 увлекательных игр для изучения основных концепций CSS
Читайте нас в Telegram, VK и Яндекс.Дзен
Перевод статьи Paul A. Byström: Setup a modern development environment on Windows 10