Команда wsl --install, введённая в PowerShell с правами администратора, — это всё, что нужно для запуска Linux-окружения внутри Windows 10 (с актуальными обновлениями) и Windows 11. Подсистема WSL (Windows Subsystem for Linux) позволяет выполнять Linux-утилиты, запускать bash-скрипты и собирать проекты без виртуальной машины и двойной загрузки. Если после установки терминал выдаёт ошибку вроде 0x80370102 или дистрибутив не стартует, причина почти всегда в отключённой виртуализации в BIOS или неактивных компонентах Windows — об этом подробно ниже.
Эта статья разбирает работу с WSL от установки до повседневных задач: выбор версии WSL 1 или WSL 2, управление дистрибутивами, обмен файлами между системами и диагностику сбоев. Материал ориентирован на разработчиков, администраторов и всех, кому нужен Linux-инструментарий рядом с привычной Windows.
Что такое WSL и чем отличаются версии WSL 1 и WSL 2
WSL 1 — это слой совместимости, который транслирует системные вызовы Linux в вызовы ядра Windows. WSL 2 работает иначе: внутри используется легковесная виртуальная машина с настоящим ядром Linux, которое Microsoft поставляет и обновляет через Windows Update. Из-за этой разницы в архитектуре меняются и практические свойства подсистемы.
Полное ядро в WSL 2 даёт совместимость с инструментами, которым нужны реальные системные вызовы — например, Docker внутри WSL работает именно на второй версии. Зато WSL 1 быстрее обращается к файлам, лежащим в Windows-разделах (/mnt/c и далее), потому что нет границы между двумя файловыми системами. Для большинства задач разработки рекомендуется WSL 2, а первая версия остаётся вариантом для сценариев с интенсивной работой по Windows-файлам.
| Критерий | WSL 1 | WSL 2 |
|---|---|---|
| Ядро Linux | Эмуляция вызовов | Настоящее ядро в VM |
| Скорость работы с Linux-файлами | Средняя | Высокая |
| Скорость доступа к /mnt/c | Высокая | Ниже из-за границы FS |
| Поддержка Docker | Нет | Да |
| Требования к виртуализации | Не нужна | Нужна (VT-x/AMD-V) |
Установка WSL: пошаговая инструкция
Современный способ установки сводится к одной команде. Откройте PowerShell или Терминал Windows от имени администратора и выполните:
wsl --install
Команда автоматически включает необходимые компоненты Windows («Подсистема Windows для Linux» и «Платформа виртуальной машины»), скачивает ядро WSL 2 и устанавливает дистрибутив Ubuntu по умолчанию. После завершения потребуется перезагрузка компьютера, а при первом запуске дистрибутива — создание пользователя Linux с паролем. Учтите: этот пароль никак не связан с учётной записью Windows и запрашивается при использовании sudo.
Если нужен другой дистрибутив, сначала посмотрите список доступных, а затем укажите нужный при установке:
wsl --list --online
wsl --install -d Debian
☑️ Проверка перед установкой WSL
⚠️ Внимание: если команда wsl --install завершается ошибкой, связанной с виртуализацией, проверьте настройки BIOS/UEFI. Название пункта зависит от производителя платы — ищите Intel VT-x, AMD-V или SVM Mode в разделах процессора или расширенных настроек. Точный путь смотрите в документации к вашей материнской плате или ноутбуку.
Основные команды для работы с WSL
Повседневное управление подсистемой выполняется через команду wsl.exe из PowerShell или командной строки Windows. Запомнить нужно всего несколько команд, остальное вызывается уже внутри Linux-окружения.
- 🐧
wsl— запуск дистрибутива по умолчанию и вход в оболочку; - 📋
wsl -l -v— список установленных дистрибутивов с версией WSL и состоянием; - 🔄
wsl --set-version Имя 2— перевод конкретного дистрибутива на WSL 2; - ⭐
wsl --set-default Имя— назначение дистрибутива по умолчанию; - ⏹️
wsl --shutdown— полная остановка всех запущенных дистрибутивов и виртуальной машины; - 🗑️
wsl --unregister Имя— удаление дистрибутива вместе со всеми данными.
Внутри Linux-среды работают обычные команды выбранного дистрибутива: apt для Ubuntu и Debian, dnf для Fedora и так далее. Выйти из оболочки обратно в Windows можно командой exit. Из Linux-сессии доступны и Windows-программы — например, explorer.exe . откроет текущий Linux-каталог в Проводнике.
Обмен файлами между Windows и Linux
Файловые системы двух ОС взаимно видны. Из Linux диски Windows смонтированы в /mnt/c, /mnt/d и так далее. В обратную сторону Linux-файлы доступны из Windows по сетевому пути \\wsl$ — достаточно ввести его в адресной строке Проводника, чтобы увидеть все установленные дистрибутивы как папки.
Здесь кроется важный нюанс производительности. Держите рабочие проекты внутри файловой системы Linux (например, в домашнем каталоге ~/projects), если используете WSL 2 — операции сборки, установки зависимостей и работы Git над файлами из /mnt/c выполняются заметно медленнее из-за трансляции между файловыми системами. Редактировать эти файлы можно прямо из Windows-инструментов через тот же путь \\wsl$, потерь скорости при этом не будет.
Интеграция с Windows: терминал, сеть и переменные
Наиболее удобная среда для работы с WSL — приложение Терминал Windows (Windows Terminal), которое автоматически добавляет профили для каждого установленного дистрибутива. Вкладки, разделение окон и настройка внешнего вида делают его заметно удобнее стандартной консоли.
Сетевая часть в WSL 2 устроена через виртуальный коммутатор: дистрибутив получает собственный IP-адрес, отличный от адреса Windows. Сервис, запущенный внутри WSL на каком-либо порту, обычно доступен из Windows по localhost благодаря встроенному пробросу портов. В обратную сторону — при обращении из WSL к сервису на Windows — потребуется IP-адрес хоста, который можно узнать из файла /etc/resolv.conf (строка nameserver).
Между системами также действует обмен переменными окружения через специальную переменную WSLENV, а путь PATH Windows по умолчанию добавляется в Linux-окружение — именно поэтому Windows-программы запускаются из bash. Если такое поведение мешает, его можно отключить через файл /etc/wsl.conf, добавив секцию с параметром appendWindowsPath = false.
Пример настройки /etc/wsl.conf
Файл /etc/wsl.conf управляет поведением дистрибутива. Пример содержимого: [boot] с параметром systemd=true включает поддержку systemd (в свежих версиях WSL); [interop] с appendWindowsPath=false отключает наследование PATH из Windows. После правки файла выполните wsl --shutdown и запустите дистрибутив заново, чтобы изменения применились.
Типичные ошибки WSL и способы их решения
Большинство проблем с подсистемой относится к одной из трёх категорий: отключённая виртуализация, устаревшие компоненты или повреждённое состояние дистрибутива. Диагностику стоит начинать с простых обратимых шагов.
- 🧱 Ошибка 0x80370102 при запуске — виртуализация выключена в BIOS/UEFI или не включена «Платформа виртуальной машины» в компонентах Windows;
- 🌐 Нет интернета внутри WSL — перезапустите подсистему командой
wsl --shutdown, проверьте, не блокирует ли соединение VPN или сторонний брандмауэр на стороне Windows; - 💾 Диск VHDX занимает слишком много места — виртуальный диск WSL 2 не сжимается автоматически после удаления файлов внутри Linux;
- 🐢 Медленная работа — убедитесь, что проект лежит в файловой системе Linux, а не в
/mnt/c.
Общий порядок действий при сбоях такой: сначала полностью остановите подсистему (wsl --shutdown) и запустите дистрибутив заново. Если не помогло — обновите компоненты WSL командой wsl --update и перезагрузите компьютер. Только после этого имеет смысл проверять компоненты Windows через «Программы и компоненты → Включение или отключение компонентов Windows».
⚠️ Внимание: командаwsl --unregisterудаляет дистрибутив вместе со всеми файлами и настройками внутри него — восстановить данные после этого нельзя. Перед удалением экспортируйте дистрибутив в архив:wsl --export Имя путь\backup.tar. Импорт обратно выполняется командойwsl --import.
⚠️ Внимание: не редактируйте Linux-файлы через путь вида%LOCALAPPDATA%\Packages\...\LocalStateнапрямую в обход\\wsl$— так можно повредить файловую систему дистрибутива. Все операции с файлами выполняйте либо изнутри Linux, либо через сетевой путь\\wsl$.
Обновление и резервное копирование WSL
Ядро и системные компоненты WSL обновляются отдельно от дистрибутивов. Команда wsl --update скачивает актуальную версию, а wsl --status показывает текущую конфигурацию: версию по умолчанию, дистрибутив по умолчанию и состояние ядра. Пакеты внутри самого Linux обновляются штатным пакетным менеджером, например sudo apt update && sudo apt upgrade для Ubuntu.
Для резервного копирования используется экспорт в tar-архив, упомянутый выше. Такой архив удобно хранить как снимок рабочего окружения: его можно развернуть на другом компьютере или восстановить после неудачных экспериментов. Регулярный экспорт — единственный надёжный способ защитить данные внутри дистрибутива, поэтому встроенных средств автоматического бэкапа у WSL нет.
Часто задаваемые вопросы о работе с WSL
Можно ли запускать графические Linux-приложения в WSL?
Да, в актуальных версиях WSL поддерживается WSLg — подсистема для запуска GUI-приложений Linux с выводом окон прямо на рабочий стол Windows. Достаточно установить приложение пакетным менеджером и запустить его из терминала. Поддержка зависит от версии WSL и Windows, поэтому при проблемах сначала выполните wsl --update.
Чем WSL отличается от обычной виртуальной машины?
WSL 2 технически использует виртуализацию, но тесно интегрирован с Windows: общий доступ к файлам, сети, буферу обмена и запуск программ между системами работают «из коробки». Классическая виртуальная машина даёт полную изоляцию и графическое окружение, но требует больше ресурсов и настройки. Для разработки и консольных инструментов WSL удобнее, для изолированных тестов полноценных систем — виртуальная машина.
Как перенести дистрибутив WSL на другой диск?
Прямой настройки расположения нет, но задача решается через экспорт и импорт: выполните wsl --export в архив, удалите дистрибутив командой wsl --unregister, затем импортируйте архив через wsl --import с указанием новой папки на нужном диске. Перед операцией убедитесь, что экспорт прошёл без ошибок.
Почему Docker требует WSL 2?
Docker рассчитан на настоящее ядро Linux с поддержкой контейнерных механизмов. WSL 1 лишь эмулирует системные вызовы и не предоставляет нужных возможностей ядра, поэтому Docker Desktop использует WSL 2 как backend. Если Docker не запускается, проверьте, что дистрибутив переведён на вторую версию командой wsl --set-version.
Как узнать, какая версия WSL используется у дистрибутива?
Выполните в PowerShell команду wsl -l -v — в колонке VERSION будет указана версия (1 или 2) для каждого установленного дистрибутива, а в колонке STATE — текущее состояние (Running или Stopped).