Установка WSL

Подробно процесс установки описан в официальном руководстве. Но на заметку хочу добавить несколько моментов:

  • Для установки WSL 2 потребуется включить Hyper-V, с которым возникнет ряд проблем с виртуализацией в других программах. В частности, на данный момент нет ни одного эмулятора Android, работающего с Hyper-V.
  • В WSL 2 выигрыш в скорости достигается если все файлы хранить внутри виртуальной системы. Если же приходится часто обращаться к файлам в Windows (у них путь всегда выглядит как /mnt/{disk}/{path}), то WSL 1 будет быстрее.
  • Насколько я понял, Docker работает только с включенным Hyper-V. Последняя версия Docker основана на WSL 2.
  • Если нет каких-либо специальных требований к ОС, то самым стабильным решением будет установка LTS-версии Ubuntu, в частности последняя на данный момент 20.04.

После установки Ubuntu нужно её запустить и создать пользователя. После чего можно будет обновиться:

sudo apt update && sudo apt upgrade

Для доступа к файлам внутри Ubuntu из Windows можно использовать специальный адрес:

\\wsl$\Ubuntu-20.04\

Имейте ввиду что изменять файлы из под Windows получится только в том случае, если у пользователя, которого вы создали, есть права на запись.

Обновление до WSL 2 и проблемы с Hyper-V

Устанавливал Docker - он запросил обновить WSL до 2й версии. Подробно о процессе установки можно прочитать на официальном сайте. На заметку выпишу лишь несколько команд для PowerShell.

Вывести список дистрибутивов с указанием версии WSL:

wsl --list --verbose

Изменить версию WSL для конкретного дистрибутива:

wsl --set-version {distribution_name} {version_number}

Изменить дефолтную версию для всех новых дистрибутивов:

wsl --set-default-version {version_number}

Но с установкой WSL 2 включился Hyper-V и без него она не работает. В результате MEmu отказался работать - пришлось его удалить. Вместо него пытался поставить BlueStacks, но он не запускается с ошибкой:

Hyper-V inaccessible
The current user cannot user Hyper-V. Would you like to grant permission? A restart will be required for this change.

Но после перезагрузки ошибка сохраняется. В комментариях вместо того чтобы написать решение проблемы всех отправляют писать в поддержку...