В 2016 году в Windows 10 появилась новая функция WLS, представляющая собой слой совместимости, позволяющий запускать из командной строки приложения, скомпилированные для Linux. В следующих версиях Windows функционал WSL был существенно расширен, так, в подсистеме Linux второй версии появилась возможность запуска приложений Linux с графическим интерфейсом. По умолчанию все программные файлы этой виртуальный среды устанавливаются на системный диск.
С учетом количества установленных приложений размер среды может занять на диске значительное место и, если диск небольшой, пользователь может задуматься о необходимости переноса WSL на другой накопитель, например, с небольшого SSD на HDD большего объема.
Такая возможность в Windows 10 и 11 присутствует, причем выполнить перенос можно несколькими способами.
Первый способ предполагает ручное перемещение файла-контейнера ext4.vhdx из его расположения по умолчанию:
%USERPROFILE%\AppData\Local\Packages\название_дистрибутива\LocalState
На другой диск с последующим изменением параметра BasePath в ключе реестра:
HKCU\Software\Microsoft\Windows\CurrentVersion\Lxss\{UUID}
Значение которого как раз представлено этим самым путем к контейнеру ext4.vhdx.
Вы просто перемещаете контейнер с виртуальной файловой системой и прописываете в параметре BasePath новый путь.
Для перемещения WSL на другой диск или раздел можно с помощью встроенной процедуры экспорта и импорта, но еще удобнее использовать для этих целей бесплатную тулзу LxRunOffline, скачав ее со страницы разработчика:
github.com/DDoSolitary/LxRunOffline
Распаковав архив с утилитой и перейдя в запущенной от имени администратора командной строке в папку с исполняемым файлом LxRunOffline.exe (файлы из архива рекомендуется скопировать в папку WSL на диске С) и завершив все процессы WSL, выполните такую команду:
Lxrunoffline.exe move -n Ubuntu-20.04 -d G:\wsl\Ubuntu
Ubuntu-20.04 в данном примере это название дистрибутива Linux, а последняя часть команды — путь к новой папке Ubuntu на диске D.
Если нужно получить названия дистрибутива, используем команду LxRunOffline.exe list.
Добавить комментарий