Windows Subsystem for Linux: полное руководство по WSL

Команда wsl --install в терминале Windows — это всё, что нужно для запуска полноценного Linux-окружения прямо внутри Windows без виртуальных машин и двойной загрузки. Подсистема Windows Subsystem for Linux (сокращённо WSL) позволяет выполнять Linux-команды, запускать bash-скрипты и использовать инструменты разработчика, не покидая привычной системы.

Технология пришла на смену громоздким виртуальным машинам и эмуляторам вроде Cygwin. В отличие от них, WSL интегрирована в ядро Windows и работает с минимальными накладными расходами. В этой статье разберём, чем отличаются версии WSL 1 и WSL 2, как правильно установить подсистему, выбрать дистрибутив и устранить частые ошибки.

Что такое WSL и зачем она нужна

Windows Subsystem for Linux — это слой совместимости, разработанный Microsoft, который исполняет бинарные файлы Linux нативно в среде Windows. Пользователь получает доступ к настоящему ядру Linux, файловой системе и пакетным менеджерам вроде apt или dnf.

Основная аудитория WSL — разработчики и системные администраторы. Вам не нужно перезагружаться в другую ОС или держать отдельную виртуалку, чтобы собрать проект под Linux, протестировать скрипт или поднять локальный сервер. Всё работает в одном окне терминала рядом с PowerShell.

  • 🐧 Запуск Linux-утилит напрямую из командной строки Windows
  • 🔗 Общий доступ к файлам: диски Windows видны в Linux через /mnt/c
  • 🐳 Поддержка Docker Desktop и контейнерных сценариев
  • 🖥️ Возможность запуска графических Linux-приложений (в актуальных версиях Windows 11)

Отличия WSL 1 и WSL 2

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

Выбор версии влияет на производительность. WSL 2 заметно быстрее работает с файловой системой Linux, но доступ к файлам Windows через /mnt в нём медленнее, чем в WSL 1. Для большинства задач разработки рекомендуется именно вторая версия.

КритерийWSL 1WSL 2
Ядро LinuxНет (трансляция вызовов)Полноценное ядро
Скорость работы с Linux-файламиСредняяВысокая
Совместимость с софтомЧастичнаяПочти полная
Поддержка DockerОграниченнаяПолная
Требования к виртуализацииНе требуетсяНужна виртуализация в BIOS
📊 Какую версию WSL вы используете?
WSL 2
WSL 1
Пока только выбираю
Не знал(а) о разнице версий

Системные требования и подготовка

Для работы WSL 2 потребуется 64-разрядная Windows 10 (версии 2004 и новее) или Windows 11. Проверить версию системы можно командой winver в диалоге «Выполнить». Если система старше, доступна только WSL 1 либо потребуется обновление.

Второе обязательное условие — включённая виртуализация в BIOS/UEFI. У процессоров Intel эта технология называется VT-x, у AMD — AMD-V. Проверить её статус можно в Диспетчере задач на вкладке «Производительность» в разделе «ЦП»: там есть строка «Виртуализация».

⚠️ Внимание: если виртуализация отключена, WSL 2 не запустится и выдаст ошибку. Входить в BIOS и менять настройки следует аккуратно — точное название пункта меню зависит от производителя материнской платы, сверяйтесь с инструкцией к вашей плате или ноутбуку.

Установка WSL: пошаговая инструкция

В актуальных версиях Windows установка сведена к одной команде. Откройте PowerShell или Терминал Windows от имени администратора и выполните:

wsl --install

Эта команда автоматически включает необходимые компоненты Windows (платформу виртуальной машины и подсистему Linux), скачивает ядро WSL 2 и устанавливает дистрибутив Ubuntu по умолчанию. После завершения потребуется перезагрузка компьютера.

Если нужен другой дистрибутив, сначала посмотрите список доступных командой wsl --list --online, а затем установите выбранный, указав его имя. Например, для Debian:

wsl --install -d Debian

☑️ Проверка после установки WSL

Выполнено: 0 / 4

При первом запуске дистрибутив попросит создать имя пользователя и пароль — они не связаны с учётной записью Windows. Пароль при вводе в терминале Linux не отображается вообще, даже звёздочками — это нормальное поведение, а не зависание.

Управление дистрибутивами и базовые команды

Одна система может содержать сразу несколько дистрибутивов Linux, и переключаться между ними просто. Необходимо знать небольшой набор команд управления.

  • 📋 wsl --list --verbose — показать установленные дистрибутивы и их версии WSL
  • ⚙️ wsl --set-default-version 2 — задать WSL 2 версией по умолчанию для новых установок
  • 🔄 wsl --set-version ИмяДистрибутива 2 — конвертировать существующий дистрибутив в WSL 2
  • 🗑️ wsl --unregister ИмяДистрибутива — полностью удалить дистрибутив и его данные
  • ⏹️ wsl --shutdown — завершить все запущенные сеансы WSL
⚠️ Внимание: команда wsl --unregister удаляет дистрибутив вместе со всеми файлами внутри него без возможности восстановления. Перед выполнением сохраните нужные данные, например скопировав их на диск Windows через /mnt/c.
Как перенести дистрибутив на другой диск

Используйте связку команд: wsl --export ИмяДистрибутива D:\backup\distro.tar для экспорта, затем wsl --unregister для удаления исходного и wsl --import ИмяДистрибутива D:\WSL D:\backup\distro.tar для установки копии в новое расположение. После импорта дистрибутив будет запускаться от имени root — чтобы вернуть обычного пользователя, задайте его в файле /etc/wsl.conf в секции [user] параметром default=имя.

Работа с файлами и интеграция с Windows

Файловые системы Windows и Linux в WSL взаимно прозрачны. Из Linux диски Windows доступны по путям вида /mnt/c, /mnt/d и так далее. В обратную сторону файлы Linux-дистрибутива видны в Проводнике по сетевому пути \\wsl$ — его можно ввести в адресной строке.

Держать рабочие проекты лучше внутри файловой системы Linux, а не на /mnt/c: операции с файлами Windows из WSL 2 заметно медленнее. Редактировать код удобно через Visual Studio Code с расширением WSL — редактор при этом работает в Windows, а вся цепочка инструментов (компиляторы, Git, интерпретаторы) выполняется в Linux.

Типичные ошибки и их решение

Чаще всего проблемы возникают на этапе установки или первого запуска. Разберём распространённые сценарии без привязки к конкретным кодам — тексты ошибок могут отличаться в зависимости от версии Windows.

Ошибка о необходимости включить виртуализацию. Зайдите в BIOS/UEFI и активируйте VT-x или AMD-V, затем проверьте, что в Windows включены компоненты «Платформа виртуальной машины» и «Подсистема Windows для Linux» в диалоге «Компоненты Windows». После изменений перезагрузите ПК.

WSL не запускается после обновления Windows. Попробуйте обновить саму подсистему командой wsl --update в PowerShell с правами администратора. Если это не помогло, выполните wsl --shutdown и запустите дистрибутив заново.

Нет доступа к интернету внутри WSL. Возможная причина — конфликт с VPN-клиентом или сторонним антивирусом. Для диагностики временно отключите их и проверьте соединение командой ping. Также помогает завершение всех сеансов через wsl --shutdown и повторный запуск.

FAQ: частые вопросы о WSL

Чем WSL отличается от виртуальной машины VirtualBox или VMware?

WSL глубже интегрирована в Windows: запуск занимает секунды, файловые системы взаимно доступны, а потребление ресурсов ниже за счёт лёгкой архитектуры. Классическая виртуальная машина даёт полную изоляцию и подходит, когда нужна отдельная графическая ОС, но тяжелее в настройке и работе.

Можно ли запускать графические Linux-приложения в WSL?

Да, в актуальных версиях Windows 11 поддержка GUI-приложений (функция WSLg) встроена по умолчанию — достаточно установить программу пакетным менеджером и запустить её из терминала. В Windows 10 эта возможность отсутствует.

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

Данные WSL 2 хранятся в виде виртуального диска формата VHDX в профиле пользователя. Напрямую редактировать этот файл не следует — работайте с файлами через путь \\wsl$ или изнутри самой Linux-среды.

Безопасно ли использовать WSL для работы?

Да, при соблюдении стандартных мер: регулярно обновляйте пакеты дистрибутива, не запускайте непроверенные скрипты от root и помните, что процессы Linux имеют доступ к файлам Windows через /mnt. Антивирус Windows видит активность WSL, но сторонние средства защиты могут потребовать настройки исключений.

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

Сначала удалите дистрибутивы командой wsl --unregister для каждого из них, затем удалите приложения дистрибутивов через «Параметры» → «Приложения». После этого отключите компоненты «Подсистема Windows для Linux» и «Платформа виртуальной машины» в диалоге компонентов Windows и перезагрузите ПК.