Instruções originais: https://murrahjm.github.io/Exporting-WSL-data/
Liste as distribuições WSL disponíveis:
wsl.exe -l
Distribuições do Subsistema do Windows para Linux:
Alpine (Padrão)
WLinux
docker-desktop-data
docker-desktop
Exporte a distribuição desejada:
mkdir c:\temp
wsl.exe --export WLinux c:\temp\wsl-backup.tar
Tranfira o arquivo de backup para outra máquina com ssh.
Primeiro instale o servidor na máquina destino:
Start-Process powershell.exe -Verb runAs
Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String -Force
Start-Service sshd
Get-Service sshd
Set-Service -Name sshd -StartupType 'Automatic'
Get-NetFirewallRule -Name *ssh*
Transfira o arquivo:
scp.exe c:\temp\wsl-backup.tar arvati@master:c\temp\
Instale sua distribuição na nova máquina, veja o link: https://docs.microsoft.com/en-us/windows/wsl/install-on-server
Ou se preferir:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
cd c:\temp\
Invoke-WebRequest -Uri https://aka.ms/wsl-debian-gnulinux -OutFile Debian.appx -UseBasicParsing
Add-AppxPackage .\Debian.appx
Voce pode instalar com mais opções assim:
cd c:\temp\
Copy-Item c:\temp\Debian.appx -Destination c:\Users\arvati\
cd c:\Users\arvati\
Rename-Item .\Debian.appx .\Debian.zip
Expand-Archive .\Debian.zip .\Debian
cd .\Debian
debian.exe
E coloque acrescente este diretório no PATH:
$userenv = [System.Environment]::GetEnvironmentVariable("Path", "User")
[System.Environment]::SetEnvironmentVariable("PATH", $userenv + ";C:\Users\arvati\Debian", "User")
Procure o local de instalação da mesma no windows explorer: %localappdata%\packages
A minha estava em :
C:\Users\arvati\AppData\Local\Packages\WhitewaterFoundryLtd.Co.16571368D6CFF_kd1vv0z0vy70w
Liste as distribuições WSL disponíveis:
wsl.exe -l
Distribuições do Subsistema do Windows para Linux:
WLinux (Padrão)
docker-desktop-data
Alpine
docker-desktop
Retire a distribuição que será importada:
wsl.exe --unregister WLinux
Use o comando abaixo para importar:
wsl.exe --import WLinux C:\Users\arvati\AppData\Local\Packages\WhitewaterFoundryLtd.Co.16571368D6CFF_kd1vv0z0vy70w\LocalState C:\temp\wsl-backup.tar
Defina o usuário padrão a ser utilizado na distribuição:
pengwin.exe config --default-user manager
Outras opções:
pengwin.exe help