WSL — запуск Linux в Windows: установка и основные команды

WSL (Windows Subsystem for Linux) позволяет запускать Linux-окружение прямо внутри Windows без виртуальных машин. Установка, команды wsl и решение типичных проблем.

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

Требования: 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 без дополнительных настроек.

Оцените статью
( Пока оценок нет )
MW10
Добавить комментарий

Нажимая на кнопку "Отправить комментарий", я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.