WSL (ubfox / windows) AppData \ Local \ Lxss không thực sự đồng bộ hóa trở lại với Ubuntu, ý tưởng?


10

Nếu bạn tạo một tệp trong bash (touch /root/foo.txt) xuất hiện trong các thư mục ẩn trong việc AppData\Local\Lxss\ sửa đổi nó thì sẽ không thay đổi nó trong bash. Tệ hơn nếu bạn thay đổi nó một lần nữa trong bash, tập tin bạn đã thay đổi thông qua trình thám hiểm bị ghi đè!

Có bất kỳ điểm gắn kết thực sự trên C:\?

Hình ảnh thật được giấu ở đâu ?? (giống như hệ thống tập tin ghi lại vào một tập tin hình ảnh trong thực tế?)

0:14:29 trong https://channel9.msdn.com/Events/Build/2016/C906 này dường như khẳng định bạn sẽ có quyền truy cập đầy đủ từ explorer. 0:16:30 họ chỉ cho bạn AppData\Local\Lxss\ nhưng không một lần đề cập rằng các tệp của bạn sẽ không đồng bộ hóa như tôi đã mô tả.


Thật đáng buồn khi không có nhị phân linux hoặc thứ có thể sử dụng các cuộc gọi sys mà họ đã dạy ntkernel bên ngoài nhà tù (quay lại cygwin cho điều đó :() nhưng ít nhất họ cần phải gắn hệ thống tập tin gốc có thể ghi trên windows C: \ khi kỷ niệm đi vàng.
sabgenton

Tôi đoán luôn có samba :(
sabgenton

1
Rõ ràng nó không có nghĩa là được sử dụng theo cách đó. github.com/Microsoft/BashOnWindows/issues/45
wb Khang

Thật là một crock. cosmicdandường như chỉ nói những gì tôi đã làm gần cuối bình luận. Mac dường như vẫn là một thiết lập đẹp hơn ngay bây giờ.
sabgenton

Câu trả lời:


4

Các tệp mới được tạo qua Windows Explorer có thể không xuất hiện trong bash vì chúng thiếu các thuộc tính NTFS LXSS đặc biệt.

Khi LXSS tạo các tệp trong gốc LXSS, nó sẽ đính kèm thông tin bổ sung cho chúng thông qua các thuộc tính NTFS để lưu trữ những thứ không thể được biểu thị bằng các thuộc tính NTFS tiêu chuẩn, chẳng hạn như quyền của tệp Linux. Nếu những cái này bị thiếu, nó sẽ không xuất hiện.

Điều này được hỗ trợ bởi thực tế là nếu bạn tạo một tệp trong bash, và sau đó tạo một bản sao của nó bằng Windows Explorer, nó sẽ xuất hiện trong bash. Điều này có lẽ là do tất cả các thuộc tính LXSS đặc biệt đã được sao chép với tệp.

Lớp hệ thống tệp LXSS cũng xuất hiện để lưu trữ hệ thống tệp, do đó, các mục nhập thư mục trong bash sẽ không phản ánh trạng thái thực tế của hệ thống tệp nếu các tệp được thêm hoặc xóa cho đến khi tất cả các đầu cuối bash bị dừng (kết thúc phiên LXSS trong dịch vụ LXSS và do đó xóa bộ nhớ cache).


3

Ok có vẻ như công cụ AppData\Local\Lxss\có thể sửa đổi và sẽ đồng bộ hóa trở lại phiên bash Ubuntu.

Bạn phải đóng bash hoàn toàn. Và bạn không thể tạo tập tin mới.

Lạ như Microsoft dường như nói bạn không thể.

Tuy nhiên, ngoài việc gây phiền nhiễu thì điều này vẫn không thể sử dụng được vì làm cho các tệp mới dường như không hoạt động.

Tôi không biết liệu phiên bash có đưa công cụ vào ram hay không nhưng Microsoft có thể làm điều này xảy ra hay không .. Nếu họ chọn.


3

Những gì làm việc cho tôi là sao chép bằng bash thay vì sử dụng Explorer.

Ổ đĩa C nằm ở / mnt / c vì vậy để sao chép thư mục C: \ tmp \ test1 sang / tmp / trong thư mục nhà bash của bạn làm : cp -r /mnt/c/tmp/test1 ~/tmp.


3

Tôi nghĩ bạn sẽ thấy điều này ... vô cùng hữu ích. Có khá nhiều thông tin hữu ích ở đó, nhưng nó có thể được tóm tắt vì nó được áp dụng ở đây trong một phần:

Khả năng tương tác với Windows

Mặc dù các tệp VolF được lưu trữ trong các tệp thông thường trên Windows trong các thư mục được đề cập ở trên, khả năng tương tác với Windows không được hỗ trợ. Nếu một tệp mới được thêm vào một trong các thư mục này từ Windows, thì nó sẽ thiếu các EA cần thiết bởi các VolF, vì vậy VolF không biết phải làm gì với tệp đó và chỉ cần bỏ qua nó. Nhiều biên tập viên cũng sẽ loại bỏ EA khi lưu tệp hiện có, một lần nữa làm cho tệp không thể sử dụng được trong WSL.

Ngoài ra, vì VFS lưu trữ các mục trong thư mục, mọi sửa đổi đối với các thư mục được tạo từ Windows trong khi WSL đang chạy có thể không được phản ánh chính xác.

Bài viết này cũng nói về các chi tiết cụ thể của hệ thống tập tin và các thuộc tính mở rộng. Nhưng tóm lại, sửa đổi các tệp WSL từ windows là không nên.


0

Cho đến khi họ giải quyết được vấn đề này, tôi đã cài đặt cygwin sshd để hiển thị cho hệ thống tệp NTFS gốc và chạy subd ub Ubuntu để hiển thị các tệp linux lsxx. sử dụng apt-get để cài đặt sshfs và win-sshfs để gắn kết mỗi cách. Đây là một bản hack hoàn chỉnh nhưng hiện tại vẫn hoạt động với tôi.

Nếu bạn không muốn gây rối với cygwin sshd, bạn có thể sử dụng cygwin ssh để quét các tệp qua lại.

Sử dụng cygwin sshd giúp khắc phục các sự cố về quyền của tệp bằng cách sử dụng tài khoản quản trị viên thực trong tệp .ssh / config. Tôi đã có một số quyền truy cập lạ đi qua giao diện DevFS / NTFS.


Bạn chỉ nên "chia sẻ" các tệp qua / mnt / trong LXSS, không thông qua hệ thống tệp gốc.
ZiggyTheroulette
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.