Files
man/src/WSL.md
T
2026-04-20 08:46:12 +03:00

3.8 KiB

Windows Subsystem for Linux

WSL позволяет запускать, разрабатывать и отлаживать Linux программы на Windows. Более того обеспечивается удобная прозрачность между файловыми системами и возможность запускать программы друг-друга.

Существует две реализации WSL:

  • WSL1 - транслятор API Linux <-> Windows
  • WSL2 - виртуальная машина с полноценным ядром Linux.

Мы будем пользоваться WSL2. По скорости работы WSL2 почти не уступает нативной OS Linux. Более подробные отличия можно посмотреть в интеренете.

Находим в поиске: Включение или отключение компонентов Windows

Включаем галочки:

  • Подсистема Windows для Linux
  • Платформа виртуальной машины

Перезагружаем.

В терминале включаем WSL2 по умолчанию для всех дистрибутивов.

wsl --set-default-version 2

Далее из Microsoft Store можно устанавливать дистрибутивы Ubuntu, Debian, и др.

Конфигурация WSL

Установленные дистрибутивы можно запускать из профиля Windows Terminal так:

wsl.exe -d <distroname>

Например:

wsl.exe -d Ubuntu-20.04

Если после настройки .bashrc будет ругаться на переменные locale то надо сгенерировать локаль ru_RU.UTF-8:

sudo dpkg-reconfigure locales

Настройка DNS (для работы с VPN)

При включении VPN наблюдается проблема с переключением на новый DNS. Для ее решения необходимо чтобы WSL использовала DNS независимо от хостовой системы.

В файл /etc/wsl.conf добавляем:

[network]
generateResolvConf = false

Пишем свои DNS сервера в /etc/resolv.conf

sudo rm -rf /etc/resolv.conf
sudo nano /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4

Перезапускаем WSL:

wsl --shutdown

Проброс USB устройств в WSL

Устанавливаем usbipd

winget install usbipd

Вводим для получения листа usbipd list и получаем что то вроде такого:

Connected:
BUSID  VID:PID    DEVICE                    STATE
1-1    1a86:7523  USB-SERIAL CH340 (COM5)   Not shared

Биндим нужное устройство:

usbipd bind --busid 1-1

Лист станет таким:

Connected:
BUSID  VID:PID    DEVICE                    STATE
1-1    1a86:7523  USB-SERIAL CH340 (COM5)   Shared

Пробрасываем нужное нам устройство:

usbipd attach --wsl --busid 1-1

Всё, после этого отваливется COM от винды и он теперь доступен в WSL.

Работа

Чтобы получить доступ к файловой системе виртуальной машины надо при запущенной машине зайти в сетевую папку:

\\wsl$

Либо запустить внутри виртуальной машины:

explorer.exe .

Если используете VS Code то его можно открыть в нужной папке виртуальной машины:

code .