WSL (ubuntu / windows) AppData \ Local \ Lxss tak naprawdę nie synchronizuje się z Ubuntu, pomysły?

10

Jeśli utworzysz plik w bash (dotknij /root/foo.txt), który pojawi się w ukrytych katalogach podczas AppData\Local\Lxss\ modyfikacji, nie zmienisz go w bash. Gorzej, jeśli zmienisz go ponownie w bash plik, który zmieniłeś przez explorer, zostanie zablokowany!

Czy jest jakiś prawdziwy punkt montowania C:\?

Gdzie ukrywa się prawdziwy obraz? (jak w rzeczywistości system plików zapisuje plik obrazu w rzeczywistości?)

0:14:29 w tym https://channel9.msdn.com/Events/Build/2016/C906 wydaje się twierdzić, że będziesz mieć pełny dostęp z eksploratora. 0:16:30 pokazują, AppData\Local\Lxss\ ale nie wspominają, że twoje pliki nie będą synchronizowane tak, jak to opisałem.

Sabgenton
źródło
To smutne, że nie ma binarnego linuxa ani czegoś, co mogłoby korzystać z wywołań sys, których nauczyli ntkernel po stronie więzienia (wracam do cygwina :(), ale muszą przynajmniej zamontować główny system plików zapisywalny w Windows C: \ when rocznica staje się złota
sabgenton
Chyba zawsze jest samba :(
sabgenton,
1
Najwyraźniej nie należy go tak wykorzystywać. github.com/Microsoft/BashOnWindows/issues/45
wbkang 10.04.16
Co za gówno. cosmicdanzdaje się mówić tylko to, co zrobiłem pod koniec komentarzy. Mac wydaje się teraz jeszcze ładniejszy.
sabgenton

Odpowiedzi:

4

Nowe pliki tworzone za pomocą Eksploratora Windows prawdopodobnie nie pojawiają się w bash, ponieważ brakuje im specjalnych atrybutów LXSS NTFS.

Kiedy LXSS tworzy pliki w katalogu głównym LXSS, dołącza do nich dodatkowe informacje za pośrednictwem atrybutów NTFS, aby przechowywać rzeczy, których nie mogą reprezentować standardowe atrybuty NTFS, takie jak uprawnienia do plików w systemie Linux. Jeśli ich brakuje, pliki się nie wyświetlają.

Jest to obsługiwane przez fakt, że jeśli utworzysz plik bash, a następnie utworzysz jego kopię za pomocą Eksploratora Windows, pojawi się on w bash. Jest to prawdopodobnie spowodowane tym, że wszystkie specjalne atrybuty LXSS zostały zduplikowane z plikiem.

Warstwa systemu plików LXSS również wydaje się buforować system plików, więc wpisy katalogu w bash nie będą odzwierciedlały faktycznego stanu systemu plików, jeśli pliki zostaną dodane lub usunięte, dopóki wszystkie terminale bash nie zostaną zatrzymane (co kończy sesję LXSS w usłudze LXSS i stąd czyści pamięć podręczną).

Ryan
źródło
3

Ok, wygląda na to, że AppData\Local\Lxss\można modyfikować i zsynchronizować ponownie z sesją bash Ubuntu.

Musisz całkowicie zamknąć Bash. I nie możesz tworzyć nowych plików.

Dziwne, jak Microsoft twierdzi, że nie możesz.

Jednak poza denerwowaniem jest to wciąż mało przydatne, ponieważ tworzenie nowych plików nie działa.

Nie wiem, czy sesja bash umieszcza różne rzeczy w pamięci RAM, czy co, ale Microsoft może sprawić, że tak się stanie, to się pojawi. Jeśli tak zrobią.

Sabgenton
źródło
3

Dla mnie działa kopiowanie za pomocą bash zamiast Eksploratora.

C-dysk jest w / mnt / c tak, aby skopiować folder C: \ tmp \ test1 do / tmp / w katalogu domowym bash zrobić: cp -r /mnt/c/tmp/test1 ~/tmp.

toft
źródło
3

Myślę, że znajdziesz to ... niezwykle pomocne. Jest tam sporo użytecznych informacji, ale można je podsumować, ponieważ mają zastosowanie tutaj w jednej sekcji:

Współdziałanie z Windows

Chociaż pliki VolF są przechowywane w zwykłych plikach w systemie Windows we wspomnianych wyżej katalogach, interoperacyjność z systemem Windows nie jest obsługiwana. Jeśli nowy plik zostanie dodany do jednego z tych katalogów z systemu Windows, brakuje EA wymaganych przez VolFs, więc VolFs nie wie, co zrobić z plikiem i po prostu go ignoruje. Wielu redaktorów usunie również EA podczas zapisywania istniejącego pliku, ponownie uniemożliwiając jego użycie w WSL.

Ponadto, ponieważ VFS buforuje wpisy katalogu, wszelkie modyfikacje tych katalogów, które są tworzone z systemu Windows podczas działania WSL, mogą nie być dokładnie odzwierciedlone.

W artykule omówiono także specyfikę systemu plików i rozszerzone atrybuty. Podsumowując, modyfikowanie plików WSL z systemu Windows nie jest żadnym problemem.

ehiller
źródło
0

Dopóki się tego nie rozwiążą, zainstalowałem cygwin sshd dla widoczności w natywnym systemie plików NTFS i uruchomiłem s Ubd Ubuntu dla widoczności plików linuksowych lsxx. użyj apt-get, aby zainstalować sshfs i win-sshfs, aby wykonać montowania w każdy sposób. Jest to zwykły hack, ale na razie działa dla mnie.

Jeśli nie chcesz zadzierać z cygwin sshd, możesz użyć cygwin ssh do scpowania plików tam iz powrotem.

Korzystanie z cygwin sshd pomaga obejść problemy z uprawnieniami do plików, używając prawdziwego konta administratora w pliku .ssh / config. Miałem dziwne uprawnienia dostępu przez interfejs DevFS / NTFS.

Stuart Rothrock
źródło
Powinieneś „udostępniać” pliki tylko przez / mnt / w LXSS, a nie przez główny system plików.
ZiggyTheHamster