Dove si trova il filesystem del sottosistema Linux in Windows 10?


22

È abbastanza chiaro che il filesystem "host" di Windows 10 è montato /mnt/c/dal punto di vista "Linux". Ma è possibile ottenere un accesso al filesystem "Linux" da Windows? In tal caso, dov'è?


Qual è l'output di mountuna bashshell?
DavidPostill

Questo non restituisce alcun indizio:rootfs on / type rootfs
Ci sono quattro luci

Hmm. Ok. Che dire cat /etc/fstab?
DavidPostill

No, sfortunatamente dal punto di vista di "Linux" sembra seduto su hardware:LABEL=cloudimg-rootfs / ext4 defaults 0 0
Ci sono quattro luci

OK. Nessuna altra idea.
DavidPostill

Risposte:


24

Il singolo file system radice si trovava qui fino all'aggiornamento di Windows 10 Fall Creators (rilasciato nell'ottobre 2017):

%LOCALAPPDATA%\Lxss\rootfs

Per esempio, C:\Users\Vigo\AppData\Local\Lxss\rootfs\

Altri punti di montaggio si trovano a un livello superiore nella lxssdirectory. Ad esempio, sarà presente la tua homedirectory all'interno di Linux %LOCALAPPDATA%\Lxss\home.

A partire dall'aggiornamento Fall Creators, è possibile installare più di un'istanza di Linux ed eseguirli in parallelo. L'istanza esistente (nota anche come legacy) rimarrà nella sua directory ma le nuove istanze create si trovano in:

% LOCALAPPDATA% \ Pacchetti \ <distribution_specific_name> _ <random_string> \ LocalState \ rootfs

Ad esempio, la mia installazione di Ubuntu 18.04 si trova sotto

CanonicalGroupLimited.Ubuntu18.04onWindows_ 79rhkp1fndgsc
directory.

Avvertenza : fare attenzione a non creare , modificare o eliminare i file che si trovano sotto l' albero lxss o la distribuzione specifica da Windows.

L'esplorazione e la lettura dei file è l'unica operazione innocua. Vedi questa pagina del blog di Microsoft per i dettagli.

Si noti che a partire dalla Build 1903, esiste un modo alternativo per accedere ai file di una distribuzione in esecuzione che non presenta i problemi menzionati in precedenza.

Basta usare il percorso \\wsl$\<distribution_specific_name>\e sarai in grado di creare e modificare file. L'AppData è ancora non è un modo supportato per accedere ai file con accumulo 1.903.


Era nascosto :)
Y2K,

Non riesco ad aggiungerlo ad Accesso rapido di Windows Explorer come segnalibro per trovarlo facilmente.
Giovanni,

4
Una versione neutra per l'utente che può essere copiata e incollata:%USERPROFILE%\AppData\Local\Lxss\rootfs
Silveri,

3
Avvertenza: secondo Microsoft, non dovresti modificare il tuo filesystem linux usando le applicazioni Windows. blogs.msdn.microsoft.com/commandline/2016/11/17/…
Korey,

1
Puoi semplificare molto la prima parte di quel percorso usando %LOCALAPPDATA%invece di%USERPROFILE%\AppData\Local
Herohtar il

8

Al giorno d'oggi, è possibile installare più distribuzioni Linux. Pertanto, ogni distribuzione avrà il proprio filesystem situato in una cartella diversa.

  • Se installi alcune distribuzioni di Linux dal Windows Store, i filesystem si trovano sotto %USERPROFILE%\AppData\Local\Packages\...\LocalState\rootfs
  • Se hai installato, spostato o duplicato una distribuzione linux usando LxRunOffline o una qualsiasi versione di WSLDistroLauncher , il filesystem può trovarsi in qualsiasi cartella del tuo computer.

Ottenere le informazioni dal registro

La posizione di ciascun filesystem può essere ottenuta dal registro di Windows. I dati si trovano sotto

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss

È possibile avviare una finestra di PowerShell ed eseguire il comando seguente per ottenere le posizioni dei filesystem

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

Otterrai una tabella con informazioni come le seguenti

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

Utilizzando lxRunOffline

LxRunOffline è uno strumento per la gestione delle distribuzioni di Linux installate su WSL. È possibile utilizzare LxRunOffline per ottenere la directory utilizzata da una distribuzione installata

# 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

2

Per WSL2 è possibile accedere alla home directory da Windows Explorer in questo modo:

\\wsl$

Mi dispiace essere in ritardo alla festa!


Questo dovrebbe essere aggiornato per essere la risposta corretta
getglad

1

La versione successiva del sottosistema Linux installa il file system in packagesmodo che il percorso completo sia simile a:

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

o:

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

... ovviamente a seconda del punto di montaggio. Fare una ricerca nella directory per .bashrcrivelare questi percorsi ...

In alternativa, utilizzare readlink .all'interno della shell Linux per pubblicare il percorso Linux corrente come percorso 'DOS' negli Appunti di Windows. Incolla un posto sensato per leggere il percorso fisico effettivo.


1

Sembra che Microsoft l'abbia modificato / nascosto un po 'di più, attualmente è su:

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

Dato che questo potrebbe cambiare ulteriormente in futuro, basta fare il suggerimento di PGP di fare una ricerca di file .profile o .bashrc.


1

Ho creato questo script che apre la cartella WLS in Explorer

cd C:\Users\Naotho Machida\AppData\Local\Packages\Canonical*\LocalState\rootfs\etc
explorer %cd%

basta salvarlo come yourScript.cmd ed eseguirlo

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.