WSL2 в 2026 году: настраиваем Linux-среду для разработки в Windows
WSL2 в 2026 году - это полноценное ядро Linux в лёгкой виртуальной машине Windows, и для разработки его хватает в большинстве сценариев. Ставится он одной командой wsl --install, а дальше решают три настройки: код хранить внутри Linux, а не на диске C, включить systemd в wsl.conf и ограничить память в .wslconfig.

Содержание
Что такое WSL2 сейчас и когда его хватает
WSL2 запускает настоящее ядро Linux, собранное Microsoft, в служебной виртуальной машине Hyper-V. Дистрибутивы работают внутри неё как контейнеры, стартуют за секунды и делят память с Windows. С версии 2.6, вышедшей в июне 2025 года, сам WSL открыт под лицензией MIT, код и трекер ошибок лежат на GitHub. Обновляется он через Microsoft Store или командой wsl --update, независимо от обновлений Windows.
Для чего WSL2 подходит хорошо: веб-бэкенд и фронтенд, Python, Go, Rust, сборка под Linux, Docker, скрипты, обучение командной строке. Графические программы Linux тоже запускаются через WSLg и появляются в меню "Пуск" как обычные окна.
Где он упирается в ограничения: свои модули ядра и драйверы, работа с USB-устройствами без дополнительных утилит, низкоуровневая работа с сетью, игры и полноценный рабочий стол Linux. Если вы всё чаще живёте в терминале WSL, возможно, пора поставить Linux рядом с Windows второй системой.
Установка WSL2 и выбор дистрибутива
Откройте PowerShell или терминал Windows от администратора. Одна команда включит нужные компоненты, поставит WSL из Store и дистрибутив по умолчанию, это Ubuntu:
wsl --install Если нужен другой дистрибутив, сначала посмотрите список и ставьте по имени. В нём есть Ubuntu разных версий, Debian, Arch Linux, Fedora, openSUSE, Kali и другие:
wsl --list --online
wsl --install -d Debian
wsl --install -d Ubuntu-24.04 --location D:\WSL\Ubuntu24 Флаг --location сразу ставит дистрибутив на другой диск, это удобно, если на C мало места. После первого запуска система попросит имя пользователя и пароль Linux. Они не связаны с учётной записью Windows, пароль понадобится для sudo.
Проверьте, что всё на WSL2 и свежей версии:
wsl --list --verbose
wsl --version
wsl --update Ошибка 0x80370102 при установке почти всегда означает выключенную виртуализацию в BIOS или UEFI: включите Intel VT-x или AMD SVM и повторите. Внутри дистрибутива первым делом обновите пакеты, например sudo apt update && sudo apt full-upgrade в Ubuntu и Debian.
Где хранить проекты: файловая система решает
Главная ошибка новичков в WSL - держать проекты на /mnt/c/Users/.... Диски Windows подключены через сетевой протокол 9P, и любая операция с тысячами мелких файлов идёт на порядок медленнее, чем на родной ext4. npm install, git status в большом репозитории и сборка C++ заметно тормозят, а инструменты слежения за файлами иногда вообще не видят изменений.
Правило простое: код, с которым работают Linux-инструменты, лежит в домашнем каталоге Linux, например ~/projects. Из Windows к нему есть доступ по пути \\wsl.localhost\Ubuntu\home\имя, а открыть текущий каталог в проводнике можно командой:
mkdir -p ~/projects && cd ~/projects
explorer.exe . Два момента с Git. Окончания строк: если репозиторий клонирован внутри Linux, ставьте git config --global core.autocrlf input, чтобы в коммиты не попадали CRLF. И права на файлы: на /mnt/c без опции metadata у всех файлов одинаковые права, поэтому chmod +x там не работает. Ещё одна причина держать проекты в Linux.
Настройки дистрибутива в /etc/wsl.conf
У WSL два файла настроек, и их легко перепутать. /etc/wsl.conf лежит внутри дистрибутива и действует только на него. .wslconfig лежит в профиле Windows и настраивает общую виртуальную машину. Типичный wsl.conf для разработки:
[boot]
systemd=true
[user]
default=имя
[interop]
appendWindowsPath=false Systemd в свежих образах Ubuntu уже включён, в других дистрибутивах его включают этой строкой. С ним работают systemctl, таймеры, snap и службы вроде PostgreSQL. Параметр appendWindowsPath=false убирает пути Windows из $PATH: автодополнение в bash перестаёт тормозить, а node или python из Windows не подменяют линуксовые. Сами программы Windows при этом запускаются, если писать полный путь или имя с .exe.
| Задача | Файл и секция | Параметр |
|---|---|---|
| Включить systemd | wsl.conf, [boot] | systemd=true |
| Пользователь по умолчанию | wsl.conf, [user] | default=имя |
| Убрать пути Windows | wsl.conf, [interop] | appendWindowsPath=false |
| Права на дисках Windows | wsl.conf, [automount] | options="metadata" |
| Лимит памяти и ядер | .wslconfig, [wsl2] | memory=8GB, processors=4 |
| Сеть как у Windows | .wslconfig, [wsl2] | networkingMode=mirrored |
| Возврат кэша в Windows | .wslconfig, [experimental] | autoMemoryReclaim=gradual |
| Разреженный диск VHD | .wslconfig, [experimental] | sparseVhd=true |
Память, процессор и сеть в .wslconfig
По умолчанию виртуальная машина WSL может забрать до половины оперативной памяти Windows и добавляет swap на четверть от её объёма. На ноутбуке с 16 ГБ, где одновременно работают браузер, IDE и пара контейнеров, лимит лучше задать явно. Создайте файл %UserProfile%\.wslconfig:
[wsl2]
memory=8GB
processors=6
swap=4GB
networkingMode=mirrored
[experimental]
autoMemoryReclaim=gradual
sparseVhd=true Режим mirrored работает в Windows 11 22H2 и новее: Linux видит те же сетевые интерфейсы, что и Windows, сервисы доступны по localhost в обе стороны, лучше работают VPN и IPv6. Если в нём что-то ломается, удалите строку и вернётесь к NAT. Сейчас Microsoft советует менять эти параметры в приложении "Параметры WSL" из меню "Пуск", оно пишет тот же файл.
Настройки применяются только после полной остановки виртуальной машины. Закрыть окно терминала мало: WSL ещё несколько секунд работает в фоне. Выполните wsl --shutdown в PowerShell и проверьте командой wsl --list --running, что ничего не запущено. Половина вопросов "я поменял .wslconfig, а ничего не изменилось" решается этим.
VS Code, Git, SSH и Docker внутри WSL
VS Code с расширением WSL работает по схеме клиент-сервер: окно в Windows, а сервер, терминал, расширения для языков и отладчик внутри Linux. Откройте проект прямо из терминала WSL:
cd ~/projects/app
code . Аналогично работают JetBrains IDE через удалённую разработку и Cursor. Главное, чтобы проект открывался по пути внутри Linux, а не через /mnt/c.
SSH-ключи для GitHub и серверов создайте внутри Linux через ssh-keygen -t ed25519, как описано в статье про SSH-клиент. Для HTTPS-доступа можно подключить Git Credential Manager из Git для Windows, тогда пароль и токен хранятся в системном хранилище Windows.
Docker ставят двумя способами: Docker Desktop с интеграцией WSL или Docker Engine прямо в дистрибутив, что возможно благодаря systemd. Второй вариант легче и не требует лицензии для компаний, первый удобнее новичкам. Как ускорить сборку и не упереться в диск, разобрано в статье Docker в WSL2.
Графические программы и видеокарта
WSLg включён по умолчанию: поставьте программу из репозитория, например sudo apt install gedit, и она откроется в отдельном окне Windows. Работают буфер обмена, звук и микрофон.
Для CUDA и машинного обучения драйвер NVIDIA ставят только в Windows. Внутрь WSL драйвер Linux ставить нельзя, он сломает проброс видеокарты. Достаточно обычного драйвера Windows и пакетов CUDA toolkit для WSL из репозитория NVIDIA. Проверка:
nvidia-smi Если команда показывает карту и версию драйвера, PyTorch и другие фреймворки её увидят. Для AMD и Intel GPU в WSL работает ускорение через DirectX 12 и Mesa, но совместимость фреймворков ниже, чем у CUDA.
Резервная копия, перенос и место на диске
Весь дистрибутив хранится в одном файле ext4.vhdx. Сделать копию перед экспериментом или переездом на новый компьютер:
wsl --shutdown
wsl --export Ubuntu D:\backup\ubuntu.tar
wsl --import Ubuntu-copy D:\WSL\Ubuntu-copy D:\backup\ubuntu.tar Перенести уже установленный дистрибутив на другой диск можно без экспорта: wsl --manage Ubuntu --move D:\WSL\Ubuntu. Перед этим остановите WSL и сделайте экспорт на всякий случай.
Файл VHDX растёт, но сам не уменьшается, даже если вы удалили образы Docker. Параметр sparseVhd=true делает новые диски разреженными, и место возвращается Windows автоматически. Внутри дистрибутива почистить мусор помогут приёмы из статьи как освободить место на диске.
Удаление wsl --unregister имя стирает дистрибутив вместе со всеми файлами без корзины, поэтому сначала экспорт. Полный список параметров есть в документации Microsoft по настройке WSL.
Частые вопросы
Чем WSL2 отличается от WSL1?
WSL2 запускает настоящее ядро Linux в лёгкой виртуальной машине, поэтому работают Docker, systemd и все системные вызовы. WSL1 транслировал вызовы Linux в Windows и быстрее работал с файлами на диске C, но совместимость у него хуже.
Почему в WSL медленно работает npm install или git?
Скорее всего, проект лежит на /mnt/c. Перенесите его в домашний каталог Linux, например ~/projects, и открывайте оттуда через code .
Сколько памяти забирает WSL2?
По умолчанию до 50% оперативной памяти Windows. Лимит задаётся параметром memory в файле .wslconfig, после изменения нужно выполнить wsl --shutdown.
Как включить systemd в WSL?
Добавьте в /etc/wsl.conf секцию [boot] со строкой systemd=true и перезапустите WSL командой wsl --shutdown в PowerShell.
Можно ли поставить в WSL драйвер NVIDIA для Linux?
Нет. Драйвер ставится только в Windows, внутри WSL его библиотеки уже доступны. Linux-драйвер внутри WSL сломает доступ к видеокарте.
Документация и источники
- Advanced settings configuration in WSL, Microsoft Learn, 2026
- Basic commands for WSL, Microsoft Learn, 2026
- Accessing network applications with WSL, Microsoft Learn, 2026
- microsoft/WSL, Microsoft, GitHub, 2026
Читайте также
Команды проверены на актуальных версиях дистрибутивов на момент обновления. Перед изменением системных настроек сделайте резервную копию.