Sul filesystem montato su /mnt/c
- Cos'è esattamente /mnt/c/Users/ rispetto a C:Users\? Sembra che siano la stessa cosa - quindi cos'è /mnt/c/?
Al contrario di Windows, Linux (e gli altri sistemi basati su Unix) usano una singola struttura di cartelle indipendente dal numero di dischi che hai. Se hai più dischi, tutti questi dischi devono essere montati nella struttura di cartelle ad un certo punto.
- Tipicamente, tutti i dischi (diversi da quelli usati per avviare il sistema) sono montati in una cartella chiamata
/mnt
o /media
WSL ha un tipo speciale di filesystem chiamato DrvFS che ti dà accesso ai dischi usati in Windows. Puoi usare DrvFS per montare non solo il tuo filesystem di windows, ma anche i dischi di rete e altri tipi di media.
- In WSL, per default, il disco
C:
in windows è montato sotto /mnt/c
- Se hai un altro disco, per esempio un disco
D:
in windows, sarà montato sotto /mnt/d
I file che puoi vedere in /mnt/c
sono gli stessi che hai in C:
. Se modificate qualche file, otterrete le modifiche anche in Windows.
Puoi usare il comando mount
per accedere ad altri tipi di media (per esempio unità rimovibili o condivisioni di rete).
Sulla posizione di /home/<username>
- Come posso visualizzare i file in /home/ usando l'Esplora file di Windows? Non che io voglia davvero farlo– sto solo cercando di capire come Windows sta organizzando questa cosa del Subsystem for Linux.
In WSL, tutto il filesystem linux si trova sotto una cartella di Windows. La posizione della cartella dipende dalla versione di Windows e dalla distribuzione WSL che stai usando.
- Le versioni iniziali di WSL memorizzano il filesystem linux in
%LOCALAPPDATA%\Lxss\rootfs
- Le distribuzioni WSL installate dal Windows Store , a partire da Windows Build 16215 (metà del 2017), usano una cartella come
%LOCALAPPDATA%\Packages\...\LocalState\rootfs
. Il nome del pacchetto varia a seconda della distribuzione (ad esempio è diverso per Ubuntu che per Debian)
- Distribuzioni Linux installate utilizzando altri strumenti , come lxRunOffline o WSL-DistroLauncher possono memorizzare il filesystem linux in qualsiasi posizione.
Puoi controllare molte opzioni per conoscere la posizione della cartella WSL . Per esempio, penso che l'opzione più semplice sia usare lxRunOffline per conoscere la cartella di installazione.
## You can use lxrunoffline to check which WSL distributions have installed
## using: lxrunoffline list
C:\> lxrunoffline list
backup
Ubuntu-18.04
## And you can use it to get the location of any of these WSL installations
## using: lxrunoffline get-dir -n <name of distribution>
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
Una volta che conosci la posizione della cartella di installazione, la /home/<username>
è sotto <installation folder>\rootfs\home\username
.
- Per esempio, se la tua cartella di installazione è
c:\wsl\ubuntu
- lo
/home/<username>
è in c:\wsl\ubuntu\rootfs\home\username
NOTA: Sia Linux che Windows memorizzano i permessi dei file in modi diversi. Al giorno d'oggi, il WSL DrvFS memorizza i permessi di Linux come Streams (metadati) allegati ai file che puoi vedere in Windows. Microsoft non raccomanda di modificare i file linux usando programmi Windows. È possibile che alcune applicazioni Windows danneggino i permessi linux senza accorgersene.