Il est assez clair que le système de fichiers "host" de Windows 10 est monté à /mnt/c/
du point de vue de "Linux". Mais est-il possible d'accéder au système de fichiers "Linux" à partir de Windows? Si oui, où se trouve-t-il?
Réponses
Trop de publicités?Le système de fichiers racine unique était situé ici jusqu'à la mise à jour Fall Creators de Windows 10 (publiée en octobre 2017) :
%LOCALAPPDATA%\Lxss\rootfs
Par exemple, C:\Users\Vigo\AppData\Local\Lxss\rootfs\
D'autres points de montage se trouvent un niveau au-dessus dans le répertoire lxss
. Par exemple, votre propre répertoire home
dans Linux se trouvera dans %LOCALAPPDATA%\Lxss\home
.
À partir de la mise à jour Fall Creators, il est possible d'installer plus d'une instance de Linux et de les exécuter simultanément. L'instance existante (également appelée legacy) restera dans son répertoire mais les nouvelles instances créées seront situées sous :
%LOCALAPPDATA%\\Packages\\\_\\LocalState\\rootfs
Par exemple, mon installation Ubuntu 18.04 est située dans le répertoire
CanonicalGroupLimited.Ubuntu18.04onWindows\__79rhkp1fndgsc_.
Avertissement : Attention de ne pas créer, modifier ou supprimer des fichiers situés sous l'arborescence lxss ou spécifique à la distribution depuis Windows.
Explorer et lire des fichiers est la seule opération inoffensive. Consultez cette page de blog Microsoft pour plus de détails.
Notez qu'à partir de la version 1903, il existe une manière alternative 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.
Il suffit d'utiliser le chemin \\wsl$\\
et vous pourrez créer et modifier des fichiers. L'AppData n'est toujours pas un moyen pris en charge pour accéder aux fichiers avec la version 1903.
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 certaines distributions Linux à partir du Windows Store, les systèmes de fichiers sont situés sous
%USERPROFILE%\AppData\Local\Packages\...\LocalState\rootfs
- Si vous avez installé, déplacé ou dupliqué une distribution Linux en utilisant LxRunOffline ou une version du WSLDistroLauncher, le système de fichiers peut se trouver dans n'importe quel dossier de votre ordinateur.
Obtention des informations depuis le Registre
L'emplacement de chaque système de fichiers peut être obtenu depuis le Registre de Windows. Les données sont situées sous
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss
Vous pouvez ouvrir 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 des informations comme celles-ci
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
Utilisation de lxRunOffline
LxRunOffline est un outil pour gérer les 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
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
La version ultérieure du sous-système linux installe le système de fichiers sous packages
donc le chemin complet ressemblerait à quelque chose comme :
C:\Users\monNomDUtilisateur\AppData\Local\Packages\UbuntuLinux.someUID\LocalState\rootfs\root
ou :
C:\Users\monNomDUtilisateur\AppData\Local\Packages\UbuntuLinux.someUID\LocalState\rootfs\home\monNomDUtilisateurLinux
... dépendant bien sûr du point de montage. Faire une recherche de répertoire pour .bashrc
révélerait ces chemins...
Alternativement, utilisez readlink .
à l'intérieur du shell linux pour afficher le chemin actuel de linux comme un chemin 'DOS' vers le presse-papiers de Windows. Collez-le quelque part de manière sensée pour lire le chemin physique réel.