- Home »

Как установить WSL 2 на Windows 10
Если вы работаете с серверами, занимаетесь DevOps или просто хотите комфортно разрабатывать в Linux-окружении, не покидая Windows, то WSL 2 — это именно то, что вам нужно. Забудьте о медленных виртуальных машинах и костыльных решениях с двойной загрузкой. Windows Subsystem for Linux второго поколения даёт практически нативную производительность Linux внутри Windows 10/11, и сегодня я покажу, как правильно это всё настроить.
WSL 2 — это не просто игрушка для экспериментов. Это полноценная замена отдельной Linux-машины для разработки, тестирования скриптов автоматизации и работы с серверными технологиями. Вы получаете настоящий Linux-ядро, Docker-контейнеры работают нативно, а файловая система работает в разы быстрее первой версии.
Как это работает под капотом
WSL 2 кардинально отличается от первой версии. Если WSL 1 был прослойкой-переводчиком между Linux и Windows API, то WSL 2 — это настоящая лёгкая виртуальная машина с собственным Linux-ядром. Microsoft встроили оптимизированное ядро прямо в Windows, и теперь совместимость с Linux-приложениями достигает почти 100%.
Главные отличия:
- Реальное Linux-ядро — полная совместимость с системными вызовами
- Значительно лучшая производительность файловой системы — особенно для операций с большим количеством файлов
- Поддержка Docker — контейнеры запускаются нативно
- Поддержка системных вызовов — работают даже специфичные Linux-утилиты
Системные требования и предварительная проверка
Перед началом убедитесь, что ваша система соответствует требованиям:
- Windows 10 версии 1903 или выше (Build 18362 или выше)
- Включённая виртуализация в BIOS/UEFI
- Архитектура x64
Проверить версию Windows можно командой:
winver
Или через PowerShell:
Get-ComputerInfo | Select-Object WindowsProductName, WindowsVersion, TotalPhysicalMemory
Пошаговая установка WSL 2
Шаг 1: Включение необходимых компонентов Windows
Запустите PowerShell от имени администратора и выполните:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
Альтернативный способ через GUI: откройте “Программы и компоненты” → “Включение или отключение компонентов Windows” и отметьте:
- Подсистема Windows для Linux
- Платформа виртуальной машины
После этого обязательно перезагрузите систему.
Шаг 2: Установка пакета обновления ядра Linux
Скачайте и установите пакет обновления WSL2 Linux kernel с официального сайта Microsoft. Это критически важно — без него WSL 2 работать не будет.
Шаг 3: Установка WSL 2 как версии по умолчанию
Выполните в PowerShell:
wsl --set-default-version 2
Шаг 4: Установка Linux-дистрибутива
Откройте Microsoft Store и установите нужный дистрибутив. Для серверных задач рекомендую:
- Ubuntu 20.04 LTS — стабильная, отлично документированная
- Debian — минималистичная, быстрая
- Alpine Linux — сверхлёгкая, идеальна для контейнеров
Или установите через командную строку:
wsl --install -d Ubuntu-20.04
Шаг 5: Первоначальная настройка
После установки дистрибутива запустите его, создайте пользователя и обновите систему:
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget git vim htop
Проверка и диагностика установки
Убедитесь, что WSL 2 работает корректно:
# Проверка версии WSL
wsl --list --verbose
# Информация о системе
wsl -d Ubuntu-20.04 -e cat /proc/version
# Проверка производительности
wsl -d Ubuntu-20.04 -e uname -a
Вывод должен показать версию 2 для установленного дистрибутива.
Оптимизация и настройка производительности
Настройка файла .wslconfig
Создайте файл %USERPROFILE%\.wslconfig
для тонкой настройки:
[wsl2]
memory=8GB
processors=4
swap=2GB
swapFile=C:\\temp\\wsl-swap.vhdx
localhostForwarding=true
Оптимизация работы с файлами
Для максимальной производительности работайте с файлами внутри WSL-файловой системы (/home/username/
), а не через Windows mount (/mnt/c/
).
Сравнение WSL 1 vs WSL 2 vs Native Linux
Характеристика | WSL 1 | WSL 2 | Native Linux |
---|---|---|---|
Совместимость системных вызовов | Частичная | Полная | Полная |
Производительность файловой системы | Медленная | Быстрая | Быстрая |
Потребление ресурсов | Низкое | Среднее | Полное |
Поддержка Docker | Нет | Да | Да |
Время запуска | Быстрое | Среднее | Среднее |
Практические кейсы и примеры использования
Кейс 1: Настройка среды разработки
Установка стека для веб-разработки:
# Node.js через nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
source ~/.bashrc
nvm install --lts
nvm use --lts
# Python и pip
sudo apt install python3-pip python3-venv
# Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER
Кейс 2: Автоматизация серверных задач
Создание скрипта для мониторинга сервера:
#!/bin/bash
# server_monitor.sh
check_service() {
if systemctl is-active --quiet $1; then
echo "✓ $1 is running"
else
echo "✗ $1 is not running"
# Здесь можно добавить уведомления
fi
}
echo "=== Server Health Check ==="
echo "Date: $(date)"
echo "Uptime: $(uptime -p)"
echo "Load: $(uptime | awk -F'load average:' '{print $2}')"
echo "Memory: $(free -h | grep Mem | awk '{print $3"/"$2}')"
echo "Disk: $(df -h / | tail -1 | awk '{print $5}')"
check_service nginx
check_service mysql
check_service redis-server
Кейс 3: Работа с удалёнными серверами
Настройка SSH и rsync для работы с VPS:
# Генерация SSH-ключа
ssh-keygen -t ed25519 -C "your-email@example.com"
# Копирование ключа на сервер
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@your-server.com
# Настройка SSH config
cat >> ~/.ssh/config << EOF
Host myserver
HostName your-server.com
User root
Port 22
IdentityFile ~/.ssh/id_ed25519
ServerAliveInterval 60
EOF
# Синхронизация файлов
rsync -avz --progress ./local-folder/ myserver:/remote/path/
Полезные утилиты и расширения
Windows Terminal
Установите Windows Terminal из Microsoft Store — это значительно улучшит опыт работы с WSL. Добавьте в настройки профиль WSL:
{
"guid": "{your-guid}",
"name": "Ubuntu-20.04",
"source": "Windows.Terminal.Wsl",
"startingDirectory": "//wsl$/Ubuntu-20.04/home/username"
}
VS Code с Remote-WSL
Установите расширение "Remote - WSL" для VS Code. Это позволит разрабатывать прямо в WSL-окружении с полной поддержкой IntelliSense.
Zsh и Oh My Zsh
Улучшите командную строку:
sudo apt install zsh
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# Полезные плагины
git clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting
Устранение типичных проблем
Проблема: WSL 2 не запускается
Решение: Проверьте, включена ли виртуализация в BIOS и установлен ли пакет обновления ядра.
# Проверка виртуализации
systeminfo | find "Hyper-V"
# Переустановка пакета ядра
wsl --shutdown
# Затем переустановите пакет обновления
Проблема: Медленная работа с файлами
Решение: Работайте с файлами внутри WSL-файловой системы, а не через /mnt/c/.
# Плохо (медленно)
cd /mnt/c/Users/Username/project
# Хорошо (быстро)
cd ~/project
Проблема: Высокое потребление памяти
Решение: Настройте .wslconfig для ограничения ресурсов:
[wsl2]
memory=4GB
processors=2
Автоматизация и интеграция
Создание скрипта для быстрого развёртывания
#!/bin/bash
# wsl_setup.sh - Автоматическая настройка WSL-окружения
set -e
echo "🚀 Настройка WSL-окружения для разработки..."
# Обновление системы
sudo apt update && sudo apt upgrade -y
# Установка основных пакетов
sudo apt install -y \
curl \
wget \
git \
vim \
htop \
tree \
jq \
unzip \
software-properties-common \
apt-transport-https \
ca-certificates \
gnupg \
lsb-release
# Установка Docker
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
sudo usermod -aG docker $USER
# Установка Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
# Настройка Git
read -p "Введите ваше имя для Git: " git_name
read -p "Введите ваш email для Git: " git_email
git config --global user.name "$git_name"
git config --global user.email "$git_email"
echo "✅ Настройка завершена! Перезайдите в систему для применения изменений."
Интеграция с CI/CD
WSL 2 отлично подходит для локального тестирования CI/CD пайплайнов. Например, для GitHub Actions:
# .github/workflows/test.yml
name: Test in WSL
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Run tests
run: |
# Те же команды, что вы тестируете локально в WSL
npm install
npm test
Сравнение с альтернативными решениями
WSL 2 vs VirtualBox/VMware
Преимущества WSL 2:
- Лучшая интеграция с Windows
- Меньшее потребление ресурсов
- Быстрый запуск
- Общая файловая система
Недостатки WSL 2:
- Ограниченная поддержка GUI-приложений (до WSLg)
- Нет полной изоляции
- Привязка к Windows 10/11
WSL 2 vs Docker Desktop
Docker Desktop for Windows теперь использует WSL 2 как бэкенд, что делает WSL 2 более привлекательным для контейнерной разработки.
Продвинутые возможности
Настройка systemd в WSL 2
Начиная с недавних обновлений, можно включить systemd:
sudo vim /etc/wsl.conf
[boot]
systemd=true
Работа с GPU
WSL 2 поддерживает GPU для CUDA и машинного обучения:
# Установка CUDA в WSL 2
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/7fa2af80.pub
sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/ /"
sudo apt update
sudo apt install -y cuda
Создание пользовательских дистрибутивов
Можно создать собственный дистрибутив для специфических задач:
# Экспорт текущего дистрибутива
wsl --export Ubuntu-20.04 C:\backup\ubuntu-custom.tar
# Импорт в новое местоположение
wsl --import MyCustomUbuntu C:\WSL\MyCustomUbuntu C:\backup\ubuntu-custom.tar
Мониторинг и профилирование
Для мониторинга производительности WSL 2 используйте:
# Внутри WSL
htop
iotop
nethogs
# Из Windows
wsl --list --running
wsl --shutdown # Полная остановка всех экземпляров
Заключение и рекомендации
WSL 2 кардинально изменил подход к разработке на Windows. Это больше не костыль, а полноценный инструмент для профессиональной работы с Linux-окружением. Особенно он полезен для:
- DevOps-инженеров — тестирование скриптов, работа с контейнерами
- Разработчиков — создание окружения, идентичного продакшену
- Системных администраторов — управление удалёнными серверами, автоматизация
Рекомендую использовать WSL 2 как основную среду разработки, если вы работаете в Windows, но нуждаетесь в Linux-инструментах. Это сэкономит время на настройку виртуальных машин и даст практически нативную производительность.
Для продакшен-серверов рассмотрите аренду VPS или выделенного сервера с полноценным Linux, но для разработки и тестирования WSL 2 — идеальный выбор.
Помните: WSL 2 не заменит полноценный Linux-сервер, но значительно упростит рабочий процесс и позволит использовать лучшее из обеих операционных систем.
В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.
Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.