Sobre el sistema de archivos montado en /mnt/c
- ¿Qué es exactamente /mnt/c/Users/ comparado con C:\Users\? Parece que son uno en el mismo… entonces, ¿qué es /mnt/c/?
A diferencia de Windows, Linux (y los demás sistemas basados en Unix) utilizan una única estructura de carpetas independiente del número de discos que tengas. Si tienes varios discos, todos estos discos deben ser montados en la estructura de carpetas en algún momento.
- Típicamente, todos los discos (diferentes a los usados para arrancar el sistema) son montados en una carpeta llamada
/mnt
o /media
WSL tiene un tipo especial de sistema de archivos llamado DrvFS que le da acceso a los discos usados en windows. Puedes usar DrvFS para montar, no sólo tu sistema de archivos de windows, sino también discos de red y otros tipos de medios.
- En WSL, por defecto, el disco
C:
de windows se monta bajo /mnt/c
- Si tienes otro disco, por ejemplo un disco
D:
de windows, se montará bajo /mnt/d
Los archivos que puedes ver en /mnt/c
son los mismos que tienes en C:
. Si modificas algún archivo, tendrás los cambios en las ventanas también.
Puede utilizar el comando mount
para acceder a otros tipos de medios (por ejemplo, unidades extraíbles o recursos compartidos de red).
Acerca de la ubicación de /home/<username>
- ¿Cómo puedo ver los archivos en /home/ usando el Explorador de Archivos de Windows? No es que quiera hacerlo… Sólo estoy tratando de entender cómo organiza Windows esto del subsistema para Linux.
En WSL, todo el sistema de archivos de linux se encuentra bajo una carpeta de Windows. La ubicación de la carpeta depende de la versión de Windows y de la distribución de WSL que estés utilizando.
- Las versiones iniciales de WSL almacenan el sistema de archivos linux en
%LOCALAPPDATA%\Lxss\rootfs
- Las distribuciones de WSL instaladas desde la Windows Store , a partir de la Build 16215 de Windows (mediados de 2017), utilizan una carpeta como
%LOCALAPPDATA%\Packages\...\LocalState\rootfs
. El nombre del paquete varía dependiendo de la distribución (por ejemplo, es diferente para Ubuntu que para Debian)
- Las distribuciones de Linux instaladas usando otras herramientas , como lxRunOffline o WSL-DistroLauncher pueden almacenar el sistema de archivos de linux en cualquier ubicación.
Puede marcar muchas opciones para saber la ubicación de la carpeta WSL . Por ejemplo, creo que la opción más fácil es usar lxRunOffline para conocer la carpeta de instalación.
## You can use lxrunoffline to check which WSL distributions have installed
## using: lxrunoffline list
C:\> lxrunoffline list
backup
Ubuntu-18.04
## And you can use it to get the location of any of these WSL installations
## using: lxrunoffline get-dir -n <name of distribution>
C:\> lxrunoffline get-dir -n backup
c:\wsl\installed\backup
C:\> lxrunoffline get-dir -n Ubuntu
C:\Users\Jaime\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState
Una vez que se conoce la ubicación de la carpeta de instalación, el /home/<username>
está bajo el <installation folder>\rootfs\home\username
.
NOTA: Tanto Linux como Windows almacenan los permisos de los archivos de forma diferente. Actualmente, el DrvFS de WSL almacena los permisos de Linux como Streams (metadatos) adjuntos a los archivos que se pueden ver en Windows. Microsoft no recomienda modificar los archivos de linux utilizando programas de Windows. Es posible que algunas aplicaciones de Windows dañen los permisos de linux sin notarlo.