Безопасно уплотняет размер постоянно растущих изображений WSL VHDX.
(Вам нравится эта утилита? Дайте ей и поделитесь ее)
Подсистема Windows для Linux (WSL) использует файлы изображений VHDX для хранения файловой системы EXT4, но в ней не хватает эффективный способ уменьшить изображение при удалении файлов. Эта утилита не требует повышенных учетных данных, уплотнения виртуальных дисков VHDX дистрибутов WSL2 и достижения минимального возможного размера. По умолчанию он будет работать в информационном режиме, без действий на изображениях, предоставляя следующую информацию для всех установленных дистрибуций:
Если дистрибуция не указана, он последовательно нацелен на все установленные изображения. Он работает в безопасном режиме во время компактного процесса, предотвращая любой нежелательный побочный эффект в случае отказа. Это типичный вариант использования: уплотнение изображения Ubuntu с подтверждением:
PS> wslcompact -c Ubuntu
WSL compact, v5.0 2023.02.02 (Groundhog edition)
(C) 2023 Oscar Lopez
wslcompact -h for help. For more information visit: https://github.com/okibcn/wslcompact
Distro's name: Ubuntu
Image file: C:UsersOkiWSLUbuntuext4.vhdx
Current size: 12864 MB
Estimated size: 7700 ± 188 MB
The estimated process time using an SSD is about 2 minutes.
NOTE: You can safely cancel at any time by pressing Ctrl-C
Import in progress, this may take a few minutes.
The operation completed successfully.
New Image compacted from 12864 MB to 7728 MB
Do you want to apply changes and use the new image (y/N): y
Image replaced for distro: Ubuntu
Перед установкой WSLCompact убедитесь, что ваша установка WSL обновлена. Вы можете сделать это, набрав wsl --update в PowerShell. WSLCompact требует как минимум WSL версии 1.0.0.
Есть два способа установить wslcompact, выберите свой любимый:
Для запуска удаленного сценария требуется специальная настройка. Если вы установили его в прошлом, то это вам больше не нужно. Если вы не уверены, в PowerShell просто тип:
Set-ExecutionPolicy RemoteSigned - Scope CurrentUserЧтобы установить или обновить утилиту, закройте все ваши экземпляры PowerShell, откройте свежий и тип:
iwr - useb https: // raw.githubusercontent.com / okibcn / wslcompact / main / setup | iexЧтобы удалить утилиту, закройте все ваши экземпляры PowerShell, откройте свежий и тип:
Remove-Item " $ ( $ env: PSModulePath .split ( ' ; ' )[ 0 ] ) /WslCompact " - Recurse - ForceЕсли вы используете диспетчер пакетов Scoop , то вы можете добавить утилиту WSLCompact непосредственно из его ведра. Введите PowerShell эти две линии:
scoop bucket add .oki https: // github.com / okibcn / Bucket
scoop install wslcompactЧтобы обновить приложение только введите:
scoop update wslcompactЧтобы удалить приложение только введите:
scoop uninstall wslcompactПосле установки использование простое:
wslcompact без аргументов перечисляет все изображения WSL и информацию. Никаких действий на изображениях не будет выполнено.wslcompact Ubuntu .-c Compact WSLCompact будет изменять изображения после подтверждения.-d позволяет компакт разделов данных. Утилита обеспечивает минимальный размер, и вы получите смежные файлы для более быстрого доступа в старых системах HD. Если вам нужен список имен ваших дистрибутов, он доступен путем набора wsl -l .
Usage: wslcompact [OPTIONS] [DISTROS]
wslcompact compacts the images of WSL distros by removing unsused space.
If no option is provided, it will default to info mode, without modifying any image.
If no distro is provided it will process all the installed images.
NOTE: WSL will be shutdown for compacting the images.
Options:
no opt. Provides name, image file path, current size, and estimated new size information.
-c Compacting mode: process the selected distros compacting the images.
-y replaces selected images without asking for confirmation.
-d Enable the processing of data images. Default is disabled.
-h Prints this help
Examples:
wslcompact
wslcompact -c -d
wslcompact -c -y Ubuntu Kali
Если у вашего C: Drive не хватает временного свободного пространства, программа не будет уплотнение этого дистрибутива. Просто измените папку Temp, прежде чем вызывать функцию. Итак, вместо простого wslcompact , просто сделайте:
$ env: TEMP = " Z:your tempfolder "
wslcompactНовая папка Temp будет активной только для этого сеанса терминала PowerShell, поэтому никаких проблем для остальной части системы вообще нет, и она не оставит мусор.
Типичной операцией будет:
PS> wslcompact
WSL compact, v5.0 2023.02.02 (Groundhog edition)
(C) 2023 Oscar Lopez
wslcompact -h for help. For more information visit: https://github.com/okibcn/wslcompact
Distro's name: Ubuntu
Image file: C:UsersOkiWSLUbuntuext4.vhdx
Current size: 12864 MB
Estimated size: 7700 ± 188 MB
The estimated process time using an SSD is about 2 minutes.
Distro's name: Kali
Image file: C:UsersOkiWSLKaliext4.vhdx
Current size: 1579 MB
Estimated size: 723 ± 18 MB
The estimated process time using an SSD is about 1 minutes.
Distro's name: Arch
Image file: C:UsersOkiWSLArchext4.vhdx
Current size: 1075 MB
Estimated size: 860 ± 21 MB
The estimated process time using an SSD is about 1 minutes.
Уплотнение изображения Ubuntu с подтверждением:
PS> wslcompact -c Ubuntu
WSL compact, v5.0 2023.02.02 (Groundhog edition)
(C) 2023 Oscar Lopez
wslcompact -h for help. For more information visit: https://github.com/okibcn/wslcompact
Distro's name: Ubuntu
Image file: C:UsersOkiWSLUbuntuext4.vhdx
Current size: 12864 MB
Estimated size: 7700 ± 188 MB
The estimated process time using an SSD is about 2 minutes.
NOTE: You can safely cancel at any time by pressing Ctrl-C
Import in progress, this may take a few minutes.
The operation completed successfully.
New Image compacted from 12864 MB to 7728 MB
Do you want to apply changes and use the new image (y/N): y
Image replaced for distro: Ubuntu