Làm cách nào để truy cập các tệp linux / Ubuntu từ Windows 10 WSL?


71

Câu hỏi này trả lời làm thế nào để truy cập các tệp Windows từ Ubuntu Bash, nhưng làm thế nào tôi có thể làm ngược lại?

Cụ thể, tôi cần truy cập khóa SSH của mình từ Windows được đặt tại /home/mark/.ssh/id_rsaBash.



(Tôi đã đề nghị đóng câu hỏi được liên kết của phuclv dưới dạng dupe theo thứ tự thời gian đảo ngược vì câu hỏi này vừa chung chung hơn vừa có câu trả lời hay hơn và cập nhật hơn.)
Bob

Câu trả lời:


26

PM cho Windows Command-Line tại đây:

Cập nhật tháng 10 năm 2019 : Cập nhật phản hồi bên dưới để phản ánh khả năng mới được thêm vào để truy cập trực tiếp các tệp Linux của distro thông qua máy chủ P9 mới được tích hợp trong Win10 1903 (và mới hơn) .

QUAN TRỌNG : Phát triển thông qua hệ thống tệp Windows để truy cập các tệp Linux đã và sẽ tiếp tục không được hỗ trợ và khuyến nghị NGAY LẬP TỨC! Để hiểu lý do tại sao, xin vui lòng đọc bài viết này

Vậy làm thế nào để một người truy cập các tệp Linux bằng các công cụ Windows (ví dụ: notepad, VS / VScode, v.v.)? Trước đây, bạn không thể, nhưng bắt đầu từ Windows 10 1903, chúng tôi (cuối cùng!) Sẽ hiển thị các hệ thống tệp của distro của bạn cho Windows thông qua máy chủ tệp P9. Chúng tôi cũng đã xuất bản một video chuyên sâu thảo luận về cách thức hoạt động của nó ! Bạn cũng có thể đọc một bản tóm tắt về tính năng mới này trong bài đăng trên blog này

nhập mô tả hình ảnh ở đây

Mong muốn được nghe cách bạn có được với tính năng này. Nếu bạn tìm thấy bất kỳ vấn đề nào, vui lòng gửi các vấn đề về repo WSL GitHub tại đây: https://github.com/Microsoft/wsl .


Thưa ông, tính năng máy chủ tệp 9P này có ổn định cho người dùng bình thường không? Nếu không thì tốt hơn là thêm một cảnh báo về việc sử dụng các bản dựng nội bộ không ổn định. Nhiều người dùng có thể không quen thuộc với nó. Mặc dù vậy, một sự thật thú vị, câu trả lời của bạn chứa các blog từ năm 2016 và 2019, ~ 3 năm;)
Biswapriyo

Ồ, đó là tin tức thú vị !! Cảm ơn bạn đã chia sẻ!
mở

@ biswaprio.it được làm cho RẤT rõ ràng trong các bước thủ công mà người ta phải hoàn thành để tham gia chương trình Người dùng nội bộ rằng các bản phát hành này thực sự là hàng tuần của phiên bản Windows tiếp theo khi nó được xây dựng. Và vâng, máy chủ 9P sẽ ổn định cho người dùng phổ thông trong phiên bản hệ điều hành chính mà nó đến. Và vâng, thực tế là chúng tôi mất nhiều thời gian để xây dựng và bắt đầu cung cấp một giải pháp hợp lý ở đây sẽ cho bạn một số ý tưởng về việc nó sẽ giúp đội ngũ nhỏ của chúng tôi ưu tiên và thiết kế như thế nào.
Richard Turner

1
Tôi đã thử dùng lệnh này từ Ubuntu với mọi bản cập nhật của hệ thống kể từ lần đầu tiên tôi nghe thấy nó được phát hành. Trình thám hiểm của tôi luôn đi đến thư mục Tài liệu của tôi. Và tôi chưa tìm ra bất kỳ bước nào để "kích hoạt" tính năng này.
Axeman

3
Tương tự như Axeman, khi tôi chạy, explorer.exe .nó sẽ mở thư mục System32. @RichardTurner Các bước thủ công ở đâu?
Chris

57

Vị trí đã thực sự được chuyển trong bản phát hành mới nhất tới:

C:\Users\%USERNAME%\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\

Xem sự cố GitHub này từ Microsoft / WSL # 2578

Như đã đề cập trong Vấn đề ở trên và các bình luận bên dưới, đừng gây rối với các tệp này từ hệ điều hành windows.

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


1
Cảm ơn! Nghĩ rằng tôi đang phát điên khi cố gắng làm theo các hướng dẫn cũ, tôi thậm chí không có thư mục lxss.
Alex S

1
Thông tin này có còn đúng không? Tôi không thể tìm thấy thư mục như vậy trên Windows 10.
Bruno Finger

6
CHÚNG TÔI KHUYẾN NGHỊ THƯỜNG XUYÊN RATNG BẠN KHÔNG THỂ THAM GIA VÀO CÁC NỀN TẢNG ROOT DISTRO TỪ WINDOWS. NẾU BẠN LÀM, DỮ LIỆU DỮ LIỆU VÀ / HOẶC ĐÚNG LÀ LIKELY CAO: Vui lòng đọc bài đăng này để biết thêm chi tiết: blog.msdn.microsoft.com/commandline/2016/11/17/17
Richard Turner

1
"Tôi nghi ngờ bất cứ ai sẽ cố gắng thao túng hoặc thay đổi các tập tin theo cách đó". Tại sao bạn nghĩ tôi hét lên lời khuyên ở trên? Chúng tôi nghe từ những người nhiều lần một tuần mát mẻ đã bỏ qua hoặc không đọc lời khuyên này và cuối cùng làm hỏng các tệp trong thư mục gốc của họ. Heck, có những công cụ thay thế các tệp distro (beta) của bạn cũng thường gây ra điều này.
Richard Turner

1
Tôi đã duyệt đến một thư mục mà tôi đã tạo thông qua Ubuntu WSL trong Explorer và kết quả là nó đã phá vỡ các quyền không thể đảo ngược ... vì vậy, tôi không khuyên bạn nên làm điều này!
SamAndrew81

9

Tìm thấy nó bằng cách tìm kiếm toàn bộ ổ C của tôi. Các tập tin ở đây:

C:\Users\<username>\AppData\Local\lxss

ví dụ: khóa SSH của tôi ở đây:

C:\Users\Mark\AppData\Local\lxss\home\mark\.ssh\id_rsa

2
Có vẻ như đường dẫn đã thay đổi kể từ khi cập nhật FCU chính thức.
Briefkasten

1
@Briefkasten Tôi vừa cập nhật lên FCU và các tập tin của tôi vẫn còn đó. Tạo một tệp mới dưới Bash chỉ để đảm bảo. Bạn đã nâng cấp WSL hay cái gì đó?
mở

2
@John D WSL được đặt trong Thư mục gói nơi Ứng dụng sẽ được cài đặt. Đối với tôi, đó là: C: / Users / {username} /AppData/Local/Packages/CanonicalgroupLiated.UbfoxonWindows_79rhkp1fndgsc/LocalState/rootfs/ Cont. tới github.com/Microsoft/WSL/issues/402#issuecomment-321853125
Briefkasten

9

Có nhưng không nên thao tác thư mục đó từ windows explorer. Nếu bạn muốn sao chép, di chuyển, chỉnh sửa hoặc xóa các tệp khỏi thư mục lxss, bạn cần thực hiện bên trong bash bằng các công cụ dòng lệnh. Chỉ các tệp trên / mnt / * mới thực sự có thể thao tác được từ windows explorer.


1
Ngay cả các tập tin văn bản đơn giản? Những cạm bẫy là gì?
mở

3
Mỗi tệp nằm trong thư mục Volfs (như / home) đều có Thuộc tính mở rộng lưu trữ các quyền Linux của tệp đó. Nếu bạn chỉnh sửa tệp đó trên trình chỉnh sửa windows thì các thuộc tính đó sẽ bị mất và tệp sẽ biến mất khỏi bash. Bạn có thể đọc thêm tại đây: blog.msdn.microsoft.com/wsl/2016/06/15/wsl-file-system-support
onoma

4
Âm thanh như vậy phải là một lỗi. Windows không nên cấp cho chúng tôi quyền truy cập vào các tệp đó hoặc cấp cho chúng tôi quyền truy cập chỉ đọc hoặc chúng sẽ chặn các cuộc gọi ghi vào tệp linux và chỉ không sửa đổi các thuộc tính. Cảm ơn vì tiền hỗ trợ. Tôi chỉ muốn đọc các tập tin, vì vậy hy vọng đó không phải là vấn đề.
mở

5

Trong powershell, sử dụng

cd ${env:appdata}\..\local\packages\canonical*\localstate\rootfs

sau đó

ls

trả về cùng một danh sách các thư mục như

ls / 

trong bash trên WSL.


4

Như đã đề cập ở trên bởi các tệp [onoma] trong các thư mục WSL có các thuộc tính sẽ biến mất nếu một người thao tác với nó bằng trình thám hiểm hoặc trình soạn thảo văn bản chạy trong hệ thống Windows. Giải pháp có thể là khởi động ssh-server trong WSL (có thể cần cài đặt lại) nghe trên localhost và sau đó gắn hệ thống tệp WSL làm ổ đĩa bằng cách sử dụng win-sshfs hoặc bạn chỉ có thể sử dụng máy khách Bitvise SSH để kết nối qua ssh và thao tác với các tập tin bằng cửa sổ sftp. Chủ đề đã được thảo luận một phần ở đây: Làm cách nào tôi có thể SSH vào Bash Bash trên Ubuntu trên Windows 10?


3

subst L: $env:LOCALAPPDATA\lxss (đối với quyền hạn)

hoặc subst L: %LocalAppData%\lxss(từ cmd)

Điều này đặt root hệ thống tập tin hệ thống con Linux /của bạn trên ổ đĩa L : .

Bạn cũng có thể chỉ ánh xạ thư mục chính của bạn, hoặc chỉ %LocalAppData%\lxsstrong một cửa sổ thám hiểm. Chỉ cần không thử duyệt L: \ mnt \ c hoặc bộ não của bạn có thể phát nổ.


3
Giải pháp tốt đẹp! Đối với hiện tại Windows 10 nó subst L: $ env: LocalAppData \ Packages \ CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc \ LocalState \ rootfs
Andreas M. Oberheim

3

Cuối cùng tôi đã thực hiện một cách để mở explorer (và vscode) với bối cảnh thư mục chính xác thực sự từ bên trong WSL: https://github.com/andymule/wslwin

Ví dụ, sau khi bạn cài đặt cái này, trong linux (WSL), bạn sẽ chỉ cd /home/mark/.ssh/và gõ explorer, và nó sẽ mở windows explorer tại vị trí đó, bất kể đó là gì.

EDIT: tính năng này hiện đang được hỗ trợ chính thức trong WSL và bạn không nên sử dụng tập lệnh của tôi nữa


2

Im trên Windows 10 Creators Update. Tôi sử dụng SFTP NetDrive để gắn hệ thống tệp WSL vào các cửa sổ như một ổ đĩa mạng.

Có một số cổng Window sshFS sẽ đạt được điều tương tự.

Bạn sẽ cần khởi động ssh daemon thông qua "sudo service ssh start"


Lợi thế của việc này so với việc đi đến các tập tin trực tiếp là gì?
mở

Các tệp có siêu dữ liệu được đính kèm có thể bị mất khi truy cập trực tiếp vào các ứng dụng không hiểu siêu dữ liệu.
mlk

0
\\wsl$\Ubuntu\home\user\whatever 

Trong trình thám hiểm hoặc tiện ích Run (Cmd + R). Hoạt động như chia sẻ mạng bình thường và an toàn để thao tác các tệp.

Bạn cũng có thể ánh xạ nó tới một ổ đĩa hoặc thư mục, giống như bất kỳ chia sẻ mạng nào khác.

Lưu ý: Đây là một tính năng mới được triển khai trong Windows 10 build 18342

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.