Skip to content

Instantly share code, notes, and snippets.

@Semdevmaster
Last active March 25, 2022 12:52
Show Gist options
  • Select an option

  • Save Semdevmaster/d2a7149394d73f2c1db355cdb9df841c to your computer and use it in GitHub Desktop.

Select an option

Save Semdevmaster/d2a7149394d73f2c1db355cdb9df841c to your computer and use it in GitHub Desktop.
WSL2 commands

Работа с WSL2 в Windows 10/11

Все команды выполняются от администратора в cmd или powershell
Для изучения и понимания всех функций и параметров очень полезно почитать документацию

wsl --help

Путь, где по-умолчанию хранятся виртуальные диски с дистрибутивами
C:\Users\%USERNAME%\AppData\Local\Packages\CanonicalGroupLimited.*****\LocalState\
Лучше хранить их не на системном диске и, желательно, на SSD

Перемещение виртуальных дисков в другое место

Этот процесс делается в несколько шагов:

  • Делаем бекап нужного дистрибутива сразу в новое место
cd D:\
mkdir wsl/Ubuntu
cd wsl
wsl --export Ubuntu ubuntu.tar
  • Далее удаляем установленный дистрибутив из WSL
wsl --unregister Ubuntu
  • Разворачиваем бекап в новом месте
wsl --import Ubuntu Ubuntu ubuntu.tar

Важно! при развертывании бекапа, пользователем по-умолчанию в дистрибутиве становится root
Поэтому нужно переключить на нужного Вам пользователя

ubuntu config --default-user username
kali config --default-user username
debian config --default-user username

Или можно сделать это по-другому
Заходим в дистрибутив под рутом, создаем там файл

touch /etc/wsl.conf

Добавляем в его содержание

[user]
default=YourUserName  

Перезапускаем дистрибутив и готово!

##############################################################################################

Оптимизация виртуального диска

Часто работая в WSL, устанавливая всякие пакеты, размер виртуального диска значительно увеличивается и не спешит освобождать память.
Для этого можно его ужать вручную, правда для этого понадобятся необходимые интрументы.
В приложении "Включение и отключение компонентов Windows",
их можно найти через быстрый поиск, нужно включить галочки напротив пункта Hyper-V и всех внутрилежащих. Далее перед сждатием виртуального диска, нужно погасить полностью всю WSL

wsl --shutdown

Далее заходим в папку с виртуальным диском и сжимаем его, следующей командой, запущенной именно в PowerShell

optimize-vhd -Path .\ext4.vhdx -Mode full

По окончанию процесса, который будет сопровождаться статистикой выполнения, диск похудеет.

##############################################################################################

Ограничение системных ресурсов, доступных для WSL дистрибутивов

В директории пользователя винды нужно создать файлик .wslconfig
обязательно в кодировке utf-8 и окончанием строк как UNIX-системах, то есть line breaks: LF В содержимое файла добавляем

[wsl2]
processors=2 # количестов ядер доступное для дистрибутива
memory=4GB # количество оперативки доступное для дистрибутива
swap=0 # размер свопа доступный для дистрибутива

Чтобы увидеть, что ограничения сработали можно воспользоваться стандартными утилитами внутри дистрибутива

cat /proc/cpuinfo | grep process | wc -l  
free -h  
df -h  

##############################################################################################

Установка, отсутствующего в Microsoft Store дистрибутива

Здесь главное найти в сети rootfs архив с нужным диcтрибутивом
Например для Ubuntu, можно найти здесь - https://cloud-images.ubuntu.com/

Скачка исходников

Ищем там папку с кодовым названием нужного дистрибутива В этой папке ищем папку current В ней качаем wsl.rootfs.tar.gz

Установка дистрибутива

Делается через импорт
Пример:
wsl --import Ubuntu-21.10 c:/WSL/Ubuntu-21.10 c:/Downloads/impish-server-cloudimg-amd64-wsl.rootfs.tar.gz

Стартуем новый дистрибутив

wsl -d имя_дистрибутива
Далее внутри создаем пользователя adduser <yourusername> usermod -aG sudo <yourusername>

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

##############################################################################################

Делаем бекап любого дистрибутива

Используем экспорт из WSL

wsl --export Ubuntu %USERPROFILE%\mybackup.tar

Бекап можно ещё сждать

wsl gzip %USERPROFILE%\mybackup.tar

##############################################################################################

Разворачивание бекапа для WSL

Здесь всё просто, создаем нужную папку под дистрибутив
и с помощью импорта закидываем его в WSL

wsl --import Ubuntu D:\wsl\Ubuntu %USERPROFILE%\mybackup.tar.gz

Здесь нужно заметить, что предварительно не нужно распаковывать архив, можно сразу импортировать gzip файл.

##############################################################################################

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment