# WSL (Windows Subsystem for Linux): что это, установка и настройка Linux в Windows

URL: https://skillaria.top/ru/guides/linux/wsl-linux-v-windows

WSL (Windows Subsystem for Linux) — встроенная в Windows 10 и 11 подсистема, которая запускает настоящий Linux-дистрибутив без отдельной виртуальной машины и двойной загрузки. Устанавливается одной командой wsl --install в PowerShell от имени администратора; по умолчанию ставится WSL 2 с Ubuntu, где работает реальное ядро Linux в лёгкой виртуальной машине.

Windows Subsystem for Linux (WSL, подсистема Windows для Linux) — компонент Windows 10 и 11, который позволяет запускать Linux-дистрибутив прямо внутри Windows: терминал bash, `apt`, `ssh`, `grep`, Docker и любые консольные утилиты. Не нужно ставить VirtualBox или делить диск под вторую систему — Ubuntu открывается как обычное окно терминала за пару секунд. Ниже — чем отличаются WSL 1 и WSL 2, как установить подсистему, как работать с файлами, VS Code и графическими приложениями и что делать с типичными ошибками.

## Что такое WSL в Linux и Windows

Если коротко, что такое WSL: это способ получить полноценное Linux-окружение для разработки и обучения, не покидая Windows. Вы ставите дистрибутив (Ubuntu, Debian, openSUSE, Kali, AlmaLinux и другие) из командной строки или Microsoft Store, а затем работаете в нём так же, как на сервере: пользователи, права, пакеты, сервисы.

Важно понимать, чего WSL не делает. Это не эмулятор команд вроде Cygwin и не набор портированных утилит: в WSL 2 работает настоящее ядро Linux, собранное Microsoft. Поэтому бинарники для Linux запускаются без перекомпиляции, а навыки, полученные в WSL, напрямую переносятся на реальный сервер.

Типичные задачи для подсистемы:

- изучение Linux и командной строки без отдельного компьютера;
- веб-разработка, когда продакшен работает на Linux (Python, Node.js, PHP, Go);
- Docker Desktop — он использует WSL 2 как движок;
- подключение к серверам по SSH, скрипты bash, работа с git в привычной среде.

## WSL 1 и WSL 2: в чём разница

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

| Параметр | WSL 1 | WSL 2 |
| --- | --- | --- |

| Ядро | нет, трансляция системных вызовов | настоящее ядро Linux |

| Совместимость системных вызовов | частичная | полная |

| Docker, systemd | нет | да |

| Скорость в файлах Linux (`~/`) | ниже | высокая |

| Скорость в файлах Windows (`/mnt/c`) | высокая | заметно ниже |

| Нужна виртуализация | нет | да |

| Сеть | общая с Windows | своя виртуальная сеть (NAT по умолчанию) |

Для почти всех сценариев выбирайте WSL 2 — она стоит по умолчанию. WSL 1 имеет смысл, если виртуализацию включить нельзя (например, Windows сама работает внутри виртуальной машины без вложенной виртуализации) или проект обязан лежать на диске Windows и активно с ним работает.

## Как установить WSL в Windows 10 и 11

В Windows 11 и Windows 10 версии 2004 и новее (сборка 19041+) установка сводится к одной команде. Откройте PowerShell или «Терминал» от имени администратора и выполните:

```
wsl --install
```

Команда включает нужные компоненты Windows, скачивает ядро WSL 2 и ставит Ubuntu. После перезагрузки откроется окно дистрибутива: придумайте имя пользователя и пароль Linux. Они не связаны с учётной записью Windows; этот пароль понадобится для `sudo`.

```
Enter new UNIX username: alex
New password:
Retype new password:
passwd: password updated successfully
Installation successful!
```

Сразу обновите пакеты — как на любом свежем сервере:

```
sudo apt update && sudo apt upgrade -y
```

### Как выбрать дистрибутив

Ubuntu ставится по умолчанию, но можно выбрать другой дистрибутив. Список доступных:

```
wsl --list --online
```

Установка конкретного дистрибутива по имени из этого списка:

```
wsl --install -d Debian
```

Если WSL уже стоит, команда просто добавит новый дистрибутив. Одновременно можно держать несколько систем — например, Ubuntu для работы и Kali для экспериментов.

### Проверка версии: wsl -l -v

Посмотреть установленные дистрибутивы, их состояние и версию WSL:

```
wsl -l -v
  NAME      STATE           VERSION
* Ubuntu    Running         2
  Debian    Stopped         2
```

Звёздочка отмечает дистрибутив по умолчанию — он запускается командой `wsl` без параметров. Сменить его можно так: `wsl --set-default Debian`.

### Как переключить WSL 1 на WSL 2

Версия для новых установок задаётся командой:

```
wsl --set-default-version 2
```

Уже установленный дистрибутив конвертируется отдельно (данные сохраняются, но процесс может занять несколько минут):

```
wsl --set-version Ubuntu 2
```

Обратная конвертация — `wsl --set-version Ubuntu 1`.

### Полезные команды управления WSL

| Команда | Что делает |
| --- | --- |

| `wsl` | открыть дистрибутив по умолчанию |

| `wsl -d Debian` | открыть конкретный дистрибутив |

| `wsl --shutdown` | остановить все дистрибутивы и виртуальную машину WSL 2 |

| `wsl --terminate Ubuntu` | остановить один дистрибутив |

| `wsl --update` | обновить WSL и ядро |

| `wsl --status` | версия по умолчанию и общее состояние |

| `wsl --export Ubuntu ubuntu.tar` | резервная копия дистрибутива в архив |

| `wsl --import Ubuntu2 D:\wsl\u2 ubuntu.tar` | восстановить или клонировать дистрибутив |

| `wsl --unregister Ubuntu` | удалить дистрибутив вместе со всеми данными |

Будьте осторожны с `--unregister`: файлы внутри дистрибутива удаляются без корзины. Перед этим сделайте `--export`.

## Файлы Windows из Linux и обратно

Диски Windows автоматически монтируются внутри WSL в каталог `/mnt`: диск C: — это `/mnt/c`, D: — `/mnt/d`.

```
cd /mnt/c/Users/alex/Downloads
ls -l
cp report.csv ~/projects/
```

В обратную сторону файлы Linux видны в Проводнике по сетевому пути `\\wsl$\Ubuntu` (в Windows 11 — также `\\wsl.localhost\Ubuntu`) и в разделе «Linux» в боковой панели. Быстро открыть текущий каталог Linux в Проводнике:

```
explorer.exe .
```

Из WSL можно запускать программы Windows (`notepad.exe`, `code`), а из PowerShell — команды Linux через префикс: `wsl ls -la`. Для перевода путей между системами есть утилита `wslpath`:

```
wslpath 'C:\Users\alex'
/mnt/c/Users/alex
```

Главное правило производительности WSL 2: храните проекты в файловой системе Linux (`~/projects`), а не в `/mnt/c`. Доступ к дискам Windows идёт через сетевой протокол, и операции вроде `git status` или `npm install` на большом проекте там работают в разы медленнее.

## VS Code и WSL

Visual Studio Code умеет работать с WSL как с удалённой машиной: интерфейс остаётся в Windows, а терминал, расширения, интерпретаторы и отладчик выполняются внутри Linux. Для этого нужно расширение WSL (Microsoft). Затем в терминале дистрибутива перейдите в каталог проекта и выполните:

```
cd ~/projects/site
code .
```

При первом запуске VS Code сам поставит в Linux серверную часть. В левом нижнем углу появится индикатор «WSL: Ubuntu» — значит, всё, что вы запускаете из встроенного терминала, работает в Linux. Расширения вроде Python или ESLint нужно установить «в WSL» — VS Code предложит это кнопкой.

## Графические приложения в WSL (WSLg)

В Windows 11 и актуальных версиях WSL на Windows 10 есть WSLg — поддержка графических Linux-приложений из коробки, без настройки X-сервера. Установите программу как обычно, и её окно появится рядом с окнами Windows, а ярлык — в меню «Пуск».

```
sudo apt install gedit -y
gedit ~/.bashrc &
```

WSLg поддерживает X11 и Wayland, звук и буфер обмена. Для повседневной работы с полноценным рабочим столом Linux это всё же не замена: WSL рассчитан на отдельные приложения, а не на GNOME или KDE целиком.

## systemd и ресурсы WSL 2

В актуальных версиях WSL 2 поддерживается systemd: в новых установках Ubuntu он включён по умолчанию. Если нет — добавьте в файл `/etc/wsl.conf` внутри дистрибутива:

```
[boot]
systemd=true
```

и перезапустите подсистему из PowerShell: `wsl --shutdown`. После этого работают `systemctl` и сервисы вроде nginx или PostgreSQL.

Ограничить память и процессоры виртуальной машины WSL 2 можно в файле `%UserProfile%\.wslconfig` на стороне Windows:

```
[wsl2]
memory=4GB
processors=2
```

Настройки применяются после `wsl --shutdown`.

## Типичные ошибки при установке WSL

### Ошибка 0x80370102

Полный текст: «Не удалось запустить виртуальную машину, так как не установлен необходимый компонент» (WslRegisterDistribution failed with error: 0x80370102). Причина почти всегда одна: WSL 2 не может запустить виртуальную машину. Проверьте по порядку:

1. Включена ли аппаратная виртуализация в BIOS/UEFI: Intel VT-x (Intel Virtualization Technology) или AMD-V (SVM Mode). Состояние видно в Диспетчере задач → «Производительность» → ЦП → «Виртуализация: Включено».
2. Включён ли компонент «Платформа виртуальной машины».
3. Не отключён ли гипервизор в загрузчике.

Компоненты включаются из PowerShell от администратора:

```
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
bcdedit /set hypervisorlaunchtype auto
```

После этого перезагрузите компьютер. Если вы работаете внутри виртуальной машины, на хосте нужно разрешить вложенную виртуализацию — либо используйте WSL 1.

### Другие частые проблемы

- **0x800701bc** — не обновлено ядро WSL 2. Выполните `wsl --update`.
- **Команда wsl --install выводит только справку** — WSL уже установлен; добавьте дистрибутив через `wsl --install -d Ubuntu`.
- **Нет интернета внутри WSL при VPN** — VPN-клиент перехватывает маршруты виртуальной сети. В Windows 11 помогает режим `networkingMode=mirrored` в секции `[wsl2]` файла `.wslconfig`.
- **WSL занимает много места** — виртуальный диск `ext4.vhdx` растёт, но сам не сжимается после удаления файлов. Его можно уменьшить вручную или переносить дистрибутив через `--export`/`--import`.
- **Забыли пароль Linux** — войдите под root из PowerShell: `wsl -u root`, затем `passwd alex`.

## WSL, виртуальная машина или dual boot

WSL — не единственный способ получить Linux на компьютере с Windows. Выбор зависит от задачи.

| Вариант | Плюсы | Минусы | Когда выбирать |
| --- | --- | --- | --- |

| WSL 2 | запуск за секунды, общие файлы, VS Code, Docker | нет полноценного рабочего стола, особенности сети и дисков | разработка, обучение командной строке, скрипты |

| Виртуальная машина (VirtualBox, Hyper-V, VMware) | полная изоляция, снимки, любой дистрибутив и рабочий стол, своя сетевая карта | тяжелее, ресурсы выделяются заранее | стенд сервера, эксперименты с сетью, загрузкой, разметкой дисков |

| Dual boot | вся мощность железа, нативная графика и драйверы | перезагрузка для переключения, риск при разметке диска | Linux как основная система, игры и GPU-задачи под Linux |

Для того чтобы изучить Linux с нуля, WSL обычно достаточно: файлы, права, процессы, пакеты, bash-скрипты и SSH работают так же, как на сервере. Виртуальная машина понадобится, когда дело дойдёт до вещей, которые в WSL устроены иначе: загрузчика, разметки физических дисков, сетевых интерфейсов и firewall на уровне хоста.

## Итог

Windows Subsystem for Linux даёт настоящий Linux внутри Windows за одну команду `wsl --install`. Выбирайте WSL 2, проверяйте версии через `wsl -l -v`, держите проекты в `~/`, а не в `/mnt/c`, и подключайте VS Code через расширение WSL. Если установка падает с 0x80370102 — включите виртуализацию в BIOS и компонент «Платформа виртуальной машины». С подготовки такого рабочего места начинается практика в курсе по Linux.

## FAQ

**WSL бесплатный?**

Да. WSL входит в Windows 10 и 11 всех редакций, включая Home, а дистрибутивы Linux тоже распространяются бесплатно.

**Можно ли запустить Docker в WSL?**

Да, но только в WSL 2. Можно поставить Docker Desktop с движком WSL 2 или установить Docker Engine прямо в дистрибутив, как на обычный Ubuntu-сервер.

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

В WSL 2 — в виртуальном диске ext4.vhdx в профиле пользователя Windows. Открывать его напрямую не нужно: используйте путь \\wsl$\ в Проводнике.

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

Удалите дистрибутивы командой wsl --unregister , затем удалите приложение «Подсистема Windows для Linux» в разделе «Установленные приложения» и при необходимости отключите компоненты Windows.

**Можно ли перенести WSL на другой диск?**

Да: wsl --export Ubuntu ubuntu.tar, затем wsl --unregister Ubuntu и wsl --import Ubuntu D:\wsl\ubuntu ubuntu.tar. В новых версиях есть и команда wsl --manage Ubuntu --move.


---
Source: Skillaria.Top (https://skillaria.top)
