Windows 11 Home: ridurre le dimensioni di un file VHD

Windows 11 Home: ridurre le dimensioni di un file VHD

tutorial

Il Windows Subsystem for Linux (WSL) è uno strumento utilissimo per sviluppatori e utenti che desiderano la flessibilità di utilizzare strumenti e applicazioni Linux direttamente su Windows. Tuttavia, uno degli aspetti meno noti è che l'utilizzo di WSL può portare a un considerevole aumento dello spazio occupato su disco.

Man mano che utilizzi WSL, il file system virtuale (VHDX) può crescere in modo smisurato. Nel tempo lo spazio occupato può raggiungere dimensioni considerevoli fino a portare a problemi di spazio su disco.

Il problema #

Nel mio caso, una mattina mi sono accorto che il sistema operativo mi segnalava che lo spazio su disco era quasi esaurito. Dopo aver controllato ho scoperto che il file VHD di WSL aveva raggiunto oltre 52GB su disco.

Il disco virtuale aveva raggiunto oltre 52GB su disco
Il disco virtuale ha raggiunto oltre 52GB di spazio occupato su disco

Soluzione per Windows 11 Pro/Enterprise #

Per chi utilizza Windows 11 Pro o Enterprise è possibile utilizzare il seguente comando per ottimizzare le dimensioni del file VHD:

optimize-vhd -Path <path-to-your-ext4.vhdx> -Mode full

Soluzione per Windows 11 Home #

Sfortunatamente per chi come me utilizza Windows 11 Home, non è possibile utilizzare questo comando in quanto non è possibile accedere alle funzionalità di Hyper-V. Di conseguenza provando ad eseguire il comando precedente si riceverà il seguente errore:

Optimize-VHD : Termine 'Optimize-VHD' non riconosciuto come nome di cmdlet, funzione, programma eseguibile o file
script. Controllare l'ortografia del nome o verificare che il percorso sia incluso e corretto, quindi riprovare.

Per risolvere il problema anche nelle versioni di Windows 11 Home segui questi passaggi:

  • Apri un terminale e arresta tutte le istanze WSL in esecuzione:
wsl --shutdown
  • Avvia l'utility diskpart:
diskpart
  • Esegui i seguenti comandi in diskpart:
select vdisk file="<path-to-your-ext4.vhdx>"
attach vdisk readonly
compact vdisk
detach vdisk
exit

Sostituisci <path-to-your-ext4.vhdx> con il percorso effettivo del tuo file VHD. Nel mio caso specifico il percorso è: C:\Users\loren\AppData\Local\Docker\wsl\disk\docker_data.vhdx

  • Attendi che il processo si completi. Nel mio caso, il comando ha impiegato qualche minuto per completare l'operazione, ma alla fine il file VHD è passato da 52GB a circa 40GB, permettendomi di recuperare spazio su disco.

Conclusione #

Seguendo questi semplici passaggi è possibile ridurre significativamente le dimensioni del file VHD di WSL anche in Windows 11 Home, recuperando spazio prezioso sul disco.

Per prevenire una crescita eccessiva, considera anche l'idea di monitorare regolarmente le dimensioni del file VHD e pulire file temporanei o inutilizzati all'interno della distribuzione Linux.


Se questo post ti è piaciuto e ti è stato utile ti invito ad iscriverti al mio canale Telegram.

Se hai domande o vuoi lasciare un commento puoi contattarmi direttamente su Telegram o su Mastodon.

A presto!