Il est assez clair que le système de fichiers "hôte" 10 de Windows est monté à /mnt/c/
du point de vue de "Linux". Mais est-il possible d'avoir un accès au système de fichiers "Linux" à partir de Windows? Si oui, où est-il?
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 répertoire lxss
. Par exemple, votre propre répertoire home
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 (a.k.a. legacy) restera dans son répertoire, mais les nouvelles instances créées se trouvent sous:
% USERPROFILE%\AppData\Local\Packages \<nom_spécifique_distribution>_<chaîne_aléatoire>\ LocalState\rootfs
Par exemple, mon installation Ubuntu 18.04 est située sous le
CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc
Avertissement : veillez à ne pas créer , modifier ou supprimer les fichiers situés sous le lxss ou une arborescence spécifique à 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 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.
%USERPROFILE%\AppData\Local\Packages\...\LocalState\rootfs
Obtention des 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
Utilisation de 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
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.
La dernière version du sous-système linux installe le système de fichiers sous packages
de sorte que le chemin complet ressemble à ceci:
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 pour .bashrc
révélerait ces chemins ...
Vous pouvez également utiliser readlink .
dans 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.