2017-03-04 01:59:01 +0000 2017-03-04 01:59:01 +0000
113
113

¿Qué es el directorio de inicio en el subsistema de Windows para Linux?

Cuando inicio bash en el subsistema de Windows para Linux, me deja en el directorio

/mnt/c/Users/<username>

Cuando escribo ls en este directorio, veo los directorios Desktop, Documents, etc. que puedo ver que están en C:\Users\<username> usando el Explorador de Archivos de Windows. Dado que aquí es donde el programa bash comenzó, esperaba que este fuera mi directorio principal, pero cuando escribo cd o cd ~ me lleva a

/home/<username>

que contiene mi archivo .bashrc, .profile etc. que esperaría encontrar en mi directorio principal en una caja Linux. Además, entrando en cd ../.. desde aquí puedo ver los directorios bin, etc y así sucesivamente, de nuevo como se espera en una caja Linux.

Tengo dos preguntas con respecto a todo esto:

  1. ¿Qué es exactamente /mnt/c/Users/<username> comparado con C:\Users\<username>? Parece que son lo mismo, así que ¿qué es /mnt/c/?
  2. ¿Cómo puedo ver los archivos en /home/<username> usando el Explorador de Archivos de Windows? No es que quiera hacerlo–sólo estoy tratando de entender cómo Windows organiza esta cosa del Subsistema para Linux.

Respuestas (11)

132
132
132
2017-12-29 12:07:21 +0000

Para 2: La ruta actual está ahora relacionada con la distribución que haya instalado desde la Microsoft Store en lugar de una ruta global. Así, para Ubuntu ahora se encuentra en:

%LOCALAPPDATA%\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs

Supongo que las otras distribuciones estarán en una ubicación similar bajo sus respectivas carpetas en:

%LOCALAPPDATA%\Packages\
33
33
33
2017-03-04 02:59:20 +0000
  1. /mnt/c es exactamente lo mismo que C:1./mnt/c` es exactamente lo mismo que . Es sólo la sintaxis para llegar a él desde WSL.
  2. Busca en C:\Users\<username>\AppData\Local\Lxss\rootfs.
21
21
21
2018-08-09 12:58:03 +0000

Sobre el sistema de archivos montado en /mnt/c

  1. ¿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>

  1. ¿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.

  • Por ejemplo, si su carpeta de instalación está en c:\wsl\ubuntu
  • el /home/<username> está en c:\wsl\ubuntu\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.

7
7
7
2019-02-20 18:35:13 +0000

En Bash, para ver el directorio actual en el Explorador de Archivos de Windows sólo tienes que introducir

explorer.exe .

No dejes fuera el “.”.

Esto abrirá el explorador de Windows en la carpeta actual y podrás ver dónde está todo en relación con el resto de tu sistema Windows.

6
6
6
2018-07-16 08:06:17 +0000

Supongo que puede depender de la build de windows en la que te encuentres, pero para mí en 2018 en Windows 10 Pro de 64 bits, versión 1709 (OS Build 16299.522) y también versión 1803 (OS Build 17134. 165) [una actualización de windows irónicamente ocurrió mientras escribía esto] la ubicación sigue siendo:

C:\Users\<username>\AppData\Local\lxss

El truco es cuando estás en C:\Users\<username>\AppData\Local no verás una carpeta lxss (a menos que por casualidad hayas desmarcado “Ocultar archivos protegidos del sistema operativo (Recomendado)” en tus opciones de carpeta).

Sin embargo, sólo tienes que añadir \lxss en la barra de direcciones del explorador de Windows y te llevará a la carpeta.

(Nota: yo no tenía un %LOCALAPPDATA%\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc o algo similar que se mencionó en la respuesta de Michael Bonds)

Actualización

Resulta que hay WSL heredado que es lo que yo había instalado. Ahora WSL se proporciona a través de una aplicación de la tienda de Microsoft. Hay versiones para Ubuntu 18.04 LTS y también ahora algunos otros sabores de Linux (por ejemplo, Debian). Si quiere estar al día, puede querer desinstalar el WSL heredado e instalar la versión de la tienda de Microsoft .

La ubicación de su carpeta de inicio dependerá de cuál de estos tipos de WSL haya instalado.

4
4
4
2018-01-15 12:07:42 +0000
  1. Usando la consola WSL bash, en su directorio principal, cree un archivo con un nombre específico arbitrario como “test_here.txt”.
  2. A continuación, mediante el Explorador de Windows, utilizando el cuadro de búsqueda, busque el archivo test\here.txt.
  3. En el archivo encontrado \ ~ haga clic en el botón derecho \ ~ Abrir la ubicación del archivo.
3
3
3
2019-11-16 15:21:34 +0000

Con el actual Windows 10 Insider (Fast ring: Windows 10 build 19025.1) puedes montar tu distribución como una unidad de red. WSL es accesible como wls$, la ruta es el nombre de su distribución (wsl -l -q).

Por ejemplo net use Z: \wsl$\Debian /PERSISTENT:YES

2
2
2
2019-01-11 16:56:17 +0000

Cuatro pasos para que windows 10 pro fije su $HOME de Debian/Ubuntu/OpenSUSE al menú de inicio de Windows:

  1. Desde el menú de inicio inicie el Explorador de Archivos
  2. En la barra de direcciones (no en la barra de búsqueda) escriba %LOCALAPPDATA%.
  3. En la barra de búsqueda busque el nombre de su directorio $HOME, en mi caso era ekenny. Habrá unas 3 versiones de esto pero quieres la que tiene la ruta realmente larga.
  4. Haga clic con el botón derecho del ratón en su directorio de inicio y haga clic en “Anclar al inicio”.

Ahora tienes tu directorio de inicio anclado en el menú de inicio. Intenté crear un acceso directo pero eso no va a ningún sitio inteligible.

0
0
0
2019-12-10 11:31:19 +0000

Si ha instalado su distribución con Chocolatey , la ruta del directorio de inicio es:

C:\ProgramData\chocolatey\lib\wsl-<distribution-name>\tools\unzipped\rootfs\home

Por ejemplo para Ubuntu 18.04 :

C:\ProgramData\chocolatey\lib\wsl-ubuntu-1804\tools\unzipped\rootfs\home
0
0
0
2019-12-19 09:08:46 +0000

En mi configuración (WSL Ubuntu bajo el “entorno de desarrollo de Windows 10” descargado de https://developer.microsoft.com/en-us/windows/downloads/virtual-machines ) la carpeta AppData estaba oculta por defecto. Así que tuve que:

  • abrir el explorador de Windows
  • ir a `C:\Users\UserEn mi configuración (WSL Ubuntu bajo el “entorno de desarrollo de Windows 10” descargado de [ https://developer.microsoft.com/en-us/windows/downloads/virtual-machines ]0x3&) la carpeta AppData estaba oculta por defecto. Así que tuve que:

  • abrir el explorador de Windows

  • ir a

  • seleccionar view en el menú

  • marcar hidden items

  • entonces la carpeta AppData aparece bajo C:\Users\User

  • y encontré mi /home/user bajo C:\Users\User\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_*\LocalState\rootfs\home\user (donde * es probablemente un código local o código dependiente de la versión de algún tipo)

No sé por qué está escondido así.

0
0
0
2019-04-15 11:34:10 +0000

Sólo necesitaba encontrar /etc/environment usando Ubuntu 16.04 buscando en el almacenamiento NTFS de Windows 10. Lo encontré aquí:

C:\Users\USER_NAME\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc\LocalState\rootfs\etc\environment
  • Cambié /mnt/c/ a C:Sólo necesitaba encontrar/etc/environment` usando Ubuntu 16.04 buscando en el almacenamiento NTFS de Windows 10. Lo encontré aquí:
C:\Users\USER_NAME\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc\LocalState\rootfs\etc\environment
  • Cambié /mnt/c/ a por la nomenclatura de Windows.
  • También cambié todas las apariciones de / a Sólo necesitaba encontrar/etc/environment` usando Ubuntu 16.04 buscando en el almacenamiento NTFS de Windows 10. Lo encontré aquí:
C:\Users\USER_NAME\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc\LocalState\rootfs\etc\environment
  • Cambié /mnt/c/ a C:Sólo necesitaba encontrar/etc/environment` usando Ubuntu 16.04 buscando en el almacenamiento NTFS de Windows 10. Lo encontré aquí:
C:\Users\USER_NAME\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc\LocalState\rootfs\etc\environment
  • Cambié /mnt/c/ a por la nomenclatura de Windows.
  • También cambié todas las apariciones de / a por la misma razón.
  • Tiene que sustituir USER_NAME por su nombre de usuario de Windows.
  • Tuve que usar sudo -H Nautilus para obtener permisos para ver los Archivos de Usuario almacenados en WSL.
  • Nunca actualice sus archivos de Linux en WSL usando una aplicación de Windows. Corromperá sus datos de Linux.

Desde el lado de Linux (Ubuntu 16.04) la nomenclatura sería:

$ sudo cat /mnt/c/Users/USER_NAME/AppData/Local/Packages/CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc/LocalState/rootfs/etc/environment

PATH="/mnt/e/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
export LIBGL_ALWAYS_INDIRECT=Yes
export DISPLAY=localhost:0.0