¿Dónde se encuentra el sistema de archivos del subsistema Linux en Windows 10?

22

Está bastante claro que el sistema de archivos "host" de Windows 10 está montado /mnt/c/desde la perspectiva "Linux". Pero, ¿es posible obtener acceso al sistema de archivos "Linux" desde Windows? Si es así, ¿dónde está?

Hay cuatro luces
fuente
¿Cuál es la salida de mounten un bashshell?
DavidPostill
Esto no devuelve ninguna pista:rootfs on / type rootfs
Hay cuatro luces
Hmm Okay. ¿Qué hay de cat /etc/fstab?
DavidPostill
No, desafortunadamente desde la perspectiva de "Linux" se ve sentado en el hardware:LABEL=cloudimg-rootfs / ext4 defaults 0 0
Hay cuatro luces
OKAY. No hay otras ideas.
DavidPostill

Respuestas:

24

El sistema de archivos raíz único se encontraba aquí hasta la actualización de Windows 10 Fall Creators (lanzada en octubre de 2017):

%LOCALAPPDATA%\Lxss\rootfs

Por ejemplo, C:\Users\Vigo\AppData\Local\Lxss\rootfs\

Otros puntos de montaje se encuentran un nivel más arriba en el lxssdirectorio. Por ejemplo, su propio homedirectorio dentro de Linux estará en %LOCALAPPDATA%\Lxss\home.

A partir de la actualización de Fall Creators, es posible instalar más de una instancia de Linux y ejecutarlas en paralelo. La instancia existente (también conocida como legacy) permanecerá en su directorio, pero las nuevas instancias creadas se encuentran en:

% LOCALAPPDATA% \ Packages \ <distribution_specific_name> _ <random_string> \ LocalState \ rootfs

Por ejemplo, mi instalación de Ubuntu 18.04 se encuentra debajo de

CanonicalGroupLimited.Ubuntu18.04onWindows_ 79rhkp1fndgsc
directorio.

Advertencia : Tenga cuidado de no crear , modificar o eliminar archivos ubicados bajo el árbol lxss o distribución específica de Windows.

Explorar y leer archivos es la única operación inofensiva. Vea esta página del blog de Microsoft para más detalles.

Tenga en cuenta que a partir de Build 1903, hay una forma alternativa de acceder a los archivos de una distribución en ejecución que no presenta los problemas mencionados anteriormente.

Simplemente use la ruta \\wsl$\<distribution_specific_name>\y podrá crear y modificar archivos. AppData todavía no es una forma compatible de acceder a los archivos con la compilación 1903.

jlliagre
fuente
Estaba oculto :)
Y2K
No puedo agregarlo al Acceso rápido del Explorador de Windows como marcador para encontrarlo fácil.
juan
44
Una versión para copiar y pegar neutral para el usuario:%USERPROFILE%\AppData\Local\Lxss\rootfs
Silveri
3
Advertencia: Según Microsoft, no debe modificar su sistema de archivos de Linux utilizando aplicaciones de Windows. blogs.msdn.microsoft.com/commandline/2016/11/17/…
Korey
1
Se puede simplificar la primera parte de ese camino mucho utilizando %LOCALAPPDATA%en lugar de%USERPROFILE%\AppData\Local
Herohtar
8

Hoy en día, puede instalar múltiples distribuciones de Linux. Por lo tanto, cada distribución tendrá su propio sistema de archivos ubicado en una carpeta diferente.

  • Si instala algunas distribuciones de Linux desde la Tienda Windows, los sistemas de archivos se encuentran en %USERPROFILE%\AppData\Local\Packages\...\LocalState\rootfs
  • Si ha instalado, movido o duplicado una distribución de Linux utilizando LxRunOffline o cualquier versión de WSLDistroLauncher , el sistema de archivos puede ubicarse en cualquier carpeta de su computadora.

Obteniendo la información del Registro

La ubicación de cada sistema de archivos se puede obtener del Registro de Windows. Los datos se encuentran debajo de

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss

Puede iniciar una ventana de PowerShell y ejecutar el siguiente comando para obtener las ubicaciones de los sistemas de archivos

PS> (Get-ChildItem HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss | ForEach-Object {Get-ItemProperty $_.PSPath}) | select DistributionName, @{n="Path";e={$_.BasePath + "\rootfs"}}

Obtendrá una tabla con información como la siguiente

DistributionName Path
---------------- ----
Ubuntu           C:\Users\Jaime\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs
Ubuntu-18.04     C:\Users\Jaime\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs
mydistro         C:\wsl\mydistro\rootfs

Usando lxRunOffline

LxRunOffline es una herramienta para administrar distribuciones de Linux instaladas en WSL. Puede usar LxRunOffline para obtener el directorio utilizado por una distribución instalada

# lxrunoffline get-dir -n <name of the distro>

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
Jaime
fuente
2

Para WSL2, puede acceder al directorio de inicio desde el explorador de Windows de esta manera:

\\wsl$

Lamento llegar tarde a la fiesta!

Francisco Tena
fuente
Esto debería actualizarse para que sea la respuesta correcta
getglad
1

La versión posterior del subsistema de Linux instala el sistema de archivos, por packageslo que la ruta completa sería algo como:

C:\Users\myUserName\AppData\Local\Packages\UbuntuLinux.someUID\LocalState\rootfs\root

o:

C:\Users\myUserName\AppData\Local\Packages\UbuntuLinux.someUID\LocalState\rootfs\home\myLinuxUserName

... dependiendo, por supuesto, del punto de montaje. Hacer una búsqueda en el directorio .bashrcrevelaría estas rutas ...

Alternativamente, use readlink .dentro del shell de Linux para publicar la ruta de Linux actual como una ruta 'DOS' al portapapeles de Windows. Pegue en algún lugar sensato para leer la ruta física real.

PGP
fuente
1

Parece que Microsoft lo ha cambiado / ocultado un poco más, actualmente está en:

% USERPROFILE% \ AppData \ Local \ Packages \ CanonicalGroupLimited.UbuntuonWindows _ ????????????? \ LocalState \ rootfs

Como esto podría cambiar aún más en el futuro, simplemente haga la sugerencia de PGP de hacer una búsqueda de archivos .profile o .bashrc.

jesseyu
fuente
1

Creé este script que abre la carpeta WLS en Explorer

cd C:\Users\Naotho Machida\AppData\Local\Packages\Canonical*\LocalState\rootfs\etc
explorer %cd%

simplemente guárdelo como yourScript.cmd y ejecute

Naotho Machida
fuente