Como reduzir tamanho disco do WSL2
O WSL2 é uma ótima ferramenta para desenvolvedores que utilizam Windows. Com ele, você pode rodar um sistema Linux dentro do Windows, sem precisar de uma máquina virtual. Porém, com o tempo, o disco do WSL2 pode ficar muito grande, e isso pode ser um problema. Neste artigo, vou mostrar como reduzir o tamanho do disco do WSL2, comumente chamado de “wsl shrink”.
Modo automático#
A forma mais simples de reduzir o tamanho do disco do WSL2 é utilizando um programa chamado wsl-manager. Ele não é um software oficial, mas facilita bastante a vida, já que não terá que ficar digitando diversos comandos no terminal.
Modo manual#
Para reduzir o tamanho do disco do WSL2, precisaremos passar por alguns passos:
- Descobrir onde está o disco do WSL2
- Desligar a distribuição do WSL2
- Compactar o disco
Descobrir onde está o disco do WSL2#
Regedit#
Para descobrir onde está o disco do WSL2 existem duas maneiras. A que recomendo, mas requer muito cuidado é abrir os registros do Windows e procurar pelo disco do WSL2.
Para isso, abra o regedit
e navegue até a chave HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss
. Lá, você verá existem algumas chaves e uma delas será a chave da distribuição do WSL2 que você quer diminuir.
Dentro dessa chave, haverá uma chave chamada BasePath
. O valor desse BasePath
corresponde ao caminho para o disco do WSL2. Salve o valor do BasePath
em algum lugar, pois vamos precisar dele mais tarde.
Observação
Veja que além do BasePath
, existem outras chaves. Essas outras chaves podem ser do seu interesse para outras coisas, como por exemplo, o usuário padrão ou nome da distribuição.
Explorador de arquivos#
A outra maneira é abrindo a pasta C:\Users\%USERNAME%\AppData\Local\Packages
e procurando por um arquivo chamado ext4.vhdx
. Esse arquivo é o disco do WSL2. Mas tome cuidado, pois pode ter mais de um arquivo com esse nome. O arquivo que você quer é o que está dentro da pasta da distribuição do WSL2 que você deseja diminuir.
Desligar a distribuição do WSL2#
É necessário desligar a distribuição do WSL2 para que o disco pare de ser usado. Portanto, abra o terminal e digite o comando abaixo:
CUIDADO!
O comando a seguir irá desligar todas as distribuições do WSL2.
wsl --shutdown
Vale ressaltar que o subsistema estiver sendo usado por algum programa, pode acontecer do sistema ser reiniciado. Então é bom conferir se o sistema foi desligado corretamente. Basta executar o comando abaixo:
wsl --list --verbose
Isso deve gerar uma saída parecida com a imagem abaixo. Se a distribuição estiver desligada, o campo State
deverá conter o valor Stopped
.
Compactar o disco#
Agora que a distribuição do WSL2 está desligada, podemos compactar o disco.
CUIDADO!
Se se seu sistema for interrompido durante o processo de compactação ou a distribuição for executada durante este processo, o disco pode ficar corrompido. Então, se tiver receio faça um backup do disco antes de compactar.
Para isso, vamos utilizar o programa diskpart
. Abra o terminal e digite o comando abaixo:
diskpart
Isso irá abrir o programa diskpart
. Agora, compactar o disco da distribuição. Para isso, digite o comando abaixo:
select vdisk file=<caminho_do_arquivo_ext4.hvdl>
compact vdisk
exit
Onde <caminho_do_arquivo_ext4.hvdl>
é o caminho para o arquivo ext4.vhdx
que você salvou anteriormente. Por exemplo, se o arquivo estiver na pasta C:\Users\meu_usuario\AppData\Local\Packages\Ubuntu\LocalState\ext4.vhdx
, o comando ficaria assim:
select vdisk file=C:\Users\meu_usuario\AppData\Local\Packages\Ubuntu\LocalState\ext4.vhdx
compact vdisk
exit
Depois disso o tamanho do arquivo ext4.vhdx
já deve ter diminuído. Agora você poderá voltar a usá-lo normalmente.
Observações#
Há outra forma de reduzir o tamanho do disco do WSL22, que é utilizando o comando optimize-vhd
. Porém, esse comando não funciona em algumas versões do Windows.