Все команды выполняются от администратора в 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
По окончанию процесса, который будет сопровождаться статистикой выполнения, диск похудеет.
##############################################################################################
В директории пользователя винды нужно создать файлик .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
##############################################################################################
Здесь главное найти в сети 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 --import Ubuntu D:\wsl\Ubuntu %USERPROFILE%\mybackup.tar.gz
Здесь нужно заметить, что предварительно не нужно распаковывать архив, можно сразу импортировать gzip файл.
##############################################################################################