Come accedere ai file Linux / Ubuntu da Windows 10 WSL?


72

Questa domanda risponde come accedere ai file Windows da Ubuntu Bash, ma come posso fare il contrario?

In particolare, devo accedere alla mia chiave SSH da Windows che si trova in /home/mark/.ssh/id_rsaBash.



(Ho suggerito di chiudere la domanda collegata di phuclv come dupa in ordine cronologico inverso poiché questa domanda è sia più generale che ha risposte molto migliori e più aggiornate.)
Bob,

Risposte:


26

Riga di comando di PM per Windows qui:

Aggiornato ottobre 2019 : aggiornamento della risposta di seguito per riflettere la nuova possibilità aggiunta di accedere direttamente ai file Linux delle distribuzioni tramite il server P9 recentemente integrato in Win10 1903 (e versioni successive) .

IMPORTANTE : eseguire lo spelunking attraverso il filesystem di Windows per accedere ai file Linux è e continuerà a non essere supportato e FORTEMENTE sconsigliato! Per capire perché, leggi questo post

Quindi come si accede ai file Linux usando gli strumenti di Windows (ad esempio blocco note, VS / VScode, ecc.)? In precedenza, non potevi, ma a partire da Windows 10 1903 (finalmente!) Esponiamo i filesystem delle tue distribuzioni a Windows tramite un file server P9. Abbiamo anche pubblicato un video approfondito su come funziona ! Puoi anche leggere un riepilogo di questa nuova funzionalità in questo post del blog

inserisci qui la descrizione dell'immagine

Non vedo l'ora di sapere come andare avanti con questa funzione. In caso di problemi, si prega di inoltrare i problemi sul repository GitHub WSL qui: https://github.com/Microsoft/wsl .


Signore, questa funzionalità del file server 9P è stabile per gli utenti normali? In caso contrario, potrebbe essere meglio aggiungere un avviso sull'utilizzo di build insider instabili. Molti utenti potrebbero non averne familiarità. Un fatto interessante però, la tua risposta contiene blog del 2016 e 2019, ~ 3 anni;)
Biswapriyo

Ooh, questa è una notizia eccitante !! Grazie per aver condiviso!
Aprire il

@ biswaprio.it è reso MOLTO chiaro nei passaggi manuali che uno deve completare per aderire al programma Insider che queste versioni sono letteralmente cadute settimanali della prossima versione di Windows in fase di creazione. E sì, il server 9P sarà stabile per gli utenti generici nella versione principale del sistema operativo in cui arriva. E sì, il fatto che ci sia voluto così tanto tempo per costruire e iniziare a fornire una soluzione decente qui dovrebbe darti un'idea di quanto sia difficile per il nostro piccolo team stabilire le priorità e progettare.
Richard Turner,

1
Ho provato questo comando da Ubuntu con ogni aggiornamento del mio sistema da quando ho sentito che è stato rilasciato. Il mio esploratore va sempre nella mia cartella Documenti. E non ho ancora scoperto i passaggi per "abilitare" questa funzione.
Axeman

3
Situazione simile a Axeman, quando eseguo explorer.exe .apre la cartella System32. @RichardTurner Dove sono i passaggi manuali?
Chris,

58

La posizione è stata effettivamente spostata nell'ultima versione in:

C:\Users\%USERNAME%\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\

Vedi questo problema GitHub da Microsoft / WSL # 2578

Come accennato nel problema sopra e nei commenti qui sotto, non scherzare con questi file dal sistema operativo Windows.

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


1
Grazie! Pensavo di impazzire mentre cercavo di seguire le vecchie istruzioni, non avevo nemmeno una cartella lxss.
Alex S,

1
Questa informazione è ancora vera? Non riesco a trovare tale cartella sul mio Windows 10.
Bruno Finger

6
Raccomandiamo vivamente di NON SPELUNKI NELLE CARTELLE DI RADICE DISTRO DA WINDOWS. Se lo fai, LA PERDITA DI DATI E / O LA CORRUZIONE È ALTAMENTE PROBABILE: Per favore leggi questo post per maggiori dettagli: blogs.msdn.microsoft.com/commandline/2016/11/17/…
Richard Turner

1
"Dubito che chiunque provi a manipolare o modificare i file in questo modo". Perché pensi che abbia gridato il consiglio sopra? Riceviamo notizie da persone diverse volte a settimana che hanno ignorato o non letto questo consiglio e finiscono per corrompere i file nelle loro cartelle principali. Diamine, ci sono strumenti che sostituiscono i tuoi file (beta) distro che spesso causano anche questo.
Richard Turner,

1
Ho sfogliato una cartella che avevo creato tramite Ubuntu WSL in Explorer e di conseguenza ha rotto irreversibilmente le autorizzazioni ... quindi sì, non consiglierei di farlo!
SamAndrew81

9

L'ho trovato cercando in tutto il mio disco C. I file sono qui:

C:\Users\<username>\AppData\Local\lxss

ad esempio, la mia chiave SSH è qui:

C:\Users\Mark\AppData\Local\lxss\home\mark\.ssh\id_rsa

2
Sembra che il percorso sia cambiato dall'aggiornamento ufficiale della FCU.
Briefkasten,

1
@Briefkasten Ho appena aggiornato a FCU e i miei file sono ancora lì. Creato un nuovo file sotto Bash solo per essere sicuro. Hai aggiornato WSL o qualcosa del genere?
Aprire il

2
@John D Il WSL si trova nella cartella del pacchetto in cui verrà installata l'app. Per me è: C: / Users / {username} /AppData/Local/Packages/CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc/LocalState/rootfs/ Cont. su github.com/Microsoft/WSL/issues/402#issuecomment-321853125
Briefkasten,

9

Sì, ma non è consigliabile manipolare quella cartella da Windows Explorer. Se vuoi copiare, spostare, modificare o cancellare i file dalla cartella lxss devi farlo all'interno di bash con gli strumenti da riga di comando. Solo i file che sono su / mnt / * sono veramente manipolabili da Windows Explorer.


1
Anche semplici file di testo? Quali sono le insidie?
Aprire l'

3
Ogni file che risiede in una cartella Volfs (come / home) ha Attributi estesi che memorizzano le autorizzazioni Linux di quel file. Se modifichi quel file su un editor di Windows, quegli attributi andranno persi e il file scomparirà da bash. Si può leggere di più qui: blogs.msdn.microsoft.com/wsl/2016/06/15/wsl-file-system-support
onoma

4
Sembra che dovrebbe essere un bug. Windows non dovrebbe darci accesso a quei file o darci accesso in sola lettura, oppure dovrebbero intercettare le chiamate di scrittura sui file linux e semplicemente non modificare gli attributi. Grazie per il consiglio. Volevo solo leggere i file, quindi spero che non sia un problema.
Aprire l'

5

In powershell, utilizzare

cd ${env:appdata}\..\local\packages\canonical*\localstate\rootfs

poi

ls

restituisce lo stesso elenco di cartelle di

ls / 

entro bash su WSL.


4

Come accennato in precedenza, i file [onoma] nelle directory WSL hanno attributi che sarebbero spariti se uno lo manipolasse utilizzando Explorer o l'editor di testo eseguito con il sistema Windows. La soluzione potrebbe essere quella di avviare ssh-server in WSL (potrebbe essere necessaria una reinstallazione) ascoltando localhost e quindi montando il filesystem WSL come unità usando, ad esempio, win-sshfs oppure puoi semplicemente usare il client Bitvise SSH per connetterti su ssh e manipolare i file dalla finestra sftp. L'argomento è stato parzialmente discusso qui: Come posso SSH in "Bash su Ubuntu su Windows 10"?


3

subst L: $env:LOCALAPPDATA\lxss (per PowerShell)

o subst L: %LocalAppData%\lxss(da cmd)

Questo mette il tuo filesystem-sottosistema Linux-root /sul tuo disco L : .

Puoi anche mappare solo la tua home directory o semplicemente colpire %LocalAppData%\lxssin una finestra di Explorer. Non provare a sfogliare L: \ mnt \ c o il tuo cervello potrebbe esplodere.


3
Bella soluzione! Per l'attuale Windows 10 è subst L: $ env: LOCALAPPDATA \ Packages \ CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc \ LocalState \ rootfs
Andreas M. Oberheim

3

Ho finalmente creato un modo per aprire explorer (e vscode) con il contesto della cartella corretto dall'interno di WSL: https://github.com/andymule/wslwin

Ad esempio, dopo aver installato questo, in Linux (WSL) dovresti solo cd /home/mark/.ssh/digitare explorere aprire Windows Explorer in quella posizione, qualunque esso sia.

EDIT: questa funzione è ora ufficialmente supportata in WSL e non dovresti più usare i miei script


2

Sono su Windows 10 Creators Update. Uso SFTP NetDrive per montare il filesystem WSL su Windows come unità di rete.

Ci sono alcune porte sshFS di Windows che raggiungeranno la stessa cosa.

Dovrai avviare il demone ssh tramite "sudo service ssh start"


Qual è il vantaggio di questo rispetto all'accesso diretto ai file?
mpen

Ai file sono allegati metadati che potrebbero andare persi quando si accede direttamente a applicazioni che non comprendono i metadati.
mlk,

0
\\wsl$\Ubuntu\home\user\whatever 

Nell'esploratore o nel widget Esegui (Cmd + R). Funziona come una normale condivisione di rete ed è sicuro manipolare i file.

Puoi anche mapparlo su un'unità o una cartella, proprio come qualsiasi altra condivisione di rete.

Nota: questa è una nuova funzionalità implementata in Windows 10 build 18342

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.