清理WSL2的磁盤占用


翻譯自 How to Shrink a WSL2 Virtual Disk

我是WSL的鐵粉,特別是 WSL2,它使用虛擬技術提高了 WSL 的性能和兼容性(例如 Docker )。不過,因為 WSL2 使用了虛擬磁盤,意味着它可能只有 15GB 的數據,但是虛擬磁盤占用了 100GB 的空間。如果你往 WSL2 中放了大量的數據,然后就刪掉,會發現WSL2的磁盤占用沒有降下來,這就是虛擬磁盤造成的。

我找了一些方法來去壓縮 WSL2 的虛擬磁盤,發現了一個對我有效的方法,希望它對你來說也同樣適用。

准備工作

在壓縮虛擬磁盤前,需要將 WSL2 先關閉。

可以先使用命令行來檢查它的狀態:

wsl.exe --list --verbose

如果沒有關閉(狀態是 Running ),再用命令行去關閉它:

wsl.exe --terminate 

關閉WSL2

雖然這個方法對我來說有效,但你的環境可能跟我不同,這樣做可能會導致你的數據發生損壞,建議你先備份一下WSL2的數據

使用 diskpart 來壓縮WSL2的虛擬磁盤

我發現可以使用 diskpart 工具來壓縮WSL2的虛擬磁盤,它會根據WSL2中數據的大小來重新申請磁盤空間。

在命令行啟動 diskpart 工具:

diskpart

它會自己打開一個新的窗口。

diskpart

接下來需要確定虛擬磁盤文件的位置。

WSL2的虛擬磁盤文件在C:\Users\{user}\AppData\Local\Packages\下面,不同的WSL2發行版對應的名稱不同,例如 PengwinWhitewaterFoundryLtd.CoUbuntuCanonicalGroupLimitedDebian
TheDebianProject 。找到了你的 WSL2 的文件夾,就能在它下面找到 LocalState\ext4.vhdx 這個磁盤文件。

例如,我的磁盤文件是 C:\Users\ontheroad\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState\ext4.vhdx

diskpart 選擇這個文件:

select vdisk file="{vhdx文件名}"

再執行壓縮命令:

compact vdisk

壓縮過程需要幾分鍾。

壓縮磁盤文件

壓縮完成后可以關掉 diskpart 窗口,整個過程也完成了。可以再看看文件管理器中的磁盤使用,應該減少了很多。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM