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

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

Windows Mağazası'ndan yüklenen Ubuntu için:

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

WSL2 için windows'dan giriş dizinine erişebilirsiniz (Windows 10 build 18342) bunun gibi :

\\wsl$

Linux için Windows Alt Sisteminin önceki yinelemelerinde, Ubuntu dosya sistemi %localappdata%\Lxss (mesela., C:\Users\Username\AppData\Local\Lxss - değiştir Kullanıcı adı windows'ta Kullanıcı adınızla birlikte). Görmek dosya Sistemi Desteği ile ilgili WSL blog yazısı:

WSL tarafından kullanılan birincil dosya sistemi Volfs'dir. Linux sistem dosyalarını ve Linux ana dizininizin içeriğini depolamak için kullanılır. Bu nedenle VolFs, Linux izinleri, sembolik bağlantılar, fıfo'lar, soketler ve aygıt dosyaları dahil olmak üzere Linux vfs'nin sağladığı özelliklerin çoğunu destekler.

VolFs, VFS kök dizinini bağlamak için kullanılır %LocalAppData%\lxss\rootfs destek deposu olarak. Ek olarak, en önemlisi birkaç ek VolFs bağlama noktası vardır /root ve /home hangi kullanılarak monte edilir %LocalAppData%\lxss\root ve %LocalAppData%\lxss\home sırasıyla. Bu ayrı bağlantıların nedeni, wsl'yi kaldırdığınızda, giriş dizinlerinin varsayılan olarak kaldırılmamasıdır, bu nedenle orada depolanan tüm kişisel dosyalar korunur.

Dikkat

Windows uygulamalarını ve araçlarını kullanarak Linux alt sisteminde herhangi bir dosya oluşturmak / değiştirmek Ubuntu alt sisteminde Veri bozulmasına ve veri kaybına neden olabilir! (Sayesinde Zengin Turner bu ihtiyatlı sözleri söylediğin için!) Bu kesinlikle değil desteklenen. Aynı blog gönderisinden:

Windows ile birlikte çalışabilirlik

VolFs dosyaları yukarıda belirtilen dizinlerde Windows'taki normal dosyalarda depolanırken, Windows ile birlikte çalışabilirlik desteklenmez. Bu dizinlerden birine Windows'tan yeni bir dosya eklenirse, Volfs'nin ihtiyaç duyduğu Eas'den yoksundur, bu nedenle VolFs dosyayla ne yapacağını bilmez ve bunu yoksayar. Birçok düzenleyici, varolan bir dosyayı kaydederken Eas'yi de sıyırır ve dosyayı wsl'de kullanılamaz hale getirir.


Windows dosya sisteminiz şu adreste bulunur /mnt/c bash shell ortamında.

enter image description here

Kaynak: Dustin Kirkland'ın blogu, howtogeek

Bu, Bash'in ilk tanıtılmasından bu yana değişmiş gibi görünüyor ve Windows Mağazası'ndan dağıtımlar için geçerli değil veya belki de giriş dizinim başka bir konumda bulunduğundan tüm sistemler için tutarlı değil:

%localappdata%\lxss\home\{username}

veya:

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

Nerede {user} Windows Kullanıcı Adınız ve {username} yükleme sırasında UNIX Kullanıcı Adınız ayarlanır.

Yani kök dizin şöyle olurdu:

%localappdata%\lxss

Kök dizininden Windows Gezgini'nde görünmeyebilir unutmayın %localappdata% dizin. Explorer'ın 'adres çubuğuna' yazarak yine de erişebilmelisiniz.

Linux'u MS Market'ten yüklerseniz:

dağıtımları altına yerleştirdiler:

$ cat /proc/registry/HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Lxss/\{861c29b4-ebe2-49a5-8a22-7e53a27934a0\}/BasePathC:\Users\user\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState

Tarafından tanımlanan varsayılan dağıtım:

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

Linux kökü daha derindir:

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

PS. Kayıt defteri anahtarlarını araştırmak için Cygwin'i kullandım.

Powershell'i aynı amaç için 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/

Açılan klasörün Dosya Gezgini penceresinden Bash dosyasını yazarak hızlı bir şekilde açabilirsiniz bash konum çubuğunda.

Yeter artık.

Ayrıca bir içerik menüsü öğesi ekleyebilirsiniz. Bağlam menüsüne kısayol eklemek daha fazla RAM kullandığından, kişisel olarak gerekmiyorsa bunu önermiyorum.

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

Benim için çalışan tek şey şuydu: %localappdata%\lxss\home\{username}, nerede {username} kurulum sırasında verdiğiniz BASH kullanıcı adınız. Bazı nedenlerden dolayı, gizli klasörün lxss'sini gösterdikten sonra görünmeyi reddediyor C:\Users\WINDOWS-USER\AppData\Local\ ve ayrıca tam olarak vermek C:\ windows ve BASH kullanıcı adı ile yol da çalışmıyor.

Ve lütfen neyin işe yaradığına dair bir masaüstü kısayolu oluşturun.

Görüntü konumunu arayanlar için: C:\Users\[username]\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdxname

** LÜTFEN DİKKAT**

Biz (WSL ekibi) Linux dağıtım verilerine girmemenizi şiddetle tavsiye ederiz folders
). Bunu yaparsanız, veri kaybı ve / veya bozulması çok olasıdır

Bu birlikte çalışma senaryosunu geliştirmek için çalışıyoruz ve blogumuzda herhangi bir ilerlemeyi açıklayacağız: Windows Command Line

@DannyStaple Linux dağıtımınızdaki dosya / klasörlerin izinlerini Windows’tan değiştirmeniz gerekiyorsa, ‘wsl’yi kullanın.exe’, örneğin ‘wsl chmod 600 ~/.ssh /id *’ - dosyaları Windows dosya sistemi üzerinden bu klasörlere kopyalamayın.

@mehrdad WSL, bir P9 dosya sunucusu uygular ve herhangi bir P9 dosya sunucusunun yapacağı gibi dağıtımın dosya sisteminden / dağıtımına dosyaları açığa çıkarır / sıralar. Bu şekilde sıralanacak NTFS meta verisi yoktur. Daha fazla bilgi için lütfen Build 2919’da Craig Loewen & Ben Hillis’in oturumunu izleyin

@RichTurner Çok özel (ve can sıkıcı) bir neden olduğunu buldum - kurumsal politikalar .tekrar tekrar yanlış izinlere sahip ssh klasörü, yapıyı kurumsal komut dosyalarına “sınır dışı” olarak işaretlemeniz gerektiği anlamına gelir. Ama genel olarak - sana katılıyorum.

Daha yeni güncellemelere sahip kutularda olduğu gibi görünse de - bu artık gerçekleşmiyor.

@RichTurner: Neden Linux meta verilerini zaten NTFS meta verilerini nasıl tünellediğiniz gibi tünellemiyorsunuz?

@mehrdad 1903’te ve daha sonra yeni P9 sunucusu aracılığıyla yapıyoruz.

@RichTurner: Cevabınız için teşekkürler! Yine de kafam karıştı… 1903, bir ağ kaynağı olarak erişmeyi gerektiriyor, değil mi? Öznitelikleri NTFS meta verilerini tünellediğiniz gibi tünellediyseniz, dosyaları yalnızca yerel olarak düzenlemek mümkün olacaktır. Bu bana tam olarak yaptığın şeyin bu olmadığını mı gösteriyor?

@RichTurner: * “Bu şekilde sıralanacak NTFS meta verisi yok.”* Evet… yani NTFS tünelleme, daha önce söylediklerinizle çelişen, yaptığınız şey değildir. Bu yüzden ilk soruma geri dönüyoruz: ntfs’nin zaten diğer meta verilerle yaptığı gibi, bir dosya sunucusu kullanmak yerine WSL meta verilerini * tünellemediniz mi?

@mehrdad NTFS meta verilerini sıraladığımızı nerede söyledim? P9 dosya meta verilerini sıralar (örn. Zaman damgaları, izinler, dosya adı vb.).), NTFS verileri değil.