web-dev-qa-db-fra.com

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

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?

20

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.

22
jlliagre

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 en utilisant LxRunOffline ou une version quelconque de WSLDistroLauncher , le système de fichiers peut être situé dans n’importe quel dossier de votre ordinateur.

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
5
Jaime

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.

1
jesseyu

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.

1
PGP