O systemie plików zamontowanym na /mnt/c
- Czym dokładnie jest /mnt/c/Users/ w porównaniu do C:/Users? Wygląda na to, że są one jednym w tym samym - więc czym jest /mnt/c/?
W przeciwieństwie do Windows, Linux (i inne systemy oparte na Uniksie) używa pojedynczej struktury folderów, niezależnej od liczby posiadanych dysków. Jeśli masz wiele dysków, wszystkie te dyski muszą być montowane do struktury folderów w pewnym momencie.
- Zazwyczaj wszystkie dyski (inne niż te używane do uruchamiania systemu) są montowane w folderze o nazwie
/mnt
lub /media
WSL posiada specjalny typ systemu plików o nazwie DrvFS, który daje dostęp do dysków używanych w Windows. Możesz używać DrvFS do montowania nie tylko systemu plików windows, ale także dysków sieciowych i innych typów mediów.
- W WSL, domyślnie, dysk
C:
w windows jest montowany pod /mnt/c
- Jeśli masz inny dysk, na przykład dysk
D:
w windows, będzie on montowany pod /mnt/d
Pliki, które widzisz w /mnt/c
są takie same jak te, które masz w C:
. Jeśli zmodyfikujesz jakiś plik, zmiany pojawią się również w windowsie.
Możesz użyć polecenia mount
, aby uzyskać dostęp do innych typów nośników (np. dysków wymiennych lub udziałów sieciowych).
O lokalizacji /home/<username>
- Jak mogę przeglądać pliki w /home/ za pomocą Eksploratora plików Windows? Nie żebym kiedykolwiek chciał - po prostu staram się zorientować, jak Windows organizuje tę sprawę z podsystemem dla Linuksa.
W WSL, cały linuksowy system plików znajduje się pod folderem Windows. Lokalizacja folderu zależy od wersji Windows i dystrybucji WSL, której używasz.
- Wstępne wersje WSL przechowują system plików linuksowych w folderze
%LOCALAPPDATA%\Lxss\rootfs
- Dystrybucje WSL instalowane z Windows Store , począwszy od Windows Build 16215 (połowa 2017), używają folderu takiego jak
%LOCALAPPDATA%\Packages\...\LocalState\rootfs
. Nazwa pakietu różni się w zależności od dystrybucji (np. jest inna dla Ubuntu niż dla Debiana)
- Dystrybucje linuksowe instalowane za pomocą innych narzędzi , takich jak lxRunOffline lub WSL-DistroLauncher mogą przechowywać linuksowy system plików w dowolnej lokalizacji.
Możesz sprawdzić wiele opcji, aby poznać lokalizację folderu WSL . Na przykład, myślę, że najłatwiejszą opcją jest użycie lxRunOffline aby poznać folder instalacyjny.
## 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
Gdy już znasz lokalizację folderu instalacyjnego, /home/<username>
jest pod <installation folder>\rootfs\home\username
.
- Na przykład, jeśli twój folder instalacyjny jest
c:\wsl\ubuntu
/home/<username>
jest w c:\wsl\ubuntu\rootfs\home\username
UWAGA: Zarówno Linux jak i Windows przechowuje uprawnienia do plików w różny sposób. Obecnie WSL DrvFS przechowuje uprawnienia linuksowe jako strumienie (metadane) dołączone do plików, które można zobaczyć w Windows. Microsoft nie zaleca modyfikowania plików linuksowych za pomocą programów Windows. Jest możliwe, że niektóre aplikacje Windows uszkadzają uprawnienia linuksowe bez zauważenia tego.