Mover WSL a otra unidad en Windows
El subsistema de Windows para Linux(WSL2) es ampliamente utilizado por desarrolladores, administradores y usuarios comunes para ejecutar diferentes distribuciones de Linux (Ubuntu, Debian, OpenSUSE, Kali Linux, Alpine), herramientas y aplicaciones en Windows sin usar virtualización ni arranque dual. En este artículo, le mostraremos cómo mover los archivos de una instalación de WSL existente a una unidad o computadora diferente.
Cuando instala WSL en Windows, todos los archivos de entorno se guardan en la unidad del sistema C:\. Si la unidad de su sistema no es lo suficientemente grande (por ejemplo, SSD), el tamaño del sistema de archivos WSL puede crecer significativamente y es posible que deba mover WSL a otra unidad o computadora. Puede mover su instalación de WSL de varias maneras.
Primero, obtenga el tamaño actual del sistema de archivos WSL en su disco actual. Enumere las distribuciones WSL instaladas en su computadora:
wsl --list --verboseEn este ejemplo, solo está instalado Ubuntu-20.04. Ejecute el siguiente comando de PowerShell para obtener el nombre de la aplicación UWP con sus distribuciones de Linux:
Get-AppxPackage -Name "*Ubuntu20*" | Select PackageFamilyName
En mi ejemplo, el nombre del paquete UWP es CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc. El sistema de archivos WSL de la imagen de Linux se encuentra en el archivo ext4.vhdx VHD en
%USERPROFILE%\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState\ext4.vhdxPara obtener un tamaño de archivo con PowerShell, ejecute el siguiente comando:
$path= $env:USERPROFILE+ "\AppData\Local\Packages\" + (Get-AppxPackage -Name "*Ubuntu20*").PackageFamilyName + "\LocalState\ext4.vhdx"
Get-ChildItem -Path $path | fl @{Label="SizeGb"; Expression={$_.Length / 1Gb}}Puede intentar reducir el tamaño del archivo VHD con el cmdlet Optimize-VHD (del módulo Hyper-V PowerShell). A veces es suficiente:
optimize-vhd -Path <PATH_TO_VHD> -Mode fullLa ruta al archivo VHD de la distribución WSL se almacena en el parámetro de registro BasePath debajo de la clave de registro.
HKCU\Software\Microsoft\Windows\CurrentVersion\Lxss\{UUID}Puede detener WSL, mover ext4.vhdx a otra unidad y cambiar la ruta al directorio en el registro. ¡Pero este escenario no se recomienda!
En las compilaciones actuales de Windows 10 y 11, puede migrar su entorno WSL correctamente mediante el procedimiento integrado de exportación e importación.
Ejecute el entorno WSL y verifique el nombre de usuario:
wsl
whoamiEn nuestro ejemplo, es sysops.
Cierre todas las aplicaciones que se ejecutan en su entorno Linux y consola WSL:
wsl --shutdownPara hacer una copia de seguridad (exportar) de su entorno WSL y guardarlo en una unidad E:, ejecute los comandos:
mkdir e:\backup
wsl --export Ubuntu-20.04 e:\backup\ubuntu.tarEspere hasta que finalice la exportación de WSL (puede llevar mucho tiempo). Aparecerá un archivo TAR con su sistema de archivos WSL ext4 en el directorio de destino.
Luego, puede eliminar los archivos WSL en el disco de origen:
wsl --unregister Ubuntu-20.04Cree un directorio para su imagen de Linux en una nueva unidad e importe el archivo TAR a WSL con este comando:
mkdir E:\WSL
wsl --import Ubuntu-20.04 E:\WSL\ E:\backup\ubuntu.tarEl inicio de sesión predeterminado en Ubuntu es root. Para cambiarlo a otro nombre de usuario (lo obtuvimos antes), ejecute:
cd $env:USERPROFILE\AppData\Local\Microsoft\WindowsApps
.\ubunt4.exe config --default-user sysopsInicie el entorno WSL:
wsl -d Ubuntu-20.04Puede usar el mismo escenario para mover una imagen WSL configurada a otras computadoras.
Puede usar una utilidad de terceros LxRunOffline (disponible en GitHub — https://github.com/DDoSolitary/LxRunOffline) para mover WSL en Windows. Puedes instalarlo usando Chocolatey:
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
choco install lxrunofflineLista de imágenes WSL disponibles:
lxrunoffline listFinalice todos los procesos de WSL:
wsl --shutdownPara obtener el directorio actual, la imagen de WSL se encuentra en:
lxrunoffline get-dir -n Ubuntu-20.04Para mover una imagen WSL a otro disco:
lxrunoffline move -n Ubuntu-20.04 -d d:\wsl2\Ubuntu-20.04Una vez completada la migración, inicie WSL con este comando:
wsl -d Ubuntu-20.04o
lxrunoffline run -n Ubuntu-20.04 -wEn Windows 11, también puede ejecutar Windows Subsystem for Andriod (WSA) junto con WSL.







