web-dev-qa-db-fra.com

Quel est le répertoire de base sur le sous-système Windows pour Linux?

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

/mnt/c/Users/<username>

Lorsque je ls de ce répertoire, je vois les répertoires Desktop, Documents, etc. que je peux voir se trouvent dans C:\Users\<username> à l'aide de l'explorateur de fichiers Windows. Comme c’est là que le programme bash a commencé, j’espérais que ce serait mon répertoire personnel, mais lorsque je tape soit cd ou cd ~, je suis amené à

/home/<username>

qui contient mon fichier .bashrc, .profile etc. que je m'attendrais à trouver dans mon répertoire personnel dans une machine Linux. De plus, en entrant cd ../.. à partir de là, je peux voir les répertoires bin, etc et ainsi de suite, toujours comme prévu sur une machine Linux.

J'ai deux questions concernant tout cela:

  1. Qu'est-ce exactement que /mnt/c/Users/<username> par rapport à C:\Users\<username>? Il semble qu'ils soient un dans le même --- alors qu'est-ce que /mnt/c/?
  2. Comment afficher les fichiers dans /home/<username> à l'aide de l'explorateur de fichiers Windows? Je ne voudrais pas vraiment jamais… J'essaie simplement de comprendre comment Windows organise ce sous-système pour Linux.
52
bcf

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

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

Je suppose que les autres distributions seront dans un emplacement similaire sous leurs dossiers respectifs sous:

%LOCALAPPDATA%\Packages\
60
Michael Bond
  1. /mnt/c est exactement le même que C:\. C'est juste la syntaxe pour y accéder depuis WSL.
  2. Regardez dans C:\Users\<username>\AppData\Local\Lxss\rootfs.
20
Joseph Sible

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

  1. Qu'est-ce exactement que/mnt/c/Users/comparé à C:\Users \? Il semble qu'ils soient un dans le même --- alors qu'est-ce que/mnt/c /?

Contrairement à Windows, Linux (et les autres systèmes basés sur Unix) utilise une structure de dossier unique, indépendante du nombre de disques que vous avez. Si vous avez plusieurs disques, vous devez tous monter dans la structure de dossiers à un moment donné.

  • En règle générale, 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 également des disques réseau et d'autres types de supports.

  • Dans WSL, par défaut, le disque C: de 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 identiques à ceux que vous avez dans C:. Si vous modifiez un fichier, vous obtiendrez également les modifications dans les fenêtres.

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


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

  1. Comment afficher les fichiers dans/home/à l'aide de l'explorateur de fichiers Windows? Je ne voudrais pas vraiment jamais… J'essaie simplement de comprendre comment Windows organise ce sous-système pour Linux.

En WSL, tout le système de fichiers linux est situé dans 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 de 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), utilisez un dossier du type %LOCALAPPDATA%\Packages\...\LocalState\rootfs. Le nom du paquet varie en fonction de la distribution (par exemple, il est différent pour Ubuntu que pour Debian)
  • Les distributions Linux installées à l'aide d'autres outils , telles que lxRunOffline ou WSL-DistroLauncher peuvent stocker le système de fichiers Linux dans n'importe quel emplacement).

Vous pouvez vérifier plusieurs options pour connaître l'emplacement du dossier WSL . Par exemple, l'option la plus simple consiste à 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> se trouve sous <installation folder>\rootfs\home\username.

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

REMARQUE: Linux et Windows stockent les autorisations de fichiers de différentes manières. De nos jours, WSL DrvFS stocke les autorisations Linux sous forme de flux (métadonnées) attachés aux fichiers que vous pouvez voir dans Windows. Microsoft déconseille de modifier les fichiers linux à l'aide de programmes Windows. Il est possible que certaines applications Windows endommagent les permissions de linux sans le notifier).

14
Jaime

Je suppose que cela dépend de la version de Windows sur laquelle vous vous trouvez, mais pour moi, en 2018, sur Windows 10 Pro 64 bits, version 1709 (OS Build 16299.522) et 1803 (OS Build 17134.165) [une mise à jour de Windows a eu tapait ceci] l'emplacement est toujours:

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

Le truc, c'est que lorsque vous êtes à C:\Users\<username>\AppData\Local, vous ne verrez pas de dossier lxss (à moins que vous n'ayez coché la case "Masquer les fichiers protégés du système d'exploitation (recommandé)" dans les options de dossier).

Cependant, il suffit d’ajouter \lxss dans la barre d’adresse de l’explorateur Windows pour accéder au dossier.

(Remarque: j’avais pas _ un %LOCALAPPDATA%\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc ou quelque chose de similaire mentionné dans la réponse de Michael Bonds)

Mise à jour

Il se trouve qu’il existe un WSL hérité, que j’ai installé. Maintenant, WSL est fourni via une application de magasin Microsoft. Il existe des versions pour Ubuntu 18.04 LTS ainsi que quelques autres versions de Linux (par exemple, Debian). Si vous souhaitez être à jour, vous souhaiterez peut-être désinstaller WSL hérité et installer la version de la boutique Microsoft .

L’emplacement de votre dossier personnel dépend du type de WSL que vous avez installé.

5
User
  1. À l'aide de la console WSL bash, créez dans votre répertoire de base un fichier portant un nom spécifique quelconque, tel que "test_here.txt".
  2. Ensuite, à l'aide de l'explorateur Windows et du champ de recherche, recherchez le fichier test_here.txt.
  3. Sur le fichier trouvé> cliquez avec le bouton droit> Ouvrir l'emplacement du fichier.
4
Ellis

Quatre étapes pour que Windows 10 pro fixe votre menu Debian/Ubuntu/OpenSUSE $ HOME au menu Démarrer de Windows:

  1. Depuis le menu démarrer, lancez l'explorateur
  2. Dans la barre d'adresse (pas la barre de recherche), tapez% LOCALAPPDATA%.
  3. Dans la barre de recherche, cherchez votre nom de répertoire $ HOME, dans mon cas c’était ekenny. Il y aura environ 3 versions de cela, mais vous voulez celle avec un très long chemin.
  4. Cliquez avec le bouton droit sur votre répertoire personnel et cliquez sur "Épingler au début".

Vous avez maintenant votre répertoire personnel épinglé à votre menu de démarrage. J'ai essayé de créer un raccourci mais cela ne va nulle part intelligible.

1
Eamonn Kenny

Dans Bash, pour afficher le répertoire actuel dans l'Explorateur de fichiers Windows, entrez simplement:

Explorer .

Ne laissez pas le "." Cela ouvrira Windows Explorer dans le dossier en cours et vous pourrez voir où tout se trouve par rapport au reste de votre système Windows.

0
Gary Barrett