Domanda Dov'è la directory root del file system di Ubuntu in Windows Subsystem per Linux e viceversa?


Ho installato il sottosistema Ubuntu su Windows 10 (dopo aver abilitato la funzione nelle impostazioni), ma dov'è la directory root del file system Ubuntu che si trova nell'unità?


299
2018-04-21 10:06


origine


NOTARE CHE  Noi (la squadra WSL) FORTEMENTE raccomandare di NON spelettare nelle cartelle di dati distro di Linux ). Se lo fai, la perdita di dati e / o la corruzione è MOLTO probabile Stiamo lavorando per migliorare questo scenario di interoperabilità e annunceremo qualsiasi progresso sul nostro blog: blogs.msdn.microsoft.com/commandline - Rich Turner
@RichTurner Ho scoperto che c'è una ragione molto specifica (e fastidiosa): le politiche aziendali che contrassegnano la cartella .ssh con le autorizzazioni sbagliate ripetutamente significano la necessità di contrassegnare la struttura come "off limits" per gli script aziendali. Ma in generale - sarei d'accordo con te. - Danny Staple
Anche se sembra su scatole con aggiornamenti più recenti - questo non succede più. - Danny Staple
@DannyStaple Se è necessario modificare le autorizzazioni su file / cartelle nella distro Linux da Windows, utilizzare wsl.exe, per esempio. wsl chmod 600 ~/.ssh/id* - fare non copia i file in queste cartelle tramite il filesystem di Windows. - Rich Turner


risposte:


Per Ubuntu installato dallo store di Windows:

A ogni distribuzione installata tramite lo store viene installata   directory appdata dell'applicazione. Per esempio:    C:\Users\<username>\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState  - benhillis

Nelle precedenti iterazioni di Windows Subsystem per Linux, il file system di Ubuntu era in %localappdata%\Lxss (per esempio., C:\Users\Username\AppData\Local\Lxss - sostituisci il Nome utente con il tuo nome utente su Windows). Vedere il post del blog WSL sul supporto del file system:

Il file system principale utilizzato da WSL è VolFs. È usato per memorizzare il   File di sistema Linux, così come il contenuto della tua casa Linux   directory. Come tale, VolFs supporta la maggior parte delle funzionalità del VFS di Linux   fornisce, tra cui permessi Linux, collegamenti simbolici, FIFO, socket,   e file del dispositivo.

VolFs è usato per montare la directory radice VFS, usando    %LocalAppData%\lxss\rootfs come supporto di archiviazione. Inoltre, a   alcuni punti di montaggio VolF aggiuntivi esistono, in particolare /root e    /home che sono montati usando %LocalAppData%\lxss\root e    %LocalAppData%\lxss\home rispettivamente. La ragione di questi separati   monta è che quando si disinstalla WSL, le directory home non lo sono   rimosso per impostazione predefinita, quindi verranno memorizzati tutti i file personali memorizzati   conservato.

ATTENZIONE

La creazione / modifica di qualsiasi file all'interno del sottosistema Linux tramite applicazioni e strumenti Windows può causare la corruzione dei dati e la perdita di dati nel sottosistema Ubuntu! (Grazie a Rich Turner per aver suggerito queste parole di cautela!) Questo è assolutamente non supportato. Dallo stesso post del blog:

Interoperabilità con Windows

Mentre i file VolF sono archiviati in file normali su Windows in   le directory menzionate sopra, l'interoperabilità con Windows non lo è   supportato. Se viene aggiunto un nuovo file a una di queste directory   Windows, manca degli EA necessari a VolFs, quindi VolFs non sa cosa   fare con il file e semplicemente lo ignora. Molti editori lo faranno anche   spoglia gli EA quando salvi un file esistente, facendo di nuovo il file   inutilizzabile in WSL.


Il tuo file system di Windows si trova in /mnt/c nell'ambiente shell Bash.

enter image description here

Fonte: Il blog di Dustin Kirkland, howtogeek


322
2018-04-21 10:34



Lxss era nascosto nel mio file system ... causava un po 'di grattarsi la testa per un minuto o due esasperante. Ora ho creato una scorciatoia, ma non riesco ancora a scoprirlo. - Ogaday
@Ogaday non è possibile visualizzarlo utilizzando la finestra delle proprietà perché è contrassegnato come directory di sistema. Puoi renderlo visibile usando attrib -s -h lxss che lo deselezionerà anche come directory di sistema. - developerbmw
Sembra che la posizione sia cambiata o diversa tra i sistemi, in quanto la mia si trova in una posizione diversa. Ho postato qui sotto con la mia posizione. - NicholasJohn16
@souravc Potrebbe aggiungere una nota importante alla parte superiore della risposta, FORTEMENTE consigliare contro la creazione / modifica di qualsiasi file all'interno di LXSS utilizzando le app e gli strumenti di Windows: La corruzione e la perdita dei dati sono molto probabili se lo si fa! - Rich Turner
Si prega di leggere il post di cui sopra: blogs.msdn.microsoft.com/commandline/2016/11/17/.... È sicuro accedere al filesystem di Windows da WSL, motivo per cui montiamo le tue unità sotto /mnt/<drive>/, ma NON è sicuro (ancora) accedere al filesystem Linux da Windows, motivo per cui non forniamo un facile accesso ai file system della distro. - Rich Turner


Questo sembra essere cambiato da quando Bash è stato inizialmente introdotto, e non si applica alle distribuzioni da Windows Store, o forse non è coerente per tutti i sistemi poiché la mia home directory si trova in un'altra posizione:

%localappdata%\lxss\home\{username}

o:

C:\Users\{user}\AppData\Local\lxss\{username}

Dove {user} è il tuo nome utente di Windows e {username} è il tuo nome utente UNIX impostato durante l'installazione.

Quindi la directory radice sarebbe:

%localappdata%\lxss

Si noti che la directory root potrebbe non essere visibile in Esplora risorse da %localappdata% directory. Dovresti comunque accedervi comunque digitandolo nella 'barra degli indirizzi' di Explorer.


45
2017-08-10 18:35



La mia macchina non riesce a trovare: "C: \ Users \ {user} \ AppData \ Local \ Lxss \ {username}" o "% localappdata% \ Lxss \ home \ {username}" ma "C: \ Users \ {user } \ AppData \ Local \ lxss \ {username} "funziona. OSSIA usa "lxss" NOT "Lxss" - Joe Codeswell user601770
Il mio sistema ha la sottodirectory rootfs, ma rootfs / home è vuoto mentre ./home ha il mio account utente e file. Sembra più sicuro andare su% localappdata% \ lxss e poi esplorare da lì per vedere quale layout hai, oltre a navigare direttamente su quell'indirizzo evita problemi con la directory lxss che viene nascosta. - jla
@ JoeCodeswelluser601770 È strano. I filesystem di Windows normalmente non fanno distinzione tra maiuscole e minuscole. Posso inserire% localappdata% \ Lxss o% localappdata% \ lxss ed entrambi andare a% HOMEPATH% \ AppData \ Local \ lxss - jla
Si noti che questa cartella (lxss) non è stata visualizzata nel mio elenco di Windows Explorer delle cartelle in AppData \ Local, anche se la visualizzazione delle cartelle nascoste è abilitata. Ho dovuto incollare manualmente aggiungere la cartella lxss alla barra di Explorer per arrivare ai file qui, ad es. modifica la cartella "url" a lì - Colin D
In alternativa, puoi andare sul desktop, fare clic con il tasto destro del mouse su "New-> Shortcut" e incollare un percorso come C: \ Users \ yourname \ AppData \ Local \ lxss \ home \ yourname - Colin D


Se si installa Linux da MS Market:

hanno posizionato distribuzioni sotto:

$ cat /proc/registry/HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Lxss/\{861c29b4-ebe2-49a5-8a22-7e53a27934a0\}/BasePath
C:\Users\user\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState

Distro predefinita definita da:

bash# cat /proc/registry/HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Lxss/DefaultDistribution
{861c29b4-ebe2-49a5-8a22-7e53a27934a0}

La root di Linux è più profonda:

c:/Users/user/AppData/Local/Packages/46932SUSE.openSUSELeap42.2_022rs5jcyhyac/LocalState/rootfs

PS. Ho usato Cygwin per esplorare le chiavi di registro.

PPS. https://blogs.msdn.microsoft.com/commandline/2016/11/17/do-not-change-linux-files-using-windows-apps-and-tools/


9
2017-09-13 14:54





L'unica cosa che ha funzionato per me è stata %localappdata%\lxss\home\{username}, dove il {username} è il tuo nome utente BASH che hai fornito durante l'installazione. Per qualche motivo, dopo aver mostrato che lxss della cartella nascosta si rifiuta di apparire C:\Users\WINDOWS-USER\AppData\Local\e anche dando il massimo C:\ anche il percorso con windows e il nome utente di BASH non funzionano.

E per favore crea una scorciatoia sul desktop per ciò che funziona.


5
2018-06-09 17:02



wow buon consiglio, ha avuto lo stesso problema - Nicolas Mommaerts


È possibile aprire rapidamente Bash da una finestra Esplora file della cartella aperta digitando bash nella barra degli indirizzi.

È abbastanza.

Inoltre è possibile aggiungere una voce di menu contestuale. Personalmente non lo consiglio se non necessario, perché l'aggiunta di scorciatoie al menu contestuale utilizza più RAM.

https://www.howtogeek.com/270810/how-to-quickly-launch-a-bash-shell-from-windows-10s-file-explorer/


4
2018-02-21 20:19



Non funziona per me. Apre il prompt dei comandi e avvia bash. - blablatros
@blablatros sì ma nella cartella in bash in cui hai aperto explorer quando scrivi in ​​esploratore bar bash e premi invio. Prova nella cartella Documenti aperta la cartella Esplora risorse e nella barra degli indirizzi scrivi bash e aprirà Ubuntu bash già in quella cartella :) - Kangarooo
@Kangarooo: voglio accedere ai file attraverso il gui di Windows 10 e viceversa. Nella mia risposta sopra, ho scoperto come individuare la directory bash attraverso il file explorer di Windows 10, e così ho proceduto a copiare alcuni file dal mio disco rigido esterno in quella directory. Tuttavia, quando ho aperto il terminale bash e premuto ls -a, non ha mostrato i file che ho aggiunto. Bash non stava riconoscendo i file che ho scaricato tramite Windows File Explorer, che per me ha completamente vanificato lo scopo di installare bash su Windows. - thinksinbinary