Como mover distro do WSL para outro disco
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, tendo várias distribuições do WSL, pode ser que você queira ter uma forma customizada de organizá-las.
A maneira como o WSL2 fornece para organizar as distribuições não é das melhores. Aqui você aprenderá formas melhores de fazer isso.
Modo automático#
A forma mais simples de mover uma distribuição do WSL para outro disco é utilizando um programa chamado wsl-manager. Ele não é um software oficial, mas permite que você faça mova a distribuição para outro local através de diferentes estratégias.
Tem a opção de mover através do próprio comando do wsl
e outra através do regedit
.
- A primeira opção é a oficial, mas não é tão eficiente. Primeiro é criado um “zip” com os dados da distribuição e depois você terá que importar essa distribuição para o novo local. Com isso, você precisará de bastante espaço em disco e é uma operação demorada.
- A segunda opção é a não oficial, mas é mais eficiente. Ela utiliza o
regedit
para alterar o local da distribuição. E ela se torna mais eficiente porque não é necessário criar um arquivo, apenas alterar o registro do Windows. Então ela é muito mais rápida!
Modo manual#
Se você não quiser utilizar o wsl-manager
, pode seguir os passos abaixo para fazer a alteração manualmente. Mas terá que escolher qual estratégia irá utilizar.
- Através do
wsl
(oficial) - Através do
regedit
(não oficial)
Aviso
Lembre-se de desligar a distribuição antes de mover ela para outro local. Caso não faça isso, você poderá corromper a distribuição.
Através do wsl
#
Ao optar por essa estratégia, você precisará de bastante espaço em disco. Isso porque o wsl
irá criar um arquivo “zip” com os dados da distribuição e depois você terá que importar essa distribuição para o novo local.
Aviso
Já tive a experiência de executar essa sequência de passos e na última etapa, o wsl
não conseguiu importar a distribuição. Tive que executar o comando diversas vezes até que ele finalmente importasse a distribuição.
- Abra o terminal ou o PowerShell
- Execute o comando abaixo para desligar todas as distribuições
wsl --shutdown
- Execute o comando abaixo para descobrir o nome da distribuição que você quer mover
wsl -l -v
- Execute o comando abaixo para exportar a distribuição para um arquivo “zip”
wsl --export <nome-da-distribuição> <caminho-para-o-arquivo>
- Agora, vamos cancelar o registro da distribuição
wsl --unregister <nome-da-distribuição>
- Por fim, vamos importar a distribuição para o novo local
wsl --import <nome-da-distribuição> <caminho-para-o-novo-local> <caminho-para-o-arquivo>
Através do regedit
#
Ao optar por essa estratégia, você não precisará de espaço adicional no disco além do que já é esperado pelo tamanho da distribuição. Isso porque você não precisará criar um arquivo “zip”, o arquivo será movido para o novo local e o registro do Windows será alterado. Tome cuidado ao executar os passos abaixo, pois você estará alterando o registro do Windows.
- Abra o terminal ou o PowerShell
- Execute o comando abaixo para desligar todas as distribuições
wsl --shutdown
- Abra o
regedit
- Vá até a chave
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss
. Lá, você verá existem algumas chaves e uma delas será a chave da distribuição que você deseja mover - Haverá uma chave chamada
BasePath
, ela contem o caminho atual de onde a distribuição é armazenada. Copie esse caminho, abra o Windows Explorer e cole o caminho na barra de endereços. Por exemplo,C:\Users\user\AppData\Local\Packages\TheDebianProject.DebianGNULinux_76\LocalState
- Agora, vamos copiar a pasta da distribuição para o novo local
- Por fim, vamos alterar o registro do Windows para apontar para o novo local