Cómo funciona WSL 2
Windows sigue siendo el sistema anfitrión. WSL 2 corre un kernel de Linux real dentro de una máquina virtual ligera, con su propio disco virtual. Por eso uname -a muestra Linux aunque el equipo sea una laptop con Windows.
uname -a
De ahí salen dos sistemas de archivos distintos, cada uno visible desde el otro.
Dos sistemas de archivos
| Dónde vive | Ruta desde Linux | Ruta desde Windows | |
|---|---|---|---|
| Archivos de Linux | Disco virtual de la distro | /home/usuario (~) |
\\wsl$\Ubuntu\home\usuario |
| Archivos de Windows | Disco C: |
/mnt/c/Users/usuario |
C:\Users\usuario |
Dónde guardar los proyectos
Los proyectos van dentro del sistema de archivos de Linux (
~/proyectos), no en/mnt/c/....
Cruzar de un sistema al otro pasa por una capa de traducción, y eso tiene dos consecuencias:
- Rendimiento: operaciones con muchos archivos pequeños (
git status,npm install, builds) son mucho más lentas en/mnt/c. - Permisos: los archivos de Windows no tienen permisos de Linux reales. Desde WSL aparecen todos como ejecutables,
chmodno se comporta como se espera y Git detecta cambios de modo que no existen. Está explicado en Git y el permiso de ejecución.
De Linux a Windows
explorer.exe . # abre la carpeta actual en el Explorador de Windows
code . # abre la carpeta en VS Code, conectado a WSL
cd /mnt/c/Users # entrar al disco C:
ls /mnt # una carpeta por cada unidad de Windows
Los ejecutables de Windows se pueden llamar desde la distro escribiendo su nombre con .exe:
notepad.exe notas.txt
clip.exe < archivo.txt # copia el contenido al portapapeles de Windows
De Windows a Linux
En la barra de direcciones del Explorador:
\\wsl$\Ubuntu
También aparece como Linux en el panel lateral del Explorador. Desde ahí se copian archivos entre ambos sistemas arrastrando.
Convertir rutas
wslpath -w ~/proyectos # ruta de Linux a formato Windows
wslpath 'C:\Users\usuario' # ruta de Windows a formato Linux