Назад к списку статей

Установка и настройка WSL (Windows Subsystem for Linux) на Windows

Вступление

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

Однако не все могут или хотят устанавливать Linux как основную или вторую операционную систему. Специально для таких случаев Microsoft разработала WSL (Windows Subsystem for Linux). Эта технология позволяет запускать исполняемые файлы Linux (в формате ELF64) нативно в Windows, предоставляя доступ к командной строке Linux, утилитам и приложениям без необходимости в традиционной виртуальной машине или двойной загрузке.

Существует две основные версии WSL:

  • WSL 1: Работает как слой трансляции системных вызовов Linux в вызовы Windows NT. Обеспечивает отличную интеграцию с файловой системой Windows, но имеет ограничения по совместимости системных вызовов и производительности файловых операций внутри Linux. Не требует поддержки виртуализации.
  • WSL 2: Использует легковесную виртуальную машину (VM) с полноценным ядром Linux. Предлагает значительно лучшую производительность файловой системы внутри Linux и полную совместимость системных вызовов (позволяет запускать Docker Desktop, например). Требует поддержки виртуализации.

Эта статья поможет вам установить и настроить WSL (обе версии) на вашем компьютере под управлением Windows.

Системные требования

Требования зависят от версии WSL, которую вы планируете использовать:

Для WSL 1:

  • Windows 10 (версия 1607 и выше) или Windows 11.
  • Архитектура: x64 или ARM64.

Для WSL 2 (более современная и рекомендуемая):

  • Windows:
    • Для x64: Windows 10 (версия 1903 и выше, сборка 18362 и выше) или Windows 11.
    • Для ARM64: Windows 10 (версия 2004 и выше, сборка 19041 и выше) или Windows 11.
  • Архитектура: x64 или ARM64 (32-бит не поддерживается).
  • Виртуализация: Должна быть включена в BIOS/UEFI (Intel VT-x или AMD-V).
    • Проверка: Откройте Диспетчер задач (Ctrl+Shift+Esc) -> вкладка "Производительность" -> раздел "ЦП". Должна быть надпись "Виртуализация: Включено".
  • Компонент Windows: "Платформа виртуальной машины" (Virtual Machine Platform) должен быть включен (обычно устанавливается автоматически с wsl --install, но можно проверить/включить вручную через "Включение или отключение компонентов Windows").
  • Ресурсы (рекомендации):
    • Процессор: 2+ ядер (4+ для комфортной работы).
    • ОЗУ: 4 ГБ минимум (8 ГБ+ рекомендуется для комфортной работы, особенно с WSL 2 и Docker).
    • Место на диске: Минимум 1 ГБ для WSL, плюс место для каждого дистрибутива (5-10 ГБ) и ваших проектов.

Установка WSL

Самый простой способ установки WSL (особенно WSL 2) на современных версиях Windows 10/11 - использовать одну команду.

  1. Откройте PowerShell или Командную строку (CMD) от имени администратора:

    • Нажмите Win+X и выберите "Терминал Windows (Администратор)", "Windows PowerShell (администратор)" или "Командная строка (администратор)".
  2. Выполните команду установки:

    wsl --install
    
    • Эта команда автоматически выполняет все необходимые шаги:
      • Включает необходимые компоненты Windows (WSL, Платформа виртуальной машины).
      • Скачивает и устанавливает последнюю версию ядра Linux (для WSL 2).
      • Устанавливает WSL 2 как версию по умолчанию.
      • Скачивает и устанавливает дистрибутив Ubuntu (по умолчанию).
  3. Перезагрузите компьютер: После завершения установки вам будет предложено перезагрузить систему. Сделайте это.

  4. Первоначальная настройка дистрибутива:

    • После перезагрузки установка дистрибутива (например, Ubuntu) продолжится автоматически. Откроется окно терминала Linux.
    • Вам будет предложено создать имя пользователя (UNIX username). Оно не обязано совпадать с вашим именем пользователя Windows, используйте латиницу, без пробелов.
    • Задайте пароль для этого пользователя. Он будет использоваться для sudo-команд (выполнение действий от имени администратора/root внутри Linux). При вводе пароля символы не отображаются - это нормально.
    • Подтвердите пароль.

Поздравляем! Базовая установка WSL и дистрибутива Linux завершена.

Примечание по установке WSL 1:

  • Если ваша система не поддерживает WSL 2 или вы хотите использовать WSL 1 по умолчанию, вы можете установить его вручную через "Включение или отключение компонентов Windows", выбрав "Подсистема Windows для Linux".
  • После установки WSL вы можете установить дистрибутив из Microsoft Store (например, Ubuntu, Debian).
  • Вы можете переключать версию WSL для уже установленного дистрибутива (см. ниже). Чтобы новые установки по умолчанию использовали WSL 1, выполните:
    wsl --set-default-version 1
    

Выбор и установка дистрибутивов Linux

По умолчанию wsl --install устанавливает Ubuntu. Но вы можете легко установить другие дистрибутивы или несколько дистрибутивов одновременно.

  1. Просмотр доступных онлайн дистрибутивов:

    wsl --list --online
    # или коротко
    wsl -l -o
    
  2. Установка конкретного дистрибутива: Используйте имя из списка выше.

    # Установить Debian (будет использовать версию WSL по умолчанию)
    wsl --install -d Debian
    
    # Установить другую версию Ubuntu
    wsl --install -d Ubuntu-20.04
    
    # Установить Kali Linux
    wsl --install -d kali-linux
    
  3. Просмотр установленных дистрибутивов и их версий WSL:

    wsl --list --verbose
    # или коротко
    wsl -l -v
    

    Вы увидите список дистрибутивов, их состояние (Running/Stopped) и версию WSL (1 или 2).

Рекомендации по выбору дистрибутива:

  • Для новичков: Ubuntu (самый популярный, большое сообщество), Linux Mint (если найдете WSL-совместимую сборку, хотя обычно это Ubuntu/Debian основа).
  • Для разработчиков: Debian (стабильность), Ubuntu (актуальные пакеты, PPA), Fedora (новейшее ПО).
  • Для пентеста и безопасности: Kali Linux.
  • Для опытных пользователей: Arch Linux (требует ручной настройки, но дает полный контроль).

Управление версиями WSL (1 и 2)

Вы можете легко переключаться между WSL 1 и WSL 2 для каждого установленного дистрибутива.

  1. Установить версию WSL по умолчанию для новых установок:

    # Установить WSL 2 по умолчанию (рекомендуется)
    wsl --set-default-version 2
    
    # Установить WSL 1 по умолчанию
    wsl --set-default-version 1
    
  2. Изменить версию WSL для уже установленного дистрибутива: (Замените <DistroName> на имя вашего дистрибутива из wsl -l -v, например, Ubuntu)

    # Переключить дистрибутив на WSL 2
    wsl --set-version <DistroName> 2
    
    # Переключить дистрибутив на WSL 1
    wsl --set-version <DistroName> 1
    

    Конвертация может занять некоторое время.

Обновление WSL

WSL (особенно ядро WSL 2) периодически обновляется через Windows Update или вручную.

  1. Проверить текущую версию WSL:

    wsl --version
    
  2. Проверить наличие обновлений и обновить ядро WSL (для WSL 2):

    wsl --update
    
  3. Откатить обновление ядра (если возникли проблемы):

    wsl --update --rollback
    
  4. Принудительно завершить работу всех дистрибутивов WSL: (Полезно перед обновлением или если что-то зависло)

    wsl --shutdown
    

    Дистрибутивы автоматически запустятся при следующем обращении к ним.

Важно: После ручного обновления (wsl --update) или изменения версии дистрибутива (wsl --set-version), иногда может потребоваться перезапуск WSL (wsl --shutdown) или даже перезагрузка компьютера для полного применения изменений. Обновления через Windows Update обычно применяются автоматически.

Основы работы с терминалом Linux

Если вы новичок в Linux, вот несколько базовых команд для начала работы в терминале вашего WSL-дистрибутива. Команды вводятся с учетом регистра.

Навигация по файловой системе:

  • pwd (print working directory): Показать текущую папку.
  • cd <путь> (change directory): Перейти в указанную папку.
    • cd / : Перейти в корневую директорию Linux.
    • cd ~ или просто cd: Перейти в домашнюю папку пользователя (/home/имя_пользователя).
    • cd ..: Перейти на один уровень вверх.
    • cd /mnt/c/Users/: Пример перехода к папкам Windows (диск C: монтируется в /mnt/c).
  • ls (list): Показать список файлов и папок в текущей директории.
    • ls -l: Подробный список (права, владелец, размер, дата).
    • ls -a: Показать все файлы, включая скрытые (начинающиеся с точки .).
    • ls -lh: Подробный список с "человеко-читаемыми" размерами (KB, MB, GB).
    • ls -lah: Комбинация флагов.

Управление файлами и папками:

  • mkdir <имя_папки> (make directory): Создать новую папку.
  • touch <имя_файла>: Создать пустой файл или обновить время изменения существующего.
  • cp <источник> <цель> (copy): Копировать файл или папку.
    • cp file.txt backup.txt: Копировать файл.
    • cp -r folder/ backup_folder/: Копировать папку рекурсивно (со всем содержимым).
  • mv <источник> <цель> (move): Переместить или переименовать файл/папку.
    • mv old_name.txt new_name.txt: Переименовать файл.
    • mv file.txt ../some_folder/: Переместить файл в другую папку.
  • rm <файл> (remove): Удалить файл. Осторожно! Восстановить будет сложно.
  • rm -r <папка> (remove recursive): Удалить папку со всем содержимым. Очень осторожно!
  • cat <файл> (concatenate): Вывести содержимое файла в терминал.
  • less <файл>: Постраничный просмотр содержимого файла (выход - клавиша q).
  • head <файл>: Показать первые 10 строк файла.
  • tail <файл>: Показать последние 10 строк файла (tail -f следит за изменениями в файле).

Установка и управление программами (Менеджеры пакетов):

Большинство ПО в Linux устанавливается через менеджеры пакетов. Команды зависят от дистрибутива. Часто требуется sudo (Super User DO), которое запрашивает ваш пароль Linux.

  • Для Ubuntu/Debian (и производных):
    # Обновить список доступных пакетов (всегда делайте перед установкой/обновлением)
    sudo apt update
    
    # Обновить установленные пакеты до последних версий
    sudo apt upgrade
    
    # Установить пакет (например, текстовый редактор nano)
    sudo apt install nano
    
    # Удалить пакет
    sudo apt remove nano
    
    # Поиск пакета по ключевому слову
    apt search text editor
    
  • Для Fedora/CentOS (RHEL-based):
    # Установить пакет
    sudo dnf install nano
    
    # Обновить все пакеты
    sudo dnf upgrade
    
    # Удалить пакет
    sudo dnf remove nano
    
    # Поиск пакета
    dnf search text editor
    
  • Для Arch Linux:
    # Установить пакет (или обновить, если установлен)
    sudo pacman -S nano
    
    # Синхронизировать базы данных и обновить систему
    sudo pacman -Syu
    
    # Удалить пакет
    sudo pacman -R nano
    
    # Поиск пакета
    sudo pacman -Ss text editor
    

Полезные команды:

  • uname -a: Показать информацию о системе и ядре Linux.
  • df -h (disk free): Показать свободное место на смонтированных файловых системах.
  • free -h (free memory): Показать использование оперативной памяти и swap.
  • top или htop (требует установки sudo apt install htop): Интерактивный монитор процессов и системных ресурсов (выход - q).
  • find <путь> -name "<имя_файла>": Поиск файлов (например, find /home -name "*.txt").
  • grep <шаблон> <файл>: Поиск текста внутри файла.
  • history: Показать историю введенных команд.

Горячие клавиши в терминале:

  • Tab: Автодополнение команд, имен файлов и папок. Нажмите дважды для показа вариантов.
  • Ctrl + C: Прервать выполнение текущей команды.
  • Ctrl + D: Завершить сессию (аналог команды exit), если строка пуста.
  • Ctrl + L: Очистить экран терминала (аналог команды clear).
  • Стрелка вверх / вниз: Перемещение по истории команд.
  • Ctrl + R: Поиск по истории команд (начните вводить часть команды).
  • Ctrl + A: Перейти в начало строки.
  • Ctrl + E: Перейти в конец строки.
  • Ctrl + W: Удалить слово перед курсором.
  • Ctrl + U: Удалить всю строку перед курсором.

Частые вопросы (FAQ)

Как открыть терминал WSL?

  • Через меню Пуск: Найдите установленный дистрибутив (например, "Ubuntu", "Debian") и запустите его.
  • Из Терминала Windows: Откройте Терминал Windows, нажмите на стрелку вниз (v) рядом с вкладкой "+" и выберите нужный профиль дистрибутива.
  • Из Командной строки или PowerShell: Просто введите wsl. Это запустит ваш дистрибутив по умолчанию.
  • Запустить конкретный дистрибутив: wsl -d <DistroName> (например, wsl -d Debian).
  • Запустить команду в WSL без входа в интерактивную оболочку: wsl <linux_command> (например, wsl pwd).

Как получить root-доступ (права суперадминистратора) внутри WSL?

  • Введите команду sudo -i или sudo su.
  • Введите ваш пароль пользователя Linux (который вы задали при установке).
  • Приглашение командной строки изменится (обычно на #), указывая на сеанс root.
  • Будьте предельно осторожны, работая под root! Вы можете легко повредить систему. Выходите из root-сеанса командой exit, как только выполните необходимые действия.
  • Для выполнения одной команды с правами root используйте sudo <команда> (например, sudo apt update).

Как получить доступ к файлам Windows из WSL?

  • Ваши диски Windows автоматически монтируются в папку /mnt/ внутри WSL.
  • Например, диск C: доступен по пути /mnt/c/, диск D: по пути /mnt/d/ и так далее.
  • Пример: cd /mnt/c/Users/YourWindowsUser/Documents

Как получить доступ к файлам WSL из Проводника Windows?

  • Самый простой способ: откройте Проводник Windows и в адресной строке введите \\wsl$.
  • Вы увидите папки, соответствующие вашим установленным дистрибутивам.
  • Вы также можете ввести \\wsl$\<DistroName> (например, \\wsl$\Ubuntu) для прямого доступа к файловой системе конкретного дистрибутива.

Производительность: При работе с файлами проектов рекомендуется хранить их внутри файловой системы Linux (например, в вашей домашней папке ~/projects), если вы используете WSL 2. Доступ к файлам Windows из WSL 2 (/mnt/c/) и наоборот (\\wsl$) медленнее, чем операции внутри родной файловой системы. Для WSL 1 разница в производительности между файловыми системами менее выражена.

Как удалить дистрибутив WSL?

  • Внимание: Это удалит все данные внутри дистрибутива безвозвратно! Сделайте резервные копии, если нужно.
  • Узнайте точное имя дистрибутива: wsl -l
  • Выполните команду в PowerShell или CMD:
    wsl --unregister <DistroName>
    # Например:
    # wsl --unregister Ubuntu-20.04
    

Как полностью отключить WSL?

  • Сначала удалите (--unregister) все установленные дистрибутивы (см. выше).
  • Затем отключите компоненты Windows в PowerShell (от имени администратора):
    # Отключить компонент WSL
    dism.exe /online /disable-feature /featurename:Microsoft-Windows-Subsystem-Linux /norestart
    
    # Отключить компонент Платформы виртуальной машины (если он больше не нужен)
    dism.exe /online /disable-feature /featurename:VirtualMachinePlatform /norestart
    
  • Перезагрузите компьютер.
  • Чтобы снова включить их, используйте /enable-feature вместо /disable-feature.

О статье Данная статья была написана мною базируясь на оригинальной статье за авторством Prox, собственно найти ее можете по ссылке: https://osdev.netlify.app/software/wsl.html