Sobre o sistema de ficheiros montado em /mnt/c
- O que é exactamente /mnt/c/Users/ em comparação com C:\Users\? Parece que são um no mesmo… Então o que é /mnt/c/?
Em contraste com o Windows, Linux (e os outros sistemas baseados em Unix) utilizam uma única estrutura de pastas independente do número de discos que possuem. Se tiver vários discos, todos estes discos devem ser montados na estrutura de pastas em algum momento.
- Normalmente, todos os discos (diferentes dos utilizados para arrancar o sistema) são montados numa pasta chamada
/mnt
ou /media
WSL tem um tipo especial de sistema de ficheiros chamado DrvFS que lhe dá acesso aos discos utilizados no windows. Pode utilizar DrvFS para montar, não só o seu sistema de ficheiros windows, mas também discos de rede e outros tipos de suportes.
- Em WSL, por defeito, o disco
C:
no windows é montado sob /mnt/c
- Se tiver outro disco, por exemplo um disco
D:
no windows, será montado sob /mnt/d
Os ficheiros que pode ver em /mnt/c
são os mesmos que tem em C:
. Se modificar algum ficheiro, obterá também as alterações no windows.
Poderá usar o comando mount
para aceder a outros tipos de suportes (por exemplo unidades amovíveis ou partilhas de rede).
Sobre a localização de /home/<username>
- Como posso ver os ficheiros em /home/ usando o Explorador de Ficheiros do Windows? Não que eu realmente queira… Estou apenas a tentar ter uma ideia de como o Windows está a organizar este subsistema para Linux.
Em WSL, todo o sistema de ficheiros linux está localizado sob uma pasta Windows. A localização da pasta depende da versão do Windows e da distribuição WSL que está a utilizar.
- Versões iniciais da WSL armazenam o sistema de ficheiros linux em
%LOCALAPPDATA%\Lxss\rootfs
- ** Distribuições WSL instaladas a partir da Loja Windows** , a partir do Windows Build 16215 (meados de 2017), use uma pasta como
%LOCALAPPDATA%\Packages\...\LocalState\rootfs
. O nome do pacote varia dependendo da distribuição (por exemplo, é diferente para Ubuntu do que para Debian)
- Linux distribuições instaladas usando outras ferramentas , tais como lxRunOffline ou WSL-DistroLauncher pode armazenar o sistema de ficheiros linux em qualquer local.
Pode verificar muitas opções para saber a localização da pasta WSL . Por exemplo, penso que a opção mais fácil é utilizar lxRunOffline para conhecer a pasta de instalação.
## 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
Uma vez conhecida a localização da pasta de instalação, a /home/<username>
é inferior a <installation folder>\rootfs\home\username
.
- Por exemplo, se a sua pasta de instalação for
c:\wsl\ubuntu
- o
/home/<username>
está em c:\wsl\ubuntu\rootfs\home\username
NOTE: Tanto o Linux como o Windows armazenam as permissões de ficheiros de diferentes maneiras. Actualmente, o WSL DrvFS armazena as permissões do Linux como Streams (metadados) anexados aos ficheiros que se podem ver no Windows. A Microsoft não recomenda a modificação de ficheiros linux utilizando programas Windows. É possível que algumas aplicações Windows danifiquem as permissões do linux sem o notar.