WSL (Windows Subsystem for Linux) — встроенная подсистема Windows, которая запускает настоящее Linux-ядро (WSL 2) или уровень совместимости системных вызовов (WSL 1) прямо внутри Windows без виртуальной машины и двойной загрузки. Разработчики используют WSL для работы с bash-скриптами, компиляторами и утилитами Linux в привычной среде Windows.
TL;DR: одна команда wsl --install в PowerShell с правами администратора — и через перезагрузку у вас работает Ubuntu с bash. Для смены дистрибутива: wsl --install -d Debian.
- Установка WSL
- Быстрая установка (рекомендуется)
- Установка конкретного дистрибутива
- Включение WSL вручную (старый способ для Windows 10)
- Команды wsl
- Практические сценарии
- Запустить bash-скрипт из Windows
- Переключить дистрибутив на WSL 2
- Сделать резервную копию дистрибутива
- Запустить конкретный дистрибутив в определённой директории
- Типичные проблемы и решения
- Когда применять, а когда нет
- FAQ
- Чем WSL 2 отличается от WSL 1?
- Можно ли запустить графические приложения Linux в WSL?
- Как получить доступ к файлам WSL из Проводника Windows?
- Как узнать, какая версия WSL установлена?
- Удаляет ли wsl —unregister все данные?
- Можно ли использовать Docker в WSL 2?
Установка WSL
Требования: Windows 10 версии 2004 (сборка 19041) или новее; Windows 11 — полная поддержка из коробки.
Быстрая установка (рекомендуется)
Откройте PowerShell или CMD с правами администратора и выполните:
wsl --install
По умолчанию установится Ubuntu. После перезагрузки Windows автоматически завершит установку и попросит создать пользователя Linux.
Установка конкретного дистрибутива
Сначала посмотрите список доступных дистрибутивов:
wsl --list --online
Затем установите нужный:
wsl --install -d Debian
Включение WSL вручную (старый способ для Windows 10)
Если wsl --install недоступна, включите компоненты через PowerShell с правами администратора:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
После перезагрузки скачайте и установите пакет ядра Linux WSL 2 с сайта Microsoft, затем установите дистрибутив из Microsoft Store.
Команды wsl
| Команда | Описание | Пример |
|---|---|---|
wsl | Запустить оболочку по умолчанию в текущем каталоге | wsl |
wsl --install | Установить WSL с дистрибутивом по умолчанию (Ubuntu) | wsl --install |
wsl --install -d <Distro> | Установить конкретный дистрибутив | wsl --install -d Debian |
wsl --list --verbose | Показать установленные дистрибутивы, их статус и версию WSL | wsl -l -v |
wsl --list --online | Показать доступные для установки дистрибутивы | wsl --list --online |
wsl --set-default <Distro> | Установить дистрибутив по умолчанию | wsl --set-default Ubuntu |
wsl --set-version <Distro> <1|2> | Переключить дистрибутив между WSL 1 и WSL 2 | wsl --set-version Ubuntu 2 |
wsl --set-default-version <1|2> | Задать версию WSL по умолчанию для новых установок | wsl --set-default-version 2 |
wsl --shutdown | Принудительно завершить все запущенные дистрибутивы и виртуальную машину WSL 2 | wsl --shutdown |
wsl --terminate <Distro> | Завершить конкретный дистрибутив | wsl --terminate Ubuntu |
wsl --export <Distro> <file.tar> | Экспортировать дистрибутив в TAR-архив (резервная копия) | wsl --export Ubuntu D:\ubuntu.tar |
wsl --import <Distro> <dir> <file.tar> | Импортировать дистрибутив из TAR-архива | wsl --import Ubuntu C:\WSL\Ubuntu D:\ubuntu.tar |
wsl --unregister <Distro> | Удалить дистрибутив (все данные будут уничтожены) | wsl --unregister Ubuntu |
wsl --update | Обновить ядро WSL 2 | wsl --update |
wsl --status | Показать версию WSL, версию ядра и дистрибутив по умолчанию | wsl --status |
wsl -e <команда> | Выполнить команду Linux без запуска интерактивной оболочки | wsl -e ls /home |
wsl --cd <путь> | Запустить WSL с заданной рабочей директорией | wsl --cd /var/www |
Практические сценарии
Запустить bash-скрипт из Windows
Чтобы выполнить Linux-скрипт прямо из CMD или PowerShell:
wsl bash /mnt/c/scripts/deploy.sh
Диски Windows автоматически монтируются в WSL как /mnt/c, /mnt/d и т.д.
Переключить дистрибутив на WSL 2
WSL 2 значительно быстрее для операций с файлами Linux и поддерживает Docker:
wsl --set-version Ubuntu 2
Конвертация займёт несколько минут; данные дистрибутива сохраняются.
Сделать резервную копию дистрибутива
Перед крупными изменениями экспортируйте состояние дистрибутива:
wsl --export Ubuntu D:\Backups\ubuntu-backup.tar
Восстановление: wsl --import Ubuntu C:\WSL\Ubuntu D:\Backups\ubuntu-backup.tar.
Запустить конкретный дистрибутив в определённой директории
wsl -d Debian --cd /var/www/html
Удобно при работе с несколькими дистрибутивами одновременно.
Типичные проблемы и решения
| Проблема | Причина | Решение |
|---|---|---|
Error: 0x80370102 при запуске | Виртуализация отключена в BIOS или компонент Virtual Machine Platform не включён | Включите Intel VT-x / AMD-V в BIOS; выполните dism /online /enable-feature /featurename:VirtualMachinePlatform /all |
WslRegisterDistribution failed with error: 0x8007019e | Компонент Windows Subsystem for Linux не активирован | Выполните dism /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all и перезагрузитесь |
| WSL занимает слишком много памяти | Виртуальная машина WSL 2 не освобождает кэш автоматически | Создайте файл %USERPROFILE%\.wslconfig с секцией [wsl2] и добавьте memory=4GB; выполните wsl --shutdown |
Медленная работа с файлами Windows-раздела (/mnt/c) | Файлы в /mnt/c обрабатываются через слой совместимости 9P | Перенесите проекты в файловую систему Linux (~/projects): скорость I/O в разы выше |
A connection attempt failed при apt-get update | Проблема с DNS внутри WSL 2 | Добавьте nameserver 8.8.8.8 в /etc/resolv.conf; или в .wslconfig укажите dnsProxy=false |
Когда применять, а когда нет
WSL подходит для разработки под Linux/UNIX-стек на Windows-машине: bash, Python, Node.js, gcc, git, docker (с Docker Desktop). WSL 2 предпочтительнее WSL 1 для большинства задач — он запускает настоящее ядро Linux и быстрее работает с нативными Linux-файлами. Не используйте WSL для задач, требующих прямого доступа к оборудованию (GPU для CUDA — только через специальные драйверы), а также если нужна полная изоляция среды — тогда лучше виртуальная машина. WSL не является командой CMD; это подсистема, управляемая через одноимённую утилиту wsl.exe.
FAQ
Чем WSL 2 отличается от WSL 1?
WSL 2 запускает настоящее ядро Linux в лёгкой виртуальной машине Hyper-V, что обеспечивает полную совместимость системных вызовов и значительно более высокую производительность файловых операций в Linux-файловой системе. WSL 1 переводил системные вызовы Linux в вызовы Windows — быстрее при работе с файлами Windows-раздела, но медленнее для всего остального.
Можно ли запустить графические приложения Linux в WSL?
Да, начиная с Windows 11 и обновлённых сборок Windows 10: WSL поддерживает WSLg (встроенный X-сервер). Запустите, например, gedit или firefox прямо из bash — окно откроется в Windows. На старых сборках потребуется внешний X-сервер (VcXsrv, Xming).
Как получить доступ к файлам WSL из Проводника Windows?
В адресной строке Проводника введите \\wsl$ — отобразятся файловые системы всех установленных дистрибутивов. Альтернативно: explorer.exe . прямо из bash-сессии откроет текущую директорию в Проводнике.
Как узнать, какая версия WSL установлена?
Выполните wsl --status или wsl -l -v. Второй вариант показывает версию (1 или 2) для каждого установленного дистрибутива.
Удаляет ли wsl —unregister все данные?
Да, команда wsl --unregister <Distro> полностью уничтожает виртуальный диск дистрибутива со всеми файлами. Сделайте резервную копию через wsl --export перед удалением.
Можно ли использовать Docker в WSL 2?
Да. Установите Docker Desktop для Windows и включите интеграцию с WSL 2 в его настройках. После этого команда docker будет доступна прямо из bash в WSL без дополнительных настроек.


