Liberar espacio WSL Ubuntu: compactar o migrar de disco
WSL2 guarda todo Ubuntu adentro de un único archivo, el ext4.vhdx, que vive en tu disco C: y crece a medida que trabajás (spoiler: nunca lo devuelve solo). Para liberar espacio DE WSL Ubuntu tenés dos caminos reales: compactar ese disco virtual con diskpart o exportar la distro completa y migrarla a otra unidad, como F:.
Liberar espacio DE WSL Ubuntu es el proceso de reducir o reubicar el archivo virtual ext4.vhdx que el Subsistema de Windows para Linux usa para almacenar toda la distribución. Por defecto ese archivo está en C:\Users\[usuario]\AppData\Local\Packages y crece cuando instalás paquetes, compilás proyectos o levantás Docker, sin devolver el espacio aunque borres datos adentro de Linux. Se resuelve compactando el disco virtual o migrando la distro a otra unidad.
En 30 segundos
- El
ext4.vhdxde WSL crece solo y no se achica solo: borrar archivos en Linux no libera el disco en Windows. - El archivo vive en
C:\Users\[usuario]\AppData\Local\Packages\...\LocalState, sobre tu SSD de sistema. - Sin migrar: limpiás adentro (
apt clean,docker system prune) y compactás condiskpartoOptimize-VHD. - Para mover todo:
wsl --export,wsl --unregisterywsl --importapuntando a F:. - Tras migrar, ojo: el usuario por defecto vuelve a root y hay que reconfigurarlo.
¿Por qué WSL ocupa tanto espacio en el disco C?
Ponele que clonás tres repos, levantás Docker, instalás node_modules un par de veces y dejás el vscode-server corriendo. Sin darte cuenta, tu home de Linux pasó los 6 GB y el C: empezó a quedarse sin aire. Tema relacionado: automatizar pipelines de CI/CD.
El tema es de diseño. WSL2 corre sobre una máquina virtual liviana y mete todo el filesystem de Linux en un solo archivo .vhdx. Ese archivo se expande cuando necesita lugar, pero no se contrae cuando borrás cosas. ¿Y si borrás los archivos adentro de Ubuntu, se achica el VHDX? No. El espacio queda reservado del lado de Windows hasta que lo compactes a mano, según la documentación oficial de Microsoft.
Solo el vscode-server se come cerca de 1,1 GB. Sumale cachés de paquetes, imágenes de Docker y artefactos de compilación, y el crecimiento descontrolado aparece rápido.
¿Dónde se almacenan exactamente los archivos de WSL?
El archivo virtual de Ubuntu está en una ruta de este estilo:
C:\Users\[usuario]\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu24.04LTS_79rhkp1fndgsc\LocalState\ext4.vhdxEl nombre largo cambia según la distro y la versión. Lo importante: ese .vhdx es el filesystem completo de Linux empaquetado en un solo objeto que Windows ve como un archivo más. Vos trabajás “adentro” de Ubuntu, pero la data física está ahí, en tu disco de sistema.
Un detalle que confunde a muchos: no edites archivos de Linux entrando a esa carpeta de Windows. Para acceder a tus archivos usá la ruta de red \\wsl$\Ubuntu-24.04\. Tocar el VHDX por afuera es la receta perfecta para corromper la distro. En herramientas de integración continua profundizamos sobre esto.
¿Cuánto espacio puede ocupar WSL Ubuntu?
- Home directory: 6 GB o más. Una instalación con un par de proyectos activos llega ahí sin esfuerzo.
- vscode-server: ~1,1 GB. Se instala solo la primera vez que abrís un proyecto remoto desde VS Code.
- Docker: el villano silencioso. Con imágenes, capas y volúmenes acumulados puede trepar a decenas o cientos de GB.
- Export completo: ~8,9 GB. En un caso real documentado en dev.to, el backup en formato tar de una Ubuntu de uso diario pesó casi 9 GB.
Si tu entorno ya no entra cómodo en la máquina local, a veces conviene mudar la carga pesada a un servidor en la nube. Para Docker de producción o builds grandes, un VPS o servidor cloud (en donweb.com tenés opciones en Argentina) suele salir más sano que pelear contra un SSD lleno.
¿Cómo liberar espacio de WSL Ubuntu sin migrar?
Si no querés mover nada, la jugada es limpiar adentro y después compactar el VHDX. Primero, dentro de Ubuntu, sacate de encima lo obvio:
sudo apt clean
docker system prune -a # solo si usás DockerEso libera espacio adentro, pero el archivo en Windows sigue igual de grande. Ahora viene el paso que casi nadie hace. Apagá WSL y compactá el disco virtual con diskpart:
wsl --shutdown
diskpart
select vdisk file="C:\Users\[usuario]\AppData\Local\Packages\...\LocalState\ext4.vhdx"
attach vdisk readonly
compact vdisk
detach vdisk
exitSi tenés Hyper-V, el comando Optimize-VHD -Path "ruta\ext4.vhdx" -Mode Full hace lo mismo de forma más directa. A partir de WSL 2.0+ (2024), podés activar el modo sparse con wsl --manage Ubuntu-24.04 --set-sparse true, que ayuda a que el archivo se mantenga más chico con el tiempo. Lo explicamos a fondo en documentar procedimientos técnicos.
Eso sí: la compactación recupera GB, pero es parcial. Si el problema de fondo es que tu C: ya quedó chico, la migración te resuelve la vida de verdad.
¿Cómo migrar WSL Ubuntu a otro disco paso a paso?
La idea es simple: exportás toda la distro a un archivo, la desinstalás de C: y la volvés a importar en F:. Hacelo en orden y no perdés nada.
- Paso 1, apagá WSL.
wsl --shutdownpara que el archivo no quede bloqueado. - Paso 2, creá la carpeta destino. Por ejemplo
F:\WSL\Ubuntu. - Paso 3, exportá la distro.
wsl --export Ubuntu-24.04 F:\WSL\ubuntu-backup.tar(esto genera el respaldo completo, los ~9 GB del ejemplo). - Paso 4, desregistrá la vieja.
wsl --unregister Ubuntu-24.04, que la borra del C:. - Paso 5, importá en F:.
wsl --import Ubuntu-24.04 F:\WSL\Ubuntu F:\WSL\ubuntu-backup.tar. - Paso 6, dejala por defecto.
wsl --set-default Ubuntu-24.04.
Cuando entres de nuevo, vas a notar algo raro: arrancás como root (sí, root, leíste bien… y eso trae cola). El import no conserva el usuario por defecto, así que hay que reconfigurarlo, lo vemos abajo. Sobre eso hablamos en ejecutar agentes sin APIs.
¿Compactar o migrar? Tabla rápida para decidir
| Criterio | Compactar (sin migrar) | Migrar a otro disco |
|---|---|---|
| Espacio recuperado | Parcial (lo borrado adentro) | Total: libera todo el C: |
| Dificultad | Baja | Media |
| Riesgo de perder datos | Bajo | Bajo si guardás el tar |
| Tiempo | 5 a 10 minutos | 15 a 30 minutos (según peso) |
| Ideal cuando | El C: tiene aire pero el VHDX se infló | El C: está al límite de forma crónica |

¿Qué problemas pueden ocurrir durante la migración?
- WSL no se apagó del todo. Si el
exportfalla, corréwsl --shutdownde nuevo y verificá conwsl -l -vque todo diga “Stopped”. - Rutas con espacios sin comillas. Una carpeta tipo
F:\Mis Proyectos\WSLrompe el comando si no la encerrás entre comillas dobles. - No queda lugar en el destino. El tar pesa lo mismo que tu Ubuntu, así que asegurate de tener esos GB libres en F: antes de exportar.
- Volviste a root. Editá
/etc/wsl.confy agregá[user]condefault=tu_usuario, despuéswsl --shutdowny reabrí.
¿Cómo verificar que la migración fue exitosa?
Tres chequeos rápidos y te quedás tranquilo:
- Confirmá la distro.
wsl -l -vdebe mostrar Ubuntu-24.04 en estado “Running” o “Stopped”, sin duplicados. - Verificá la nueva ubicación. Tiene que existir un
ext4.vhdxnuevo dentro deF:\WSL\Ubuntu. - Mirá el espacio en C:. Abrí el explorador y comprobá que recuperaste los GB. Adentro de Ubuntu,
df -hte confirma que tus archivos siguen ahí.
Recién cuando todo abre y tus proyectos están donde los dejaste, borrá el ubuntu-backup.tar. Antes no.
Errores comunes al liberar espacio en WSL
- Borrar el tar antes de verificar. Es tu única red de seguridad durante la migración. Si algo sale mal, lo reimportás. Borralo último.
- Compactar sin apagar WSL. Si la distro está corriendo, el archivo queda bloqueado y
diskpartte tira error. Siemprewsl --shutdownprimero. - Creer que borrar adentro libera el disco. Hasta que no compactes o migres, Windows sigue viendo el VHDX igual de grande (que no es poco si tu SSD está al límite).
- Olvidar reconfigurar el usuario. Quedarte como root tras el import funciona, pero rompe permisos y muchas herramientas. Reconfiguralo apenas migrás.
Preguntas Frecuentes
¿Por qué WSL llena mi disco C?
Porque WSL2 guarda toda la distro en un archivo ext4.vhdx ubicado por defecto en C:, dentro de AppData\Local\Packages. Ese archivo crece con cada paquete, build o imagen de Docker, y no se achica solo al borrar datos.
¿Cómo mover WSL a otro disco sin perder datos?
Exportás la distro con wsl --export a un archivo tar, la desinstalás con wsl --unregister y la reimportás en el disco nuevo con wsl --import. Guardá el tar hasta confirmar que todo abre bien.
¿Se puede compactar el archivo ext4.vhdx de WSL?
Sí. Apagá WSL con wsl --shutdown y usá diskpart con el comando compact vdisk, o Optimize-VHD si tenés Hyper-V. Recupera el espacio que liberaste adentro de Linux, aunque la reducción es parcial.
¿Cuánto espacio ocupa WSL Ubuntu típicamente?
Una instalación de uso diario ronda los 6 GB o más solo en el home, con el vscode-server sumando cerca de 1,1 GB. Con Docker activo puede escalar a decenas o cientos de GB.
¿Cómo liberar espacio de WSL sin desinstalar?
Limpiá adentro con sudo apt clean y docker system prune, después compactá el VHDX con diskpart. No hace falta exportar ni borrar la distro: recuperás GB manteniendo todo en su lugar.
Conclusión
El crecimiento del ext4.vhdx no es un bug, es cómo funciona WSL2: expande y no contrae. Si tu C: todavía respira, compactá con diskpart en cinco minutos y listo. Si vivís al borde del espacio, exportá y migrá la distro a otro disco: es media hora de trabajo que te saca el dolor de cabeza por meses. La regla de oro durante la mudanza es no borrar el tar de backup hasta que verifiques que todo abre y tus proyectos siguen ahí. Hacelo en orden y la migración de C: a F: es de las tareas más agradecidas que vas a hacer en tu setup de desarrollo.






