Postagem em destaque

WSL: Backup e Restauração

Às vezes você tem um drive mais rápido (SSD) que o outro (HD). É o meu caso: meu drive C, é um SSD de 256 GB e meu drive D, é um HD de 512 GB. Um é pequeno e rápido; outro é grande e lento. 

Meu drive C, por ser pequeno, acabou ficando sem espaço. Então fui pesquisar por grandes arquivos (usei o excelente TreeSize Free para isso) e descobri um tal de ext4.vhdx que tinha 29 GB. Esse arquivo é a imagem do disco do WSL no Windows e é normal ficar grande. O problema é que mesmo você apagando arquivos ele não diminui. E quando você usa o Docker, a situação se agrava rapidamente.

Então, descobri uma maneira de compactar esse arquivo/disco. É um comentário da KarolineWss numa issue do WSL. Funciona maravilhosamente bem. Tanto que consegui diminuir praticamente pela metade o arquivo. 

Mas para fazer isso, claro, pesquisei como fazer backup (e restauração). Esse artigo é sobre isso. E com um bônus, esse o arquivo fica numa localização meio complicada para humanos, mas fazendo um backup e uma restauração você pode colocar o arquivo em qualquer pasta/drive (mudei a minha pasta para c:\wsl).
c:\Users\<user_name>\AppData\Local\Packages<distro_package_name>\LocalState\ext4.vhdx
 Mas vamos ao que interessa.  Todos os comandos são digitados no powershell, portanto, abra-o e mãos a obra:

BACKUP

1. Comece derrubando o WSL com o comando wsl --shutdown

2. Liste todas as distros que estão rodando (você vai precisar do nome da distro no próximo passo) wsl -l -c


3. Agora sim, você pode fazer o backup propriamente dito. Para isso digite: 
wsl --export <distro> <arquivo>.vhdx --vhd 
Exemplo: wsl --export Ubuntu c:\backup\Ubuntu.vhdx --vhd

RESTAURAÇÃO

1. Se desejar trocar o drive de armazenamento, conforme falei anteriormente, copie o seu backup (arquivo .vhdx) para o local onde você deseja armazena-lo, caso contrário pule para o passo 2: 

copy <arquivo_backup> <arquivo_destino>.vhdx --vhd 
Exemplo: copy d:\backup\ubuntu.vhdx c:\wsl\ubuntu.vhdx 

2. Derrube o WSL com o comando wsl --shutdown

3. Remova o registro da distro (ATENÇÃO: ESSA AÇÃO APAGARÁ O ARQUIVO DO "WSL") com o comando  wsl --unregister <distro>

4. Finalmente, importe o arquivo  wsl --import-in-place <distro> <arquivo>
Exemplo: wsl --import-in-place Ubuntu c:\wsl\ubuntu.wsl


Comentários

Postagens mais visitadas deste blog

Netflix não mostra ícone de streaming

Google Hacking

FTP não funciona no PHP