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 .
