Ir para o conteúdo

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.

  1. Através do wsl(oficial)
  2. 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.

  1. Abra o terminal ou o PowerShell
  2. Execute o comando abaixo para desligar todas as distribuições
    wsl --shutdown
    
  3. Execute o comando abaixo para descobrir o nome da distribuição que você quer mover
    wsl -l -v
    
  4. Execute o comando abaixo para exportar a distribuição para um arquivo “zip”
    wsl --export <nome-da-distribuição> <caminho-para-o-arquivo>
    
  5. Agora, vamos cancelar o registro da distribuição
    wsl --unregister <nome-da-distribuição>
    
  6. 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.

  1. Abra o terminal ou o PowerShell
  2. Execute o comando abaixo para desligar todas as distribuições
    wsl --shutdown
    
  3. Abra o regedit
  4. 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
  5. 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
  6. Agora, vamos copiar a pasta da distribuição para o novo local
  7. Por fim, vamos alterar o registro do Windows para apontar para o novo local

Imagem dos registros do Regedit

Referências#