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

Quel est le répertoire principal du sous-système Windows pour Linux ?

Quand je lance bash sur le sous-système Windows pour Linux, il me dépose dans le répertoire

/mnt/c/Users/<username>

Quand je ls ce répertoire, je vois les répertoires Desktop, Documents, etc. que je peux voir sont dans C:\Users\<username> en utilisant l'explorateur de fichiers de Windows. Comme c'est là que le programme bash a commencé, je m'attendais à ce que ce soit mon répertoire d'origine, mais lorsque je tape soit cd soit cd ~, je suis amené à

/home/<username>

qui contient mon fichier .bashrc, .profile etc. que je m'attends à trouver dans mon répertoire d'origine dans une boîte Linux. De plus, en entrant cd ../.. d'ici, je peux voir les répertoires bin, etc et ainsi de suite, encore une fois comme prévu sur une boîte Linux.

J'ai deux questions à propos de tout cela :

  1. Que représente exactement /mnt/c/Users/<username> par rapport à C:\Users\<username> ? Il semble qu'ils ne fassent qu'un dans le même… alors qu'est-ce que /mnt/c/ ?
  2. Comment puis-je visualiser les fichiers dans /home/<username> en utilisant l'explorateur de fichiers de Windows ? Non pas que je veuille vraiment… J'essaie juste de comprendre comment Windows organise ce truc de sous-système pour Linux.

Réponses (11)

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

Pour 2 : Le chemin actuel est désormais lié à la distribution que vous avez installée à partir du Microsoft Store plutôt qu'à un chemin global. Ainsi, pour Ubuntu, il est maintenant situé à :

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

Je suppose que les autres distributions se trouveront à un emplacement similaire sous leurs dossiers respectifs :

%LOCALAPPDATA%\Packages\
33
33
33
2017-03-04 02:59:20 +0000
  1. /mnt/c est exactement le même que C:1./mnt/c` est exactement le même que . C'est juste la syntaxe pour y accéder depuis le WSL.
  2. Regardez dans C:\Users\<username>\AppData\Local\Lxss\rootfs.
21
21
21
2018-08-09 12:58:03 +0000

A propos du système de fichiers monté sur /mnt/c

  1. Qu'est-ce que /mnt/c/Users/ exactement par rapport à C:\Users ? Il semble qu'ils ne fassent qu'un dans le même… alors qu'est-ce que /mnt/c/ ?

Contrairement à Windows, Linux (et les autres systèmes basés sur Unix) utilisent une structure de dossier unique, indépendante du nombre de disques dont vous disposez. Si vous avez plusieurs disques, tous ces disques doivent me montés dans la structure de dossiers à un moment donné.

  • En général, tous les disques (différents de ceux utilisés pour démarrer le système) sont montés dans un dossier nommé /mnt ou /media

WSL a un type spécial de système de fichiers nommé DrvFS qui vous donne accès aux disques utilisés dans Windows. Vous pouvez utiliser DrvFS pour monter, non seulement votre système de fichiers Windows, mais aussi des disques réseau et d'autres types de médias.

  • En WSL, par défaut, le disque C: dans windows est monté sous /mnt/c
  • Si vous avez un autre disque, par exemple un disque D: dans windows, il sera monté sous /mnt/d

Les fichiers que vous pouvez voir dans /mnt/c sont les mêmes que ceux que vous avez dans C:. Si vous modifiez un fichier, vous obtiendrez également les modifications dans les fenêtres.

Vous pouvez utiliser la commande mount pour accéder à d'autres types de supports (par exemple, des lecteurs amovibles ou des partages réseau).


A propos de l'emplacement de /home/<username>

  1. Comment puis-je visualiser les fichiers dans /home/ en utilisant l'explorateur de fichiers de Windows ? Non pas que je veuille vraiment… J'essaie juste de comprendre comment Windows organise ce sous-système pour Linux.

En WSL, tout le système de fichiers linux est situé sous un dossier Windows. L'emplacement du dossier dépend de la version de Windows et de la distribution WSL que vous utilisez.

  • Les versions initiales du WSL stockent le système de fichiers linux dans %LOCALAPPDATA%\Lxss\rootfs
  • Les distributions WSL installées à partir du Windows Store , à partir de Windows Build 16215 (mi-2017), utilisent un dossier comme %LOCALAPPDATA%\Packages\...\LocalState\rootfs. Le nom du paquet varie en fonction de la distribution (par exemple, il est différent pour Ubuntu et Debian). Les distributions
  • Linux installées à l'aide d'autres outils, tels que lxRunOffline ou WSL-DistroLauncher peuvent stocker le système de fichiers linux dans n'importe quel emplacement.

Vous pouvez cocher de nombreuses options pour connaître l'emplacement du dossier WSL . Par exemple, je pense que l'option la plus simple est d'utiliser lxRunOffline pour connaître le dossier d'installation.

## 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

Une fois que vous connaissez l'emplacement du dossier d'installation, le /home/<username> est sous <installation folder>\rootfs\home\username.

  • Par exemple, si votre dossier d'installation est c:\wsl\ubuntu
  • le /home/<username> est dans c:\wsl\ubuntu\rootfs\home\username

NOTE: Linux et Windows stockent tous deux les autorisations de fichiers de différentes manières. Aujourd'hui, le WSL DrvFS stocke les permissions Linux sous forme de flux (métadonnées) attachés aux fichiers que vous pouvez voir dans Windows. Microsoft ne recommande pas de modifier les fichiers linux à l'aide de programmes Windows. Il est possible que certaines applications Windows endommagent les permissions linux sans le signaler.

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

Dans Bash, pour visualiser le répertoire actuel dans l'explorateur de fichiers de Windows, il suffit d'entrer :

explorer.exe .

N'oubliez pas le “.

Cela ouvrira l'explorateur de fichiers de Windows dans le dossier en cours et vous pourrez voir où tout se trouve par rapport au reste de votre système Windows.

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

Je suppose que cela peut dépendre de la fenêtre sur laquelle vous êtes, mais pour moi en 2018 sur Windows 10 Pro 64 bits, Version 1709 (OS Build 16299.522) et aussi Version 1803 (OS Build 17134. 165) [une mise à jour de Windows s'est ironiquement produite pendant que je tapais ceci] l'emplacement est toujours :

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

L'astuce est que lorsque vous êtes à C:\Users\<username>\AppData\Local vous ne verrez pas de dossier lxss (à moins que vous n'ayez décoché “Cacher les fichiers protégés du système d'exploitation (recommandé)” dans vos options de dossier).

Cependant, il suffit d'ajouter \lxss dans la barre d'adresse de l'explorateur Windows et vous serez dirigé vers le dossier.

(Notez que je n'avais pas de %LOCALAPPDATA%\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc ou quelque chose de similaire qui a été mentionné dans la réponse de Michael Bonds)

Mise à jour

Il s'avère qu'il y a un ancien WSL qui est celui que j'avais installé. Maintenant, le WSL est fourni via une application de magasin Microsoft. Il existe des versions pour Ubuntu 18.04 LTS et aussi maintenant quelques autres saveurs de Linux (par exemple Debian). Si vous voulez être à jour, vous pouvez désinstaller l'ancien WSL et installer la version du magasin Microsoft .

L'emplacement de votre dossier d'accueil dépendra du type de WSL que vous avez installé.

4
4
4
2018-01-15 12:07:42 +0000
  1. En utilisant la console WSL bash, dans votre répertoire personnel, créez un fichier avec un nom spécifique arbitraire tel que “test_here.txt”.
  2. Ensuite, à l'aide de l'explorateur Windows, en utilisant la boîte de recherche, recherchez le fichier test_here.txt.
  3. Sur le fichier trouvé > clic droit > Ouvrir l'emplacement du fichier.
3
3
3
2019-11-16 15:21:34 +0000

Avec l'actuel Windows 10 Insider (Fast ring : Windows 10 build 19025.1), vous pouvez monter votre distro comme un lecteur réseau. Le WSL est accessible sous la forme wls$, le chemin d'accès est votre nom de distribution (wsl -l -q).

Par exemple net use Z: \wsl$\Debian /PERSISTENT:YES

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

Quatre étapes pour Windows 10 pro pour épingler votre Debian/Ubuntu/OpenSUSE $HOME au menu de démarrage de Windows :

  1. à partir du menu de démarrage, lancez l'explorateur de fichiers
  2. Dans la barre d'adresse (pas la barre de recherche), tapez %LOCALAPPDATA%.
  3. Dans la barre de recherche, cherchez le nom de votre répertoire $HOME, dans mon cas c'était ekenny. Il y aura environ 3 versions de ce répertoire, mais vous voulez celle avec un très long chemin.
  4. Faites un clic droit sur votre répertoire d'origine et cliquez sur “Pin to Start”.

Maintenant vous avez votre répertoire d'accueil épinglé à votre menu de démarrage. J'ai essayé de créer un raccourci mais cela ne va nulle part de manière intelligible.

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

Si vous avez installé votre distribution avec Chocolatey , le chemin d'accès au répertoire home est :

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

Par exemple pour Ubuntu 18.04 :

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

Dans mon installation (WSL Ubuntu sous l'environnement de développement Windows 10 téléchargé sur https://developer.microsoft.com/en-us/windows/downloads/virtual-machines ) le dossier AppData était caché par défaut. Il fallait donc le cacher :

  • ouvrir l'explorateur Windows
  • aller à `C:\Users\UserDans mon installation (WSL Ubuntu sous l'environnement de développement Windows 10 téléchargé sur [ https://developer.microsoft.com/en-us/windows/downloads/virtual-machines ]0x3&) le dossier AppData était caché par défaut. Il fallait donc le cacher :

  • ouvrir l'explorateur Windows

  • aller à

  • sélectionner view sur le menu

  • cocher hidden items

  • puis le dossier AppData apparaît sous C:\Users\User

  • et j'ai trouvé mon /home/user sous C:\Users\User\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_*\LocalState\rootfs\home\user (où * est probablement un code local ou un code dépendant d'une version quelconque)

Je ne sais pas pourquoi il est caché comme ça.

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

J'avais juste besoin de trouver /etc/environment en utilisant Ubuntu 16.04 en regardant dans le stockage NTFS de Windows 10. Je l'ai trouvé ici :

C:\Users\USER_NAME\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc\LocalState\rootfs\etc\environment
  • J'ai changé /mnt/c/ en C:J'avais juste besoin de trouver/etc/environment` en utilisant Ubuntu 16.04 en regardant dans le stockage NTFS de Windows 10. Je l'ai trouvé ici :
C:\Users\USER_NAME\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc\LocalState\rootfs\etc\environment
  • J'ai changé /mnt/c/ en pour la nomenclature de Windows.
  • J'ai également changé toutes les occurrences de / en J'avais juste besoin de trouver/etc/environment` en utilisant Ubuntu 16.04 en regardant dans le stockage NTFS de Windows 10. Je l'ai trouvé ici :
C:\Users\USER_NAME\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc\LocalState\rootfs\etc\environment
  • J'ai changé /mnt/c/ en C:J'avais juste besoin de trouver/etc/environment` en utilisant Ubuntu 16.04 en regardant dans le stockage NTFS de Windows 10. Je l'ai trouvé ici :
C:\Users\USER_NAME\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc\LocalState\rootfs\etc\environment
  • J'ai changé /mnt/c/ en pour la nomenclature de Windows.
  • J'ai également changé toutes les occurrences de / en pour la même raison.
  • Vous devez remplacer USER_NAME par votre nom d'utilisateur Windows.
  • J'ai dû utiliser sudo -H Nautilus pour obtenir les permissions de visualiser les fichiers utilisateur stockés dans le WSL.
  • JAMAIS mettre à jour vos fichiers Linux en WSL en utilisant une application Windows. Cela corrompra vos données Linux.

Du côté de Linux (Ubuntu 16.04), la nomenclature serait :

$ 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