Инструкция

WSL (Windows Subsystem for Linux): что это, установка и настройка Linux в Windows

Обновлено: · Skillaria.Top

WSL (Windows Subsystem for Linux) — встроенная в Windows 10 и 11 подсистема, которая запускает настоящий Linux-дистрибутив без отдельной виртуальной машины и двойной загрузки. Устанавливается одной командой wsl --install в PowerShell от имени администратора; по умолчанию ставится WSL 2 с Ubuntu, где работает реальное ядро Linux в лёгкой виртуальной машине.

Windows Subsystem for Linux (WSL, подсистема Windows для Linux) — компонент Windows 10 и 11, который позволяет запускать Linux-дистрибутив прямо внутри Windows: терминал bash, apt, ssh, grep, Docker и любые консольные утилиты. Не нужно ставить VirtualBox или делить диск под вторую систему — Ubuntu открывается как обычное окно терминала за пару секунд. Ниже — чем отличаются WSL 1 и WSL 2, как установить подсистему, как работать с файлами, VS Code и графическими приложениями и что делать с типичными ошибками.

Что такое WSL в Linux и Windows

Если коротко, что такое WSL: это способ получить полноценное Linux-окружение для разработки и обучения, не покидая Windows. Вы ставите дистрибутив (Ubuntu, Debian, openSUSE, Kali, AlmaLinux и другие) из командной строки или Microsoft Store, а затем работаете в нём так же, как на сервере: пользователи, права, пакеты, сервисы.

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

Типичные задачи для подсистемы:

  • изучение Linux и командной строки без отдельного компьютера;
  • веб-разработка, когда продакшен работает на Linux (Python, Node.js, PHP, Go);
  • Docker Desktop — он использует WSL 2 как движок;
  • подключение к серверам по SSH, скрипты bash, работа с git в привычной среде.

WSL 1 и WSL 2: в чём разница

Существует две архитектуры подсистемы. WSL 1 транслирует системные вызовы Linux в вызовы ядра Windows — отдельного ядра Linux там нет. WSL 2 запускает настоящее ядро Linux в облегчённой виртуальной машине на базе Hyper-V, которая стартует за секунды и сама управляет памятью.

ПараметрWSL 1WSL 2
Ядронет, трансляция системных вызововнастоящее ядро Linux
Совместимость системных вызововчастичнаяполная
Docker, systemdнетда
Скорость в файлах Linux (~/)нижевысокая
Скорость в файлах Windows (/mnt/c)высокаязаметно ниже
Нужна виртуализациянетда
Сетьобщая с Windowsсвоя виртуальная сеть (NAT по умолчанию)

Для почти всех сценариев выбирайте WSL 2 — она стоит по умолчанию. WSL 1 имеет смысл, если виртуализацию включить нельзя (например, Windows сама работает внутри виртуальной машины без вложенной виртуализации) или проект обязан лежать на диске Windows и активно с ним работает.

Как установить WSL в Windows 10 и 11

В Windows 11 и Windows 10 версии 2004 и новее (сборка 19041+) установка сводится к одной команде. Откройте PowerShell или «Терминал» от имени администратора и выполните:

wsl --install

Команда включает нужные компоненты Windows, скачивает ядро WSL 2 и ставит Ubuntu. После перезагрузки откроется окно дистрибутива: придумайте имя пользователя и пароль Linux. Они не связаны с учётной записью Windows; этот пароль понадобится для sudo.

Enter new UNIX username: alex
New password:
Retype new password:
passwd: password updated successfully
Installation successful!

Сразу обновите пакеты — как на любом свежем сервере:

sudo apt update && sudo apt upgrade -y

Как выбрать дистрибутив

Ubuntu ставится по умолчанию, но можно выбрать другой дистрибутив. Список доступных:

wsl --list --online

Установка конкретного дистрибутива по имени из этого списка:

wsl --install -d Debian

Если WSL уже стоит, команда просто добавит новый дистрибутив. Одновременно можно держать несколько систем — например, Ubuntu для работы и Kali для экспериментов.

Проверка версии: wsl -l -v

Посмотреть установленные дистрибутивы, их состояние и версию WSL:

wsl -l -v
  NAME      STATE           VERSION
* Ubuntu    Running         2
  Debian    Stopped         2

Звёздочка отмечает дистрибутив по умолчанию — он запускается командой wsl без параметров. Сменить его можно так: wsl --set-default Debian.

Как переключить WSL 1 на WSL 2

Версия для новых установок задаётся командой:

wsl --set-default-version 2

Уже установленный дистрибутив конвертируется отдельно (данные сохраняются, но процесс может занять несколько минут):

wsl --set-version Ubuntu 2

Обратная конвертация — wsl --set-version Ubuntu 1.

Полезные команды управления WSL

КомандаЧто делает
wslоткрыть дистрибутив по умолчанию
wsl -d Debianоткрыть конкретный дистрибутив
wsl --shutdownостановить все дистрибутивы и виртуальную машину WSL 2
wsl --terminate Ubuntuостановить один дистрибутив
wsl --updateобновить WSL и ядро
wsl --statusверсия по умолчанию и общее состояние
wsl --export Ubuntu ubuntu.tarрезервная копия дистрибутива в архив
wsl --import Ubuntu2 D:\wsl\u2 ubuntu.tarвосстановить или клонировать дистрибутив
wsl --unregister Ubuntuудалить дистрибутив вместе со всеми данными

Будьте осторожны с --unregister: файлы внутри дистрибутива удаляются без корзины. Перед этим сделайте --export.

Файлы Windows из Linux и обратно

Диски Windows автоматически монтируются внутри WSL в каталог /mnt: диск C: — это /mnt/c, D: — /mnt/d.

cd /mnt/c/Users/alex/Downloads
ls -l
cp report.csv ~/projects/

В обратную сторону файлы Linux видны в Проводнике по сетевому пути \\wsl$\Ubuntu (в Windows 11 — также \\wsl.localhost\Ubuntu) и в разделе «Linux» в боковой панели. Быстро открыть текущий каталог Linux в Проводнике:

explorer.exe .

Из WSL можно запускать программы Windows (notepad.exe, code), а из PowerShell — команды Linux через префикс: wsl ls -la. Для перевода путей между системами есть утилита wslpath:

wslpath 'C:\Users\alex'
/mnt/c/Users/alex

Главное правило производительности WSL 2: храните проекты в файловой системе Linux (~/projects), а не в /mnt/c. Доступ к дискам Windows идёт через сетевой протокол, и операции вроде git status или npm install на большом проекте там работают в разы медленнее.

VS Code и WSL

Visual Studio Code умеет работать с WSL как с удалённой машиной: интерфейс остаётся в Windows, а терминал, расширения, интерпретаторы и отладчик выполняются внутри Linux. Для этого нужно расширение WSL (Microsoft). Затем в терминале дистрибутива перейдите в каталог проекта и выполните:

cd ~/projects/site
code .

При первом запуске VS Code сам поставит в Linux серверную часть. В левом нижнем углу появится индикатор «WSL: Ubuntu» — значит, всё, что вы запускаете из встроенного терминала, работает в Linux. Расширения вроде Python или ESLint нужно установить «в WSL» — VS Code предложит это кнопкой.

Графические приложения в WSL (WSLg)

В Windows 11 и актуальных версиях WSL на Windows 10 есть WSLg — поддержка графических Linux-приложений из коробки, без настройки X-сервера. Установите программу как обычно, и её окно появится рядом с окнами Windows, а ярлык — в меню «Пуск».

sudo apt install gedit -y
gedit ~/.bashrc &

WSLg поддерживает X11 и Wayland, звук и буфер обмена. Для повседневной работы с полноценным рабочим столом Linux это всё же не замена: WSL рассчитан на отдельные приложения, а не на GNOME или KDE целиком.

systemd и ресурсы WSL 2

В актуальных версиях WSL 2 поддерживается systemd: в новых установках Ubuntu он включён по умолчанию. Если нет — добавьте в файл /etc/wsl.conf внутри дистрибутива:

[boot]
systemd=true

и перезапустите подсистему из PowerShell: wsl --shutdown. После этого работают systemctl и сервисы вроде nginx или PostgreSQL.

Ограничить память и процессоры виртуальной машины WSL 2 можно в файле %UserProfile%\.wslconfig на стороне Windows:

[wsl2]
memory=4GB
processors=2

Настройки применяются после wsl --shutdown.

Типичные ошибки при установке WSL

Ошибка 0x80370102

Полный текст: «Не удалось запустить виртуальную машину, так как не установлен необходимый компонент» (WslRegisterDistribution failed with error: 0x80370102). Причина почти всегда одна: WSL 2 не может запустить виртуальную машину. Проверьте по порядку:

  1. Включена ли аппаратная виртуализация в BIOS/UEFI: Intel VT-x (Intel Virtualization Technology) или AMD-V (SVM Mode). Состояние видно в Диспетчере задач → «Производительность» → ЦП → «Виртуализация: Включено».
  2. Включён ли компонент «Платформа виртуальной машины».
  3. Не отключён ли гипервизор в загрузчике.

Компоненты включаются из PowerShell от администратора:

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

После этого перезагрузите компьютер. Если вы работаете внутри виртуальной машины, на хосте нужно разрешить вложенную виртуализацию — либо используйте WSL 1.

Другие частые проблемы

  • 0x800701bc — не обновлено ядро WSL 2. Выполните wsl --update.
  • Команда wsl --install выводит только справку — WSL уже установлен; добавьте дистрибутив через wsl --install -d Ubuntu.
  • Нет интернета внутри WSL при VPN — VPN-клиент перехватывает маршруты виртуальной сети. В Windows 11 помогает режим networkingMode=mirrored в секции [wsl2] файла .wslconfig.
  • WSL занимает много места — виртуальный диск ext4.vhdx растёт, но сам не сжимается после удаления файлов. Его можно уменьшить вручную или переносить дистрибутив через --export/--import.
  • Забыли пароль Linux — войдите под root из PowerShell: wsl -u root, затем passwd alex.

WSL, виртуальная машина или dual boot

WSL — не единственный способ получить Linux на компьютере с Windows. Выбор зависит от задачи.

ВариантПлюсыМинусыКогда выбирать
WSL 2запуск за секунды, общие файлы, VS Code, Dockerнет полноценного рабочего стола, особенности сети и дисковразработка, обучение командной строке, скрипты
Виртуальная машина (VirtualBox, Hyper-V, VMware)полная изоляция, снимки, любой дистрибутив и рабочий стол, своя сетевая картатяжелее, ресурсы выделяются заранеестенд сервера, эксперименты с сетью, загрузкой, разметкой дисков
Dual bootвся мощность железа, нативная графика и драйверыперезагрузка для переключения, риск при разметке дискаLinux как основная система, игры и GPU-задачи под Linux

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

Итог

Windows Subsystem for Linux даёт настоящий Linux внутри Windows за одну команду wsl --install. Выбирайте WSL 2, проверяйте версии через wsl -l -v, держите проекты в ~/, а не в /mnt/c, и подключайте VS Code через расширение WSL. Если установка падает с 0x80370102 — включите виртуализацию в BIOS и компонент «Платформа виртуальной машины». С подготовки такого рабочего места начинается практика в курсе по Linux.

Частые вопросы

WSL бесплатный?

Да. WSL входит в Windows 10 и 11 всех редакций, включая Home, а дистрибутивы Linux тоже распространяются бесплатно.

Можно ли запустить Docker в WSL?

Да, но только в WSL 2. Можно поставить Docker Desktop с движком WSL 2 или установить Docker Engine прямо в дистрибутив, как на обычный Ubuntu-сервер.

Где физически хранятся файлы дистрибутива WSL?

В WSL 2 — в виртуальном диске ext4.vhdx в профиле пользователя Windows. Открывать его напрямую не нужно: используйте путь \\wsl$\ в Проводнике.

Как удалить WSL полностью?

Удалите дистрибутивы командой wsl --unregister <имя>, затем удалите приложение «Подсистема Windows для Linux» в разделе «Установленные приложения» и при необходимости отключите компоненты Windows.

Можно ли перенести WSL на другой диск?

Да: wsl --export Ubuntu ubuntu.tar, затем wsl --unregister Ubuntu и wsl --import Ubuntu D:\wsl\ubuntu ubuntu.tar. В новых версиях есть и команда wsl --manage Ubuntu --move.

Разберите тему на видео

Эта тема подробно разобрана с практикой в курсе «Linux: с нуля до уверенного администрирования».

Перейти к курсу