Truy cập phương tiện lưu động trong Bash trên Windows


38

Có cách nào để truy cập phương tiện lưu động (ví dụ như ổ ngón tay cái hoặc thẻ SD) từ trong Bash trên Windows không?

Bash trên Windows sử dụng DriveF để gắn các ổ đĩa cố định trong /mntthư mục, nhưng nó không tự động gắn phương tiện di động. Và nó không giống như đặt chúng vào /devmột trong hai:

Aaron@MYPC:/$ ls /dev
block  fd  kmsg  lxss  null  ptmx  pts  random  shm  stderr  stdin  stdout  tty  tty0  tty1  urandom  zero

Có cách nào để gắn ổ đĩa di động? Có cách nào để truy cập vào thiết bị khối bên dưới không?



mountvà xem nếu điều đó cung cấp cho bạn manh mối. Nếu sử dụng cygwinbash, đường dẫn là / cygdrive /.
strobelight

Không: Aaron@MYPC:~$ mount rootfs on / type rootfs (rw,relatime) sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime) proc on /proc type proc (rw,nosuid,nodev,noexec,relatime) devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000) tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=204320k,mode=755)[vân vân]
Aaron Campbell


Tương tự, mặc dù câu hỏi này đặc biệt đề cập đến phương tiện di động và người ta đề cập đến phương tiện cố định. Câu trả lời được đánh giá cao nhất trên bài đăng đó chỉ được áp dụng một phần cho câu hỏi này.
Aaron Campbell

Câu trả lời:


49

Tin vui, giờ đây có thể gắn phương tiện USB (bao gồm cả định dạng là FAT) và chia sẻ mạng với drvfs trên Windows 10:

Gắn phương tiện di động: (ví dụ D :)

$ sudo mkdir /mnt/d
$ sudo mount -t drvfs D: /mnt/d

Để an toàn ngắt kết nối

$ sudo umount /mnt/d

Bạn cũng có thể gắn kết chia sẻ mạng mà không cần smbfs:

$ sudo mount -t drvfs '\\server\share' /mnt/share

Bạn cần ít nhất Build 16176 để có thể phải chọn tham gia chương trình Windows Insider và sau đó cập nhật Windows. Nguồn: https://bloss.msdn.microsoft.com/wsl/2017/04/18/file-system-improvements-to-the-windows-subystem-for-linux/


4
Xin vui lòng không gửi cùng một câu trả lời cho nhiều câu hỏi. Nếu cùng một thông tin thực sự trả lời cả hai câu hỏi, thì một câu hỏi (thường là câu hỏi mới hơn) nên được đóng lại như một bản sao của câu hỏi khác. Bạn có thể chỉ ra điều này bằng cách bỏ phiếu để đóng nó dưới dạng trùng lặp hoặc, nếu bạn không đủ danh tiếng cho điều đó, hãy giơ cờ để chỉ ra rằng đó là một bản sao. Mặt khác, điều chỉnh câu trả lời của bạn cho câu hỏi này và không chỉ dán cùng một câu trả lời ở nhiều nơi.
DavidPostill

7
David thân mến. Hãy tự mình giương cờ để nhân đôi. Câu trả lời này phù hợp với câu hỏi và bạn rất sẵn lòng đưa ra đề xuất cải tiến.
user643011

2
Kính gửi "người dùng", tôi đã nêu lên nhận xét của bạn ở đây giả sử rằng những gì bạn nói là, đúng, đúng ... Bây giờ tôi nhận ra mình đã sai, nhưng dường như không thể hoàn tác nhận xét của mình, vì vậy tôi phải hỏi một cách rõ ràng: chính xác như thế nào đây có phải là "phù hợp với câu hỏi" không, trong khi vẫn là bản sao "chính xác" của câu trả lời khác của bạn ?
Sz.

Này Sz! Vì nó đúng? Nó trả lời chính xác: Có cách nào để truy cập phương tiện lưu động từ bên trong Bash trên Windows. Nếu bạn có câu trả lời tốt hơn thì hãy trả lời câu hỏi tốt hơn hoặc đề nghị chỉnh sửa câu hỏi này. Cảm ơn!
user643011

wrong fs type, bad option, bad superblock on G:, missing codepage or helper program, or other error- ngoài ra, xin vui lòng đọc bình luận này ; không trả lời trùng lặp.
Vụ kiện của Quỹ Monica

10

Có cách nào để truy cập phương tiện lưu động từ bên trong Bash trên Windows không?

Cập nhật:

Rõ ràng bây giờ có thể bắt đầu từ Windows 10 Build 16176.

Xem https://superuser.com/a/1209701/337631 .


Không.

Hiện tại, có những hạn chế về những gì ổ đĩa được gắn kết:

Để ổ đĩa hiển thị dưới / mnt / nó phải đáp ứng các tiêu chí sau:

  1. Ổ đĩa phải là ổ đĩa cố định
  2. Ổ đĩa phải được định dạng thành NTFS.

Điều này đã được nêu ra như một vấn đề: Các ổ đĩa khác ngoài C: không được gắn kết trong / mnt # 1079 . Nó vẫn được đánh dấu là "Mở".

Để tạo điều kiện cho khả năng tương tác với Windows, WSL sử dụng hệ thống tệp DrvFs. WSL tự động gắn kết tất cả các ổ đĩa cố định với các hệ thống tệp được hỗ trợ trong / mnt, chẳng hạn như / mnt / c, / mnt / d, v.v. Hiện tại, chỉ hỗ trợ các ổ đĩa NTFS và ReFS.

Hỗ trợ hệ thống tệp WSL nguồn


Đọc thêm


Bây giờ có một giải pháp: superuser.com/a/1209701/182880
user643011

0

Nếu thiết bị không /devcó khả năng thiết lập của bạn thậm chí không phát hiện ổ đĩa.

Lệnh lsblknên liệt kê tất cả các thiết bị khối được kết nối (ổ đĩa). Nếu nó không xuất hiện trong danh sách này, cách tốt nhất của bạn là thử cắm thiết bị trước khi bắt đầu bash.

Tôi không thấy từ câu hỏi của bạn bất kỳ đề cập nào về phương pháp sử dụng bash trên windows mà bạn đã tìm thấy, nhưng đối với hầu hết nó không quá khó để khởi động lại bash.

Nếu lsblknó hiển thị cho bạn ổ đĩa của bạn thì hãy tìm đường dẫn nó liệt kê và gõ mount <path shown by lsblk> <path you want the drive to be mounted to>


mounting ổ đĩa di động chưa được hỗ trợ. "WSL tự động gắn kết tất cả các ổ đĩa cố định với các hệ thống tệp được hỗ trợ trong / mnt, chẳng hạn như / mnt / c, / mnt / d, v.v. Hiện tại, chỉ hỗ trợ các ổ đĩa NTFS và ReFS." Xem blogs.msdn.microsoft.com/wsl/2016/06/15/wsl-file-system-support
DavidPostill

haha Tôi đã làm điều đó một thời gian trước :) Xem câu trả lời của tôi ở đây Thao tác với các tệp windows bằng shell bash linux trong windows 10
DavidPostill
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.