Ubuntu dosya sistemi kök dizini, Linux için Windows Alt Sisteminde ve bunun tersi nerededir?


389

Ubuntu alt sistemini Windows 10'a yükledim (ayarlarda özelliği etkinleştirdikten sonra), fakat sürücüde Ubuntu dosya sistemi kök dizini nerede bulunur?


24
LÜTFEN DİKKAT Biz (WSL ekibi) , Linux dağıtım veri klasörlerine SIKIŞMAYINIZI GÜÇLENDİRMEYİNİ öneririz ). Bunu yaparsanız, veri kaybı ve / veya bozulma ÇOK olasıdır Bu birlikte çalışma senaryosunu iyileştirmek için çalışıyoruz ve blogumuzdaki herhangi bir ilerlemeyi açıklayacağız: blogs.msdn.microsoft.com/commandline
Rich Turner

@RichTurner Çok özel (ve sinir bozucu) bir sebep olduğunu gördüm - .ssh klasörünü yanlış izinlerle tekrar tekrar işaretleyen şirket politikaları, yapıyı şirket komut dosyalarına "sınırsız" olarak işaretleme gereği duyuyor. Ama genel olarak - sana katılıyorum.
Danny Staple

Son güncellemeleri olan kutulara benzese de - bu artık gerçekleşmiyor.
Danny Staple

2
@DannyStaple Windows, kullanımdan Linux dağıtımı dosya / klasör izinlerini değiştirmeniz gerekirse wsl.exe, örneğin wsl chmod 600 ~/.ssh/id*- do not , Windows dosya sistemi üzerinden bu klasörlere dosyaları kopyalamak.
Zengin Turner,

@RichTurner: Neden NTFS meta verilerini tünelediğiniz gibi Linux meta verilerini neden tünellemiyorsunuz?
Mehrdad

Yanıtlar:


421

Windows mağazasından yüklenmiş Ubuntu için:

Mağaza aracılığıyla yüklediğiniz her dağıtım, bu uygulamanın appdata dizinine yüklenir. Örneğin: C:\Users\<username>\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState - benhillis

Linux, Windows Subsystem önceki tekrarlamalar yılında Ubuntu dosya sistemi idi %localappdata%\Lxss(örn C:\Users\Username\AppData\Local\Lxss- değiştirin Kullanıcı Adı Windows üzerinde adı ile). Dosya Sistemi Desteği'ndeki WSL blog gönderisine bakın :

WSL tarafından kullanılan birincil dosya sistemi VolF'lerdir. Linux sistem dosyalarının yanı sıra Linux ana dizininizin içeriğini de depolamak için kullanılır. Bu nedenle VolF'ler, Linux izinlerinin, sembolik bağların, FIFO'ların, soketlerin ve cihaz dosyalarının dahil olduğu Linux VFS'nin sağladığı çoğu özelliği destekler.

VolF'ler, VFS kök dizinini, %LocalAppData%\lxss\rootfsyedek depolama olarak kullanmak için bağlamak için kullanılır . Buna ek olarak, birkaç ek Volfs en önemlisi, puan var montaj /rootve /homehangi kullanılarak monte edilir %LocalAppData%\lxss\rootve %LocalAppData%\lxss\homesırasıyla. Bu ayrı bağların nedeni, WSL'yi kaldırdığınızda, giriş dizinlerinin varsayılan olarak kaldırılmaması, bu nedenle orada saklanan tüm kişisel dosyaların korunmasıdır.

UYARMAK, İHTAR ETMEK, DİKKAT ÇEKMEK

Linux alt sistemindeki herhangi bir dosyayı Windows uygulamaları ve araçları kullanarak oluşturma / değiştirme, Ubuntu alt sisteminde veri bozulmasına ve veri kaybına neden olabilir! (Sayesinde Zengin Turner Bu uyarıları öneren!) Bu tamamen bir değil destekledi. Aynı blog gönderisinden:

Windows ile birlikte çalışabilirlik

VolF dosyaları düzenli olarak Windows'ta yukarıda belirtilen dizinlerde saklanırken, Windows ile birlikte çalışabilirlik desteklenmemektedir. Windows'tan bu dizinlerden birine yeni bir dosya eklenirse, VolF'ler tarafından ihtiyaç duyulan EA'lardan yoksundur, bu nedenle VolF'ler dosya ile ne yapılacağını bilmez ve dosyayı yok sayar. Birçok düzenleyici, mevcut bir dosyayı kaydederken EA'ları da soracak ve bu dosyayı tekrar WSL'de kullanılamaz hale getirecektir.


Windows dosya sisteminiz /mnt/cBash kabuk ortamında bulunur.

görüntü tanımını buraya girin

Kaynak: Dustin Kirkland'ın blogu , howtogeek


14
Lxss dosya sistemime gizlendi ... çılgınca bir iki dakika boyunca kafa çizilmeye neden oldu. Şimdi bir kısayol oluşturdum, fakat hala göstermiyor gibi görünmüyorum.
Ogaday

3
@Ogaday, bir sistem dizini olarak işaretlendiğinden, özellikler penceresini kullanarak gösterme işlemini kaldıramazsınız. attrib -s -h lxssAyrıca bir sistem dizini olarak işaretini kaldıracak kullanarak da gösterebilirsiniz .
developerbmw

3
Maden farklı bir konumdayken, yer değişmiş veya sistemler arasında farklı gibi görünüyor. Konumum ile aşağıya gönderdim.
NicholasJohn16

8
@souravc Lütfen cevabınızın üstüne önemli bir not ekleyebilir misiniz, Windows uygulamaları ve araçlarını kullanarak LXSS içinde herhangi bir dosya oluşturmaya / değiştirmeye karşı şiddetle tavsiye ederiz: Yaparsanız veri bozulma ve kaybı çok muhtemeldir!
Zengin Turner,

5
Lütfen yukarıda belirtilen yazıyı okuyun: blogs.msdn.microsoft.com/commandline/2016/11/17/… . Windows dosya sistemine WSL'den erişmek güvenlidir; bu nedenle sürücülerinizi altına monte ediyoruz /mnt/<drive>/, ancak Windows'tan Linux dosya sistemine erişmek için güvenli DEĞİLDİR, bu yüzden dağıtım dosya sistemlerine kolay erişim sağlayamıyoruz.
Zengin Turner,

51

Bash başlangıçta tanıtıldığından bu yana değişmiş görünüyor ve Windows Mağazasından yapılan dağıtımlar için geçerli değil veya belki de ana dizim başka bir yerde bulunduğundan tüm sistemler için tutarlı değil:

%localappdata%\lxss\home\{username}

veya:

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

{user}Windows Kullanıcı Adınız nerede ve {username}kurulum sırasında ayarlanan UNIX Kullanıcı Adınız.

Böylece kök dizini şöyle olacaktır:

%localappdata%\lxss

Kök dizinin, Windows Gezgini'nde dizinden görünmeyebileceğini unutmayın %localappdata%. Her zaman Explorer'ın 'adres çubuğuna' yazarak erişebilmeniz gerekir.


Makinem bulamıyor: "C: \ Users \ {kullanıcı} \ AppData \ Local \ Lxss \ {username}" veya "% localappdata% \ Lxss \ home \ {username}" ama "C: \ Users \ {user } \ AppData \ Local \ lxss \ {username} "çalışıyor. IE kullanmak "lxss" DEĞİL "Lxss"
Joe Codeswell user601770 17:16

Sistemimin rootfs alt dizini var, fakat rootfs / home boşken ./home kullanıcı hesabıma ve dosyalara sahip. Sadece% localappdata% \ lxss konumuna gidip hangi yerleşime sahip olduğunuzu görmek için etrafı araştırmak ve bu adrese doğrudan göz atmak lxss dizininin gizlenmesini engeller.
jla

1
@ JoeCodeswelluser601770 Bu garip. Windows dosya sistemleri normalde büyük / küçük harf duyarsızdır. % Localappdata% \ Lxss veya% localappdata% \ lxss girebilir ve her ikisi de% HOMEPATH% \ AppData \ Local \ lxss
jla

8
Bu klasörün (lxss) Windows Explorer’da AppData \ Local içindeki klasörleri listelediğini, hatta gizli klasör görünümü etkin olsa da görünmediğini unutmayın. Buraya dosyalara ulaşmak için tarayıcı çubuğuna lxss klasörünü el ile yapıştırmak zorunda kaldım, örneğin orada "url" klasörünü düzenleyin
Colin D

Alternatif olarak, Masaüstüne gidip, "Yeni-> Kısayol" u sağ tıklayıp C: \ Users \ adınız \ AppData \ Local \ lxss \ home \ adınız gibi bir yolu yapıştırabilirsiniz
Colin D

13

Linux'u MS Market'ten yüklüyorsanız:

dağıtımı altına aldılar:

$ 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

Varsayılan dağıtım şu şekilde tanımlanır:

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

Linux kökü daha derin:

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

PS. Cygwin'i kayıt defteri anahtarlarını keşfetmek için kullandım.

Aynı amaç için PowerShell kullanıyorsanız, komutlar şöyle olacaktır:

# obtain the value of the ID of the default Linux distribution (and store it in a variable to avoid escaping characters issues):
$DEFAULT_LXSS_ID = (Get-ItemPropertyValue -Path REGISTRY::HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss\ -name DefaultDistribution)

# which will have a value like:
echo  $DEFAULT_LXSS_ID
{bde539d6-0c87-4e12-9599-1dcd623fbf07}

# display the directory containing the rootfs Windows directory (mapped to the / Linux directory)
Get-ItemPropertyValue -Path REGISTRY::HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss\$DEFAULT_LXSS_ID -name BasePath | Format-List -property "BasePath"
%LocalAppData%\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState

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


5

Benim için çalışan tek şey , kurulum sırasında verdiğiniz BASH kullanıcı adınızın %localappdata%\lxss\home\{username}olduğu yerdi {username}. Herhangi bir nedenle, gizli klasörün gösterilmesinden sonra lxss görünmeyi reddediyor C:\Users\WINDOWS-USER\AppData\Local\ve ayrıca tam C:\yolunu pencereler ve BASH kullanıcı adıyla vermek de çalışmıyor.

Ve lütfen neyin işe yaradığını görmek için bir masaüstü kısayolu oluşturun.


vay iyi ipucu, aynı problem vardı
Nicolas Mommaerts

4

bashKonum çubuğuna yazarak Bash'i açılan klasörün Dosya Gezgini penceresinden hızlı bir şekilde açabilirsiniz .

Yeter.

Ayrıca bir bağlam menüsü öğesi ekleyebilirsiniz. Gerekmediği takdirde şahsen tavsiye etmiyorum, çünkü bağlam menüsüne kısayollar eklemek daha fazla RAM kullanıyor.

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


Benim için çalışmıyor. Komut istemini açar ve bash'ı başlatır.
blablatros

@blablatros evet ama cadıdaki bash klasöründe explorer bar bash yazarken ve enter tuşuna basarken explorer açtın. Belgelerim klasöründe deneyin Windows Gezgini klasörünü açtı ve konum çubuğunda bash yazdı ve zaten bu klasörde ubuntu bash açacak :)
Kangarooo

1
@ Kangarooo: Dosyalara Windows 10 gui ve bunun tersi yönde erişmek istiyorum. Yukarıdaki cevabımda, Windows 10 dosya gezgini üzerinden bash dizinini nasıl bulacağımı öğrendim ve bu yüzden bazı dosyaları harici sabit diskimden bu dizine kopyalamaya başladım. Ancak bash terminalini açtığımda ve bastığımda ls -aeklediğim dosyaları göstermedi. Bash, benim için Windows'a bash kurma amacını tamamen yitirmiş Windows dosya gezgini aracılığıyla bıraktığım dosyaları tanımıyordu.
14'te
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.