¿Dónde está el directorio raíz del sistema de archivos de Ubuntu en el subsistema de Windows para Linux y viceversa?

He instalado Ubuntu subsystem en Windows 10 (después de habilitar la función en configuración), pero ¿dónde se encuentra el directorio raíz del sistema de archivos de Ubuntu en la unidad?

Para Ubuntu instalado desde la tienda Windows:

Cada distribución que se instala a través de la tienda se instala en el directorio appdata de esa aplicación. Por ejemplo: C:\Users\<username>\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState - benhillis

Para WSL2, puede acceder al directorio de inicio desde Windows (Windows 10 build 18342) de esta manera :

\\wsl$

En iteraciones anteriores del Subsistema de Windows para Linux, el sistema de archivos de Ubuntu estaba en %localappdata%\Lxss (p. ej., C:\Users\Username\AppData\Local\Lxss - sustituir el Nombre de usuario con su nombre de usuario en Windows). Ver la publicación de blog de WSL sobre el Soporte del Sistema de Archivos:

El sistema de archivos principal utilizado por WSL es VolFs. Se utiliza para almacenar los archivos del sistema Linux, así como el contenido de su directorio de inicio de Linux. Como tal, VolFs admite la mayoría de las funciones que proporciona Linux VFS, incluidos los permisos de Linux, los enlaces simbólicos, los FIFO, los sockets y los archivos de dispositivo.

VolFs se usa para montar el directorio raíz de VFS, usando %LocalAppData%\lxss\rootfs como el almacenamiento de respaldo. Además, existen algunos puntos de montaje VolFs adicionales, los más notables /root y /home que se montan usando %LocalAppData%\lxss\root y %LocalAppData%\lxss\home respectivamente. La razón de estos montajes separados es que cuando desinstala WSL, los directorios de inicio no se eliminan de forma predeterminada, por lo que se conservarán los archivos personales almacenados allí.

PRECAUCIÓN

Crear / modificar cualquier archivo dentro del subsistema Linux usando aplicaciones y herramientas de Windows puede causar corrupción de datos y pérdida de datos en el subsistema Ubuntu. (Gracias a Rich Turner por sugerir estas palabras de precaución!) Esto es absolutamente ni apoyar. De la misma entrada de blog:

Interoperabilidad con Windows

Si bien los archivos VolFs se almacenan en archivos normales en Windows en los directorios mencionados anteriormente, no se admite la interoperabilidad con Windows. Si se agrega un nuevo archivo a uno de estos directorios desde Windows, carece del EAs que necesita VolFs, por lo que VolFs no sabe qué hacer con el archivo y simplemente lo ignora. Muchos editores también eliminarán el EAs al guardar un archivo existente, lo que hará que el archivo sea inutilizable en WSL.


El sistema de archivos de Windows se encuentra en /mnt/c en el entorno de shell Bash.

enter image description here

Fuente: Blog de Dustin Kirkland, howtogeek

Esto parece haber cambiado desde que se introdujo originalmente Bash, y no se aplica a las distribuciones de la tienda Windows, o tal vez no sea consistente para todos los sistemas, ya que mi directorio de inicio se encuentra en otra ubicación:

%localappdata%\lxss\home\{username}

o:

C:\Users\{user}\AppData\Local\lxss\{username}

Donde {user} es su nombre de usuario y contraseña de Windows {username} es su nombre de usuario de UNIX establecido durante la instalación.

Entonces el directorio raíz sería:

%localappdata%\lxss

Tenga en cuenta que es posible que el directorio raíz no esté visible en el Explorador de Windows %localappdata% directorio. Debería poder acceder a él de todos modos escribiéndolo en la 'barra de direcciones' del Explorador.

Si instala Linux desde MS Market:

colocaron distribuciones bajo:

$ cat /proc/registry/HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Lxss/\{861c29b4-ebe2-49a5-8a22-7e53a27934a0\}/BasePathC:\Users\user\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState

Distribución predeterminada definida por:

bash# cat /proc/registry/HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Lxss/DefaultDistribution{861c29b4-ebe2-49a5-8a22-7e53a27934a0}

La raíz de Linux es más profunda:

c:/Users/user/AppData/Local/Packages/46932SUSE.openSUSELeap42.2_022rs5jcyhyac/LocalState/rootfs

PS. Utilicé Cygwin para explorar las claves de registro.

Si usa PowerShell para el mismo objetivo, los comandos serían:

# obtain the value of the ID of the default Linux distribution (and store it in a variable to avoid escaping characters issues):$DEFAULT_LXSS_ID = (Get-ItemPropertyValue -Path REGISTRY::HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss\ -name DefaultDistribution)# which will have a value like:echo  $DEFAULT_LXSS_ID{bde539d6-0c87-4e12-9599-1dcd623fbf07}# display the directory containing the rootfs Windows directory (mapped to the / Linux directory)Get-ItemPropertyValue -Path REGISTRY::HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss\$DEFAULT_LXSS_ID -name BasePath | Format-List -property "BasePath"%LocalAppData%\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState

PPS. https://blogs.msdn.microsoft.com/commandline/2016/11/17/do-not-change-linux-files-using-windows-apps-and-tools/

Puede abrir Bash rápidamente desde una ventana del Explorador de archivos de la carpeta abierta escribiendo bash en la barra de ubicación.

Es suficiente.

También puede agregar un elemento de menú contextual. Personalmente, no lo recomiendo si no es necesario, porque agregar accesos directos al menú contextual usa más RAM.

https://www.howtogeek.com/270810/how-to-quickly-launch-a-bash-shell-from-windows-10s-file-explorer/

Lo único que funcionó para mí fue %localappdata%\lxss\home\{username}, donde el {username} es el nombre de usuario de BASH que le diste durante la instalación. Por alguna razón, después de mostrar la carpeta oculta, lxss se niega a aparecer en C:\Users\WINDOWS-USER\AppData\Local\, y también dando el pleno C:\ la ruta con el nombre de usuario de Windows y BASH tampoco funciona.

Y, por favor, cree un acceso directo en el escritorio para lo que funciona.

Para aquellos que buscan la ubicación de la imagen: C:\Users\[nombre de usuario]\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx

** TENGA EN CUENTA**

Nosotros (el equipo de WSL) RECOMENDAMOS encarecidamente que NO profundice en los datos de la distribución de Linux folders
). Si lo hace, la pérdida de datos y/o la corrupción es muy probable

Estamos trabajando para mejorar este escenario de interoperabilidad y anunciaremos cualquier progreso en nuestro blog: Windows Command Line

@DannyStaple Si necesita cambiar los permisos en archivos/carpetas en su distribución de Linux desde Windows, use wsl.exe', por ejemplo ’ wsl chmod 600 ~/.ssh / id` ’ - no * copie archivos en estas carpetas a través del sistema de archivos de Windows.

@mehrdad WSL implementa un servidor de archivos P9, exponiendo / ordenando archivos desde/hacia el sistema de archivos de la distribución como lo haría cualquier servidor de archivos P9. De esta manera, no hay metadatos NTFS para ordenar. Por favor, vea la sesión de Craig Loewen y Ben Hillis en Build 2919 para obtener más información

@RichTurner He descubierto que hay una razón muy específica ( y molesta): las políticas corporativas que marcan el .la carpeta ssh con los permisos incorrectos repetidamente significa la necesidad de marcar la estructura como “fuera de los límites” de los scripts corporativos. Pero en general, estoy de acuerdo contigo.

Aunque se ve así en cajas con actualizaciones más recientes, esto ya no sucede.

@RichTurner: ¿Por qué ustedes no tunelizan los metadatos de Linux como ya lo hacen con los metadatos NTFS?

@mehrdad Lo hacemos en 1903 y más tarde a través del nuevo servidor P9.

@RichTurner: Gracias por la respuesta! Sin embargo, estoy confundido… Sin embargo, 1903 requiere acceder a él como un recurso de red, ¿no es así? Si usted túnel de los atributos de la misma manera que un túnel de metadatos de NTFS entonces sería posible editar los archivos localmente. Eso me sugiere que eso no es exactamente lo que estás haciendo.

@RichTurner: * " De esta manera no hay metadatos NTFS para ordenar."*Sí… por lo tanto, el túnel NTFS no es lo que está haciendo, en contradicción con lo que dijo anteriormente. Así que volvemos a mi primera pregunta: ¿no hicieron un túnel de los metadatos WSL *en lugar de usar un servidor de archivos, al igual que NTFS ya lo hace con otros metadatos?

@mehrdad ¿Dónde dije que estábamos ordenando metadatos NTFS? P9 ordena los metadatos de los archivos (es decir, marcas de tiempo, permisos, nombre de archivo, etc.), no datos NTFS.