Où se trouve le système de fichiers du sous-système Linux dans Windows 10?

21

Il est clair que le système de fichiers "hôte" de Windows "10" est monté dans la /mnt/c/perspective "Linux". Mais est-il possible d'avoir un accès au système de fichiers "Linux" à partir de Windows? Si oui, où est-il?

Il y a quatre lumières
la source
Quelle est la sortie d' mountun bashshell?
DavidPostill
Cela ne donne aucun indice:rootfs on / type rootfs
Il y a quatre lumières
Hmm. D'accord. Qu'en est- il cat /etc/fstab?
DavidPostill
Non, malheureusement du point de vue "linux", il semble assis sur du matériel:LABEL=cloudimg-rootfs / ext4 defaults 0 0
Il y a quatre lumières
D'ACCORD. Pas d'autres idées.
DavidPostill

Réponses:

24

Le système de fichiers racine unique était situé ici jusqu'à la mise à jour de Windows 10 Fall Creators (publiée en octobre 2017):

%USERPROFILE%\AppData\Local\Lxss\rootfs

Par exemple, C:\Users\Vigo\AppData\Local\Lxss\rootfs\

Les autres points de montage sont situés à un niveau supérieur dans le lxssrépertoire. Par exemple, votre propre homerépertoire sous Linux sera dans %USERPROFILE%\AppData\Local\Lxss\home.

À partir de la mise à jour de Fall Creators, il est possible d’installer plusieurs instances de Linux et de les exécuter en parallèle. L'instance existante (ou héritée) restera dans son répertoire mais les nouvelles instances créées se trouvent sous:

% USERPROFILE% \ AppData \ Local \ Packages \ <distribution_specific_name> _ <random_string> \ LocalState \ rootfs

Par exemple, mon installation Ubuntu 18.04 est située sous le

CanonicalGroupLimited.Ubuntu18.04onWindows_ 79rhkp1fndgsc
annuaire.

Avertissement : Veillez à ne pas créer , modifier ou supprimer des fichiers situés sous l’ arborescence spécifique à lxss ou à la distribution de Windows.

Explorer et lire des fichiers est la seule opération inoffensive. Voir cette page de blog Microsoft pour plus de détails.

Notez qu'à partir de la version 1903, il existe un autre moyen d'accéder aux fichiers d'une distribution en cours d'exécution qui ne présente pas les problèmes mentionnés précédemment.

Utilisez simplement le chemin \\wsl$\<distribution_specific_name>\et vous pourrez créer et modifier des fichiers. AppData n'est toujours pas un moyen pris en charge pour accéder aux fichiers avec la version 1903.

jlliagre
la source
C'était caché :)
Y2K
Je ne peux pas l'ajouter à l'accès rapide de l'Explorateur Windows en tant que signet pour le trouver facilement.
john
4
Une version copier-coller %USERPROFILE%\AppData\Local\Lxss\rootfs
utilisable par l'utilisateur
3
Avertissement: selon Microsoft, vous ne devez pas modifier votre système de fichiers Linux à l'aide d'applications Windows. blogs.msdn.microsoft.com/commandline/2016/11/17/…
Korey
@ Korey Merci d'avoir rappelé ce point, réponse mise à jour.
Juillet
8

De nos jours, vous pouvez installer plusieurs distributions Linux. Par conséquent, chaque distribution aura son propre système de fichiers situé dans un dossier différent.

  • Si vous installez des distributions Linux à partir du Windows Store, les systèmes de fichiers se trouvent sous %USERPROFILE%\AppData\Local\Packages\...\LocalState\rootfs
  • Si vous avez installé, déplacé ou dupliqué une distribution Linux à l'aide de LxRunOffline ou de toute version de WSLDistroLauncher , le système de fichiers peut être situé dans n'importe quel dossier de votre ordinateur.

Obtenir les informations du registre

L'emplacement de chaque système de fichiers peut être obtenu à partir du registre Windows. Les données sont situées sous

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss

Vous pouvez démarrer une fenêtre PowerShell et exécuter la commande suivante pour obtenir les emplacements des systèmes de fichiers.

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

Vous obtiendrez un tableau avec les informations suivantes:

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

Utiliser lxRunOffline

LxRunOffline est un outil de gestion des distributions Linux installées sur WSL. Vous pouvez utiliser LxRunOffline pour obtenir le répertoire utilisé par une distribution installée.

# 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
la source
1

La version ultérieure du sous-système linux installe le système de fichiers sous packagesle chemin complet

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

ou:

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

... dépendant bien sûr du point de montage. Faire une recherche dans le répertoire .bashrcrévélerait ces chemins ...

Vous pouvez également utiliser readlink .le shell Linux pour publier le chemin d'accès Linux actuel en tant que chemin «DOS» vers le presse-papiers de Windows. Collez un endroit sensé pour lire le chemin physique réel.

PGP
la source
1

On dirait que Microsoft a changé / caché un peu plus, actuellement c'est à:

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

Comme cela pourrait changer à l'avenir, il suffit de faire la suggestion de PGP d'effectuer une recherche dans les fichiers .profile ou .bashrc.

Jesseyu
la source