Home » Как установить WSL 2 на Windows 10
Как установить WSL 2 на Windows 10

Как установить 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-сервер, но значительно упростит рабочий процесс и позволит использовать лучшее из обеих операционных систем.


В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.

Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.

Leave a reply

Your email address will not be published. Required fields are marked