Vraag Waar is de hoofdmap van het Ubuntu-bestandssysteem in Windows Subsystem for Linux en vice versa?


Ik heb het Ubuntu-subsysteem geïnstalleerd op Windows 10 (na het inschakelen van de functie in de instellingen), maar waar bevindt de rootdirectory van het Ubuntu-bestandssysteem zich in het station?


299
2018-04-21 10:06


oorsprong


HOUD ER REKENING MEE DAT  Wij (het WSL-team) STERKT u ten zeerste aan om NIET in de Linux distro-datamappen te spelen ). Als u dat doet, is gegevensverlies en / of corruptie ZEER waarschijnlijk. We werken aan de verbetering van dit interop-scenario en zullen elke voortgang op onze blog melden: blogs.msdn.microsoft.com/commandline - Rich Turner
@RichTurner Ik heb gemerkt dat er een zeer specifieke (en vervelende) reden is - het bedrijfsbeleid dat de map .ssh met de verkeerde machtigingen markeert, betekent herhaaldelijk dat de structuur moet worden gemarkeerd als "off limits" voor de bedrijfsscripts. Maar over het algemeen - ik ben het met je eens. - Danny Staple
Hoewel het lijkt op dozen met meer recente updates, gebeurt dit niet meer. - Danny Staple
@DannyStaple Als u de rechten op bestanden / mappen in uw Linux-distro van Windows moet wijzigen, gebruikt u wsl.exeb.v. wsl chmod 600 ~/.ssh/id* - doen niet kopieer bestanden naar deze mappen via het Windows-bestandssysteem. - Rich Turner


antwoorden:


Voor Ubuntu geïnstalleerd vanuit de Windows Store:

Elke distributie die u via de winkel installeert, wordt daarop geïnstalleerd   applicatie appdata map. Bijvoorbeeld:    C:\Users\<username>\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState  - benhillis

In eerdere versies van Windows Subsystem for Linux was het Ubuntu-bestandssysteem aanwezig %localappdata%\Lxss (B.v. C:\Users\Username\AppData\Local\Lxss - vervang de Gebruikersnaam met uw gebruikersnaam op Windows). Zien het WSL-blogbericht over ondersteuning voor bestandssysteem:

Het primaire bestandssysteem dat wordt gebruikt door WSL is VolF's. Het wordt gebruikt om de   Linux systeembestanden, evenals de inhoud van je Linux-thuis   directory. Als zodanig ondersteunt VolF's de meeste functies van de Linux VFS   biedt, inclusief Linux-machtigingen, symbolische koppelingen, FIFO's, sockets,   en apparaatbestanden.

VolFs wordt gebruikt om de VFS-hoofdmap te koppelen, met behulp van    %LocalAppData%\lxss\rootfs als back-upopslag. Bovendien, een   er zijn maar een paar extra VolF-mountpunten, met name /root en    /home die zijn gemount met %LocalAppData%\lxss\root en    %LocalAppData%\lxss\home respectievelijk. De reden voor deze gescheiden   mounts is dat wanneer u WSL verwijdert, de thuismappen dat niet zijn   standaard verwijderd, dus alle persoonlijke bestanden die daar zijn opgeslagen   bewaard gebleven.

VOORZICHTIGHEID

Het maken / wijzigen van bestanden binnen het Linux-subsysteem met behulp van Windows-apps en -tools kan gegevensbeschadiging en gegevensverlies veroorzaken in het Ubuntu-subsysteem! (Dankzij Rich Turner voor het suggereren van deze woorden van voorzichtigheid!) Dit is absoluut niet ondersteund. Van dezelfde blogpost:

Interoperabiliteit met Windows

Terwijl VolFs-bestanden worden opgeslagen in reguliere bestanden op Windows in de   hierboven genoemde mappen, is interoperabiliteit met Windows dat niet   ondersteund. Als een nieuw bestand is toegevoegd aan een van deze mappen uit   Windows, het mist de EA's die nodig zijn voor VolF's, dus VolF's weet niet wat   te maken met het bestand en negeert het gewoon. Veel editors zullen dat ook doen   strip de EA's bij het opslaan van een bestaand bestand, en maak opnieuw het bestand   onbruikbaar in WSL.


Uw Windows-bestandssysteem bevindt zich op /mnt/c in de Bash-shell-omgeving.

enter image description here

Bron: Het blog van Dustin Kirkland, howtogeek


322
2018-04-21 10:34



Lxss was verborgen in mijn bestandssysteem ... veroorzaakte een beetje hoofd krabben voor een beangstigende minuut of twee. Nu heb ik een snelkoppeling gemaakt, maar ik kan het nog steeds niet zichtbaar maken. - Ogaday
@ Ogaday je kunt het niet zichtbaar maken met behulp van het eigenschappenvenster omdat het is gemarkeerd als een systeemdirectory. Je kunt het zichtbaar maken met attrib -s -h lxss die het ook als een systeemmap zal opheffen. - developerbmw
Het lijkt erop dat de locatie tussen systemen is veranderd of anders, omdat de mijne zich op een andere locatie bevindt. Ik heb hieronder gepost met mijn locatie. - NicholasJohn16
@souravc Kunt u alsjeblieft een belangrijke opmerking toevoegen aan de bovenkant van uw antwoord, STERK aanbevelen tegen het maken / wijzigen van bestanden binnen LXSS met behulp van Windows-apps en -tools: Gegevensbeschadiging en verlies is zeer waarschijnlijk als u dat doet! - Rich Turner
Lees het bericht hierboven vermeld: blogs.msdn.microsoft.com/commandline/2016/11/17/.... Het is veilig om vanuit WSL toegang te krijgen tot het Windows-bestandssysteem, daarom koppelen we je schijven aan /mnt/<drive>/, maar is (nog) NIET veilig om toegang te krijgen tot het Linux-bestandssysteem van Windows, daarom bieden we geen gemakkelijke toegang tot de distro-bestandssystemen. - Rich Turner


Dit lijkt te zijn veranderd sinds Bash oorspronkelijk werd geïntroduceerd en is niet van toepassing op distributies uit de Windows Store, of misschien is het niet consistent voor alle systemen omdat mijn thuismap zich op een andere locatie bevindt:

%localappdata%\lxss\home\{username}

of:

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

Waar {user} is uw Windows-gebruikersnaam en {username} is uw UNIX-gebruikersnaam ingesteld tijdens installatie.

Dus de hoofdmap zou zijn:

%localappdata%\lxss

Merk op dat de hoofdmap misschien niet zichtbaar is in Windows Verkenner vanaf de %localappdata% directory. Je zou het toch moeten kunnen openen door het in de 'adresbalk' van Explorer te typen.


45
2017-08-10 18:35



Mijn machine kan het volgende niet vinden: "C: \ Users \ {user} \ AppData \ Local \ Lxss \ {username}" of "% localappdata% \ Lxss \ home \ {username}" maar "C: \ Users \ {user } \ AppData \ Local \ lxss \ {username} "werkt. D.W.Z. gebruik "lxss" NIET "Lxss" - Joe Codeswell user601770
Mijn systeem heeft de rootfs-submap, maar rootfs / home is leeg terwijl ./home mijn gebruikersaccount en bestanden heeft. Het lijkt het veiligst om gewoon naar% localappdata% \ lxss te gaan en dan van daaruit te verkennen om te zien welke lay-out je hebt, en door direct naar dat adres te bladeren vermijd je dat de lxss-directory wordt verborgen. - jla
@ JoeCodeswelluser601770 Dat is raar. Windows-bestandssystemen zijn normaal gesproken hoofdlettergevoelig. Ik kan% localappdata% \ Lxss of% localappdata% \ lxss invoeren en beide gaan naar% HOMEPATH% \ AppData \ Local \ lxss - jla
Merk op dat deze map (lxss) niet in mijn Windows Verkenner-lijst van mappen in AppData \ Local verscheen, zelfs met weergave van verborgen mappen ingeschakeld. Ik moest handmatig de map lxss toevoegen aan de verkennerbalk om de bestanden hier te bereiken, bijvoorbeeld bewerk de map "url" daar - Colin D
U kunt ook naar het bureaublad gaan, met de rechtermuisknop op "Nieuw-> Snelkoppeling" klikken en een pad zoals C: \ Users \ uwnaam \ AppData \ Local \ lxss \ home \ yourname plakken - Colin D


Als u Linux van MS Market installeert:

ze plaatsten distro's onder:

$ 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

Standaard distro gedefinieerd door:

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

Linux root is dieper:

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

PS. Ik heb Cygwin gebruikt om registersleutels te onderzoeken.

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





Het enige dat voor mij werkte was %localappdata%\lxss\home\{username}, waar de {username} is je BASH-gebruikersnaam die je hebt opgegeven tijdens de installatie. Om de een of andere reden weigert het tonen van het lxss van de verborgen map C:\Users\WINDOWS-USER\AppData\Local\en ook het volle geven C:\ pad met windows en BASH-gebruikersnaam werkt ook niet.

En maak een snelkoppeling op je bureaublad voor wat werkt.


5
2018-06-09 17:02



wow goede tip, had hetzelfde probleem - Nicolas Mommaerts


Je kunt Bash snel openen vanuit een Verkenner-venster van de geopende map door te typen bash in de locatiebalk.

Het is genoeg.

U kunt ook een contextmenu-item toevoegen. Ik raad het persoonlijk niet aan als het niet nodig is, omdat het toevoegen van snelkoppelingen naar het contextmenu meer RAM gebruikt.

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


4
2018-02-21 20:19



Werkt niet voor mij. Het opent opdrachtprompt en start bash. - blablatros
@blablatros yes maar in map in bash waarin je de verkenner open had staan ​​tijdens het schrijven in verkennerbar bash en op enter drukte. Probeer in de map Mijn documenten de map Windows Verkenner te openen en in de locatiebalk schrijf bash en het zal ubuntu bash in die map al openen :) - Kangarooo
@Kangarooo: ik wil toegang krijgen tot de bestanden via de windows 10 gui en vice versa. In mijn antwoord hierboven, ontdekte ik hoe ik de bash-map kon lokaliseren via de verkenner van Windows 10-bestanden, en dus ging ik door met het kopiëren van enkele bestanden van mijn externe harde schijf naar die map. Toen ik echter de bash-terminal opende en drukte ls -a, het heeft de bestanden die ik heb toegevoegd niet getoond. Bash herkende de bestanden die ik liet vallen niet via Windows file explorer, wat voor mij volledig het doel van het installeren van bash op windows heeft verslagen. - thinksinbinary