Перейти к содержанию

Настройка WSL

Теория по WSL

WSL (Windows Subsystem for Linux) включает установку подсистемы и её настройку после установки. WSL позволяет запускать Linux-среду прямо внутри Windows без необходимости устанавливать виртуальную машину или работать с dual-boot.
WSL 2 — использует полноценное ядро Linux, работающее на виртуальной машине Hyper-V. Рекомендуется использовать WSL 2, так как он ближе к «настоящемуму» Linux и поддерживает больше функций.

Установка

Установка WSL Windows 11

Windows 11 и - Windows 10 2004+ с билдом 19041 и выше — поддержка WSL встроена по умолчанию.

Cписок доступных дистрибутивов

wsl --list --online

Установка WSL

wsl --install -d <distName>

После завершения установки потребуется перезагрузка системы

WSL монтирует Linux-файлы в Windows в следующей директории: \\wsl$\Ubuntu\

Установить дистрибутив в качестве дистрибутива по умолчанию

wsl --set-default <Name>   # <Name> - имя устанавливаемого по умолчанию дистрибутива
# сокращенно: wsl -s <Name>

Ручная установка WSL

Установим следующие компоненты Windows

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

После завершения установки потребуется перезагрузка системы

Скачаем и установим обновление ядра Linux для WSL2

https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi -OutFile "$($env:userprofile)\Downloads\wsl_update_x64.msi" -UseBasicParsing
Invoke-Item "$($env:userprofile)\Downloads\wsl_update_x64.msi"
rm "$($env:userprofile)\Downloads\wsl_update_x64.msi"

После завершения установки потребуется перезагрузка системы

Назначим версию WSL 2 в качестве среды по-умолчанию

wsl --set-default-version 2

Можно устновить дистрибутив Linux из Microsoft Store

Установка дистрибутива через PowerShell

Invoke-WebRequest https://aka.ms/wslubuntu2204 -OutFile ubuntu-2204.appx –UseBasicParsing
Add-AppxPackage .\ubuntu-2204.appx

Настройки параметров WSL и дистрибутивов Linux

Конфиг файлы

wsl.conf – файл с настройками конкретного дистрибутива Linux (находится в директории /etc)
.wslconfig – глобальные настройки WSL, которые применяются ко всем дистрибутовам (находится в профиле пользователя в %UserProfile%)

Удаление WSL-дистрибутива

Вывести список установленных версий Linux:

 wsl --list

Удаление:

wsl --unregister Ubuntu

Удаление WSL-дистрибутива из другого дистрибутива

Список всех дистрибутивов:

wsl -l -v

Теперь удалите выбранный дистрибутив с помощью:

wsl.exe --unregister <distro_name>

Резервная копия дистрибутива

  • Сначала составьте список всех установленных дистрибутивов WSL в вашей системе: wsl -l -v
  • Создаём папку, где будем хранить резервные копии и открываем её в терминале
  • Создаём резервную копию: wsl --export <distribution_name> <filename.tar>

Импорт резервной копии

  • Импорт дистрибутива WSL: Теперь откройте терминал в том месте, где вы создали файл резервной копии
  • Импортируйте дистрибутив: wsl --import <Distribution Name> <InstallLocation> <FileName>
  • Откройте импортированный дистрибутив: wsl -d <distribution_name>

Команды для управления WSL

Проверить текущую версию ядра WSL

wsl --version

Обновить ядро WSL вручную

wsl --update

Откатится к предыдущему ядру WSL

wsl --update rollback

Вывести список установленных версий Linux

wsl --list

Вывести дистрибутив Linux, который используется по-умолчанию

wsl --status

Изменить дистрибутив по-умолчанию

wsl --set-default Ubuntu

Запустить определенный дистрибутив в WSL

wsl -d kali-linux

Завершить среду WSL из терминала Windows

wsl --shutdown

Завершить работу из Linux

sudo shutdown now

Завершение работы определенного дистрибутива Linux:

wsl --terminate <Distribution Name>

Войти в WSL Ubuntu под root и сбросить пароль

ubuntu config --default-user root
Passwd

Вернуть пользователя по умолчанию

ubuntu config --default-user your_username

Ускорение файловой системы

Локальные диски Windows монтируются в WSL в папку mnt

Вывести список файлов папок на диске C:

wsl
ls /mnt
ls/mnt/c

Перенос проектов в Linux-FS

Самый простой и эффективный способ – держать код и данные внутри файловой системы WSL:

Рабочая директория: /home/ваш_пользователь/проекты
Избегаем: C:\Users... для проектов (там медленнее).

Монтирование с опциями

  • Если нужно подключать Windows-папки, добавьте в /etc/wsl.conf:
[automount]  
    options = "metadata,uid=1000,gid=1000,case=off"

Затем выполняем:

sudo wsl --shutdown wsl

Теперь смонтированные диски будут быстрее работать с метаданными и правами.

Использование overlayfs

Для CI/CD и сборок можно монтировать временные оверлейные файловые системы:

sudo modprobe overlay
mkdir -p /mnt/overlay/{lower,upper,work,merged}
sudo mount -t overlay overlay -o lowerdir=/mnt/c/папка,upperdir=/mnt/overlay/upper,workdir=/mnt/overlay/work /mnt/overlay/merged

Разгрузка IO и потрясающая скорость!

Оптимизация сетевого взаимодействия

Фиксируем DNS

Задержка может быть из-за Windows-DNS. В /etc/resolv.conf пропишите:

nameserver 1.1.1.1
nameserver 8.8.8.8

Затем запретите автогенерацию:

sudo chattr +i /etc/resolv.conf

Быстрый доступ к локальным сервисам

Добавьте в C:\Windows\System32\drivers\etc\hosts:

127.0.0.1 myapp.local

В WSL будет мгновенный отклик без долгого DNS-lookup.

TCP-оптимизация

В Windows включите режим ускорения (в PowerShell от админа):

Set-NetTCPSetting -SettingName Datacenter -SettingType Custom
Set-NetTCPSetting -SettingName Custom -Description "Optimized for WSL2"
Set-NetTCPSetting -SettingName Custom -SettingType Host

Перезагрузите стеки:

netsh int tcp reset

Прочая оптимизация

Ограничение использования оперативной памяти

В файле %UserProfile%\.wslconfig:

[wsl2]
memory=2GB
processors=2

Виртуальный RAM-диск: для сверхбыстрых temp-папок

imdisk -a -s 1G -m R: -p "/fs:ntfs /q /y"

Затем в WSL

sudo mkdir /mnt/r
sudo mount -t drvfs R: /mnt/r -o metadata

Fsnotify со стороны Windows

Установите wslfsnotify из GitHub и запустите демоном:

wslfsnotify --path /mnt/c/проект --command "make rebuild"

Параллельные прокси

sshuttle -r user@remote 0/0 -x your-vpn-ip