WSL (Windows Subsystem for Linux): что это, установка и настройка Linux в Windows
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 1 | WSL 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 не может запустить виртуальную машину. Проверьте по порядку:
- Включена ли аппаратная виртуализация в BIOS/UEFI: Intel VT-x (Intel Virtualization Technology) или AMD-V (SVM Mode). Состояние видно в Диспетчере задач → «Производительность» → ЦП → «Виртуализация: Включено».
- Включён ли компонент «Платформа виртуальной машины».
- Не отключён ли гипервизор в загрузчике.
Компоненты включаются из 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: с нуля до уверенного администрирования».
Перейти к курсу