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á?
fuente
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á?
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 lxss
directorio. Por ejemplo, su propio home
directorio 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_ 79rhkp1fndgscdirectorio.
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.
%USERPROFILE%\AppData\Local\Lxss\rootfs
%LOCALAPPDATA%
en lugar de%USERPROFILE%\AppData\Local
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.
%USERPROFILE%\AppData\Local\Packages\...\LocalState\rootfs
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
Para WSL2, puede acceder al directorio de inicio desde el explorador de Windows de esta manera:
\\wsl$
Lamento llegar tarde a la fiesta!
La versión posterior del subsistema de Linux instala el sistema de archivos, por packages
lo 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 .bashrc
revelarí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.
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.
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
mount
en unbash
shell?rootfs on / type rootfs
cat /etc/fstab
?LABEL=cloudimg-rootfs / ext4 defaults 0 0