Voltar para blog

Compartilhando o VHDX do WSL 2 entre dual-boot com segurança operacional

02/03/2026 · 3 min · Infraestrutura

Compartilhar

Em ambiente dual-boot, manter duas distros WSL separadas gera duplicação de dados, bibliotecas divergentes e retrabalho de setup. Para eliminar essa fragmentação, implementei compartilhamento do mesmo disco ext4.vhdx entre dois Windows.

O objetivo foi simples: subir no Windows A ou no Windows B e ter exatamente o mesmo filesystem Linux, mesma /home, mesma árvore de projetos e mesmas dependências.

1) Arquitetura adotada

Exemplo de layout físico usado:

D:\WSL\Ubuntu-Shared\ext4.vhdx

2) Pré-requisitos antes da importação

2.1 Garantir versão do WSL com suporte a --vhd

Em ambos os Windows:

wsl --version
wsl --status
wsl --update

Sem versão compatível, wsl --import ... --vhd não funciona corretamente.

2.2 Desligamento real do outro sistema (sem hibernação)

Nunca monte o mesmo VHDX com o outro Windows em Fast Startup/hibernação.

No Windows ativo, antes de reiniciar para o outro:

wsl --shutdown

E no sistema, desative Fast Startup:

Ou via linha de comando (desativa hibernação por completo):

powercfg /h off

2.3 Permissões e integridade da partição de dados

Valide a unidade onde o VHDX está armazenado:

chkdsk D: /scan

Em ambientes corporativos com BitLocker, confirme que a partição será destravada no boot dos dois sistemas.

3) Procedimento de importação no segundo Windows

No Windows B (PowerShell como administrador):

wsl --import Ubuntu-Shared D:\WSL\Ubuntu-Shared D:\WSL\Ubuntu-Shared\ext4.vhdx --vhd

Parâmetros:

Validação:

wsl -l -v
wsl -d Ubuntu-Shared -- uname -a

Se a distro subir com kernel e filesystem corretos, o reaproveitamento do VHDX foi concluído.

4) O erro clássico e como tratei

Erro comum ao tentar importar no destino errado:

A distro with that name already exists

ou conflito por diretório ocupado.

Runbook de limpeza segura:

wsl --unregister Ubuntu-Shared

Depois repetir --import ... --vhd apontando para os caminhos corretos.

Importante: unregister remove apenas o registro da distro naquele Windows, não apaga automaticamente o VHDX compartilhado se você está apontando para caminho externo controlado. Ainda assim, valide sempre o caminho antes de executar.

5) UID/GID: evitando Permission denied entre boots

Mesmo com mesmo VHDX, diferenças de usuário entre as duas instalações podem causar comportamento inconsistente em arquivos da /home.

Dentro da distro, valide IDs:

id
getent passwd | head
ls -ln /home

Estratégia aplicada:

Quando necessário, ajuste controlado:

sudo usermod -u 1000 meuusuario
sudo groupmod -g 1000 meuusuario
sudo find /home/meuusuario -uid OLD_UID -exec chown -h 1000 {} \;
sudo find /home/meuusuario -gid OLD_GID -exec chgrp -h 1000 {} \;

Esse passo foi essencial para estabilizar permissões em toolchains Node/Python e caches locais.

6) Paridade de kernel e runtime entre Windows A e B

Evitei drift operacional mantendo ambos os lados atualizados:

wsl --update
wsl --version

Checklist adicional dentro da distro:

uname -r
cat /etc/os-release

A meta foi impedir comportamento divergente por kernel antigo em um dos boots.

7) Protocolo operacional para não corromper ext4.vhdx

Padronizei procedimento de troca de sistema:

  1. fechar terminais/processos Linux
  2. executar wsl --shutdown
  3. desligar/reiniciar Windows com hibernação desativada
  4. iniciar outro Windows
  5. subir distro e validar rapidamente

Validação rápida pós-boot:

wsl -d Ubuntu-Shared -- bash -lc "pwd && df -h && ls /home"

Esse protocolo eliminou risco de lock residual no VHDX.

8) Backup e rollback

Mesmo estável, compartilhei um único ponto de dados entre dois sistemas. Portanto, backup periódico virou item obrigatório.

Export recorrente:

wsl --export Ubuntu-Shared D:\Backups\ubuntu-shared-$(Get-Date -Format yyyyMMdd).tar

Restauração (se necessário):

wsl --import Ubuntu-Restore D:\WSL\Ubuntu-Restore D:\Backups\ubuntu-shared-YYYYMMDD.tar

Com isso, consigo rollback rápido sem depender de snapshot manual do VHDX.

9) Resultado operacional

Com o modelo implantado:

10) Conclusão técnica

Compartilhar o mesmo ext4.vhdx do WSL 2 em dual-boot é viável e estável quando tratado como operação de infraestrutura, não como “atalho”.

Os pontos críticos que garantiram confiabilidade foram:

Esse padrão transformou dois ambientes potencialmente divergentes em um único ambiente Linux consistente entre boots.

CC BY-NC

Este post está licenciado sob CC BY-NC.

Comentários

Participe da discussão abaixo.