WSL (ubuntu / windows) AppData \ Local \ Lxss sebenarnya tidak disinkronkan kembali ke ubuntu, gagasan?


10

Jika Anda membuat file dalam bash (sentuh /root/foo.txt) yang muncul di direktori tersembunyi dalam AppData\Local\Lxss\ memodifikasinya, tidak ada mengubahnya dalam bash. Lebih buruk lagi jika Anda mengubahnya lagi di bash file yang Anda ubah melalui penjelajah akan musnah!

Apakah ada mount point yang sebenarnya C:\?

Di mana gambar aslinya bersembunyi ?? (seperti apakah sistem file menulis kembali ke file gambar pada kenyataannya?)

0:14:29 dalam https://channel9.msdn.com/Events/Build/2016/C906 ini tampaknya mengklaim Anda akan memiliki akses penuh dari penjelajah. 0:16:30 mereka menunjukkan kepada Anda AppData\Local\Lxss\ tetapi tidak sekali pun menyebutkan bahwa file Anda tidak akan disinkronkan seperti yang saya jelaskan.


Sangat menyedihkan tidak ada linux-binary atau hal yang dapat menggunakan panggilan sys yang mereka ajarkan ntkernel di luar penjara (kembali ke cygwin untuk itu :() tetapi mereka harus setidaknya me-mount filesystem root yang dapat ditulis pada windows C: \ saat ulang tahun menjadi emas
sabgenton

Saya kira selalu ada samba :(
sabgenton

1
Rupanya itu tidak dimaksudkan untuk digunakan seperti itu. github.com/Microsoft/BashOnWindows/issues/45
wbkang

Apa tempayan. cosmicdantampaknya mengatakan apa yang saya lakukan di akhir komentar. Mac tampaknya masih merupakan pengaturan yang lebih baik sekarang.
sabgenton

Jawaban:


4

File baru yang dibuat melalui Windows Explorer mungkin tidak muncul di bash karena mereka kehilangan atribut LXSS NTFS khusus.

Ketika LXSS membuat file di root LXSS, itu melampirkan informasi tambahan kepada mereka melalui atribut NTFS untuk menyimpan hal-hal yang tidak dapat diwakili oleh atribut NTFS standar, seperti izin file Linux. Jika ini hilang, file-file itu tidak muncul.

Ini didukung oleh fakta bahwa jika Anda membuat file di bash, dan kemudian membuat salinannya dengan Windows Explorer, itu muncul di bash. Ini mungkin karena semua atribut LXSS khusus digandakan dengan file.

Lapisan sistem file LXSS juga muncul untuk me-cache sistem file, sehingga entri direktori di bash tidak akan mencerminkan keadaan sebenarnya dari sistem file jika file ditambahkan atau dihapus sampai semua terminal bash dihentikan (yang mengakhiri sesi LXSS di layanan LXSS dan karenanya membersihkan cache).


3

Ok sepertinya hal-hal di AppData\Local\Lxss\dapat dimodifikasi dan akan disinkronkan kembali ke sesi bash Ubuntu.

Anda harus menutup bash sepenuhnya. Dan Anda tidak dapat membuat file baru.

Aneh seperti Microsoft sepertinya mengatakan Anda tidak bisa.

Namun selain menjengkelkan, ini masih belum bisa digunakan karena membuat file baru sepertinya tidak berfungsi.

Saya tidak tahu apakah sesi bash memasukkan hal-hal ke dalam ram atau apa, tetapi Microsoft dapat mewujudkannya muncul.


3

Yang berhasil bagi saya adalah menyalin dengan bash alih-alih menggunakan Explorer.

C-drive di / mnt / c sehingga untuk menyalin folder C: \ tmp \ test1 ke / tmp / di direktori home pesta Anda lakukan: cp -r /mnt/c/tmp/test1 ~/tmp.


3

Saya pikir Anda akan menemukan ini ... sangat membantu. Ada cukup banyak informasi berguna di sana, tetapi dapat diringkas sebagaimana berlaku di sini dalam satu bagian:

Interoperabilitas dengan Windows

Sementara file VolF disimpan dalam file biasa di Windows di direktori yang disebutkan di atas, interoperabilitas dengan Windows tidak didukung. Jika file baru ditambahkan ke salah satu direktori ini dari Windows, ia tidak memiliki EA yang dibutuhkan oleh VolF, sehingga VolF tidak tahu apa yang harus dilakukan dengan file tersebut dan mengabaikannya. Banyak editor juga akan menghapus EA saat menyimpan file yang ada, lagi-lagi membuat file tidak dapat digunakan di WSL.

Selain itu, karena VFS menyimpan entri direktori, modifikasi apa pun ke direktori yang dibuat dari Windows ketika WSL sedang berjalan mungkin tidak tercermin secara akurat.

Artikel ini berbicara tentang spesifikasi filesystem dan atribut yang diperluas juga. Namun secara ringkas, memodifikasi file WSL dari windows adalah hal yang tidak perlu.


0

Sampai mereka berhasil, saya menginstal cygwin sshd untuk visibilitas ke sistem file NTFS asli dan menjalankan sshd ubuntu untuk visibilitas ke file linux lsxx. gunakan apt-get untuk menginstal sshfs dan win-sshfs untuk melakukan mounts sekali jalan. Ini adalah hack bundar tetapi bekerja untuk saya untuk saat ini.

Jika Anda tidak ingin mengacaukan cygwin sshd, Anda dapat menggunakan cygwin ssh untuk scp file bolak-balik.

Menggunakan cygwin sshd membantu mengatasi masalah izin file dengan menggunakan akun administrator nyata di file .ssh / config. Saya memiliki beberapa izin akses aneh melalui antarmuka DevFS / NTFS.


Anda seharusnya hanya "berbagi" file melalui / mnt / di LXSS, bukan melalui sistem file root.
ZiggyTheHamster
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.