Các thiết bị gắn MTP được đặt ở đâu trong hệ thống tập tin?


207

Tôi có một điện thoại Android kết nối với máy tính của mình thông qua MTP. Điều này hoạt động tốt; Tôi có thể xem và chuyển các tập tin với Nautilus. Tuy nhiên, tôi thường muốn sử dụng thiết bị đầu cuối để di chuyển số lượng lớn tệp và dường như tôi không thể tìm thấy thiết bị ở bất cứ đâu trong cây hệ thống tệp. Nautilus báo cáo vị trí là mtp://[usb:003,007]/, nhưng nó không dưới /mediahoặc /mnt.

Có ai biết nó ở đâu không?


Câu trả lời:


154

Như bạn đã tìm ra , các điểm gắn kết nằm trong /run/user/$USER/gvfs/(hoặc /var/run/user/$UID/gvfs) và được đặt tên theo giao thức, loại kết nối và địa chỉ mà chúng sử dụng. Điều này làm cho mọi thứ trở nên khó khăn hơn, bởi vì địa chỉ kết nối có thể thay đổi mỗi khi bạn cắm lại thiết bị, ngay cả khi đó là cùng một cổng. Nếu bạn có cùng một thiết bị hai lần, nó thậm chí còn tệ hơn.

Bạn có thể sử dụng lsusbđể hiển thị tất cả các thiết bị USB được kết nối từ thiết bị đầu cuối:

$ lsusb | grep Google                       # Note: This is a Nexus 4
Bus 002 Device 025: ID 18d1:4ee2 Google Inc.

Như bạn đã nhận thấy Nautilus cũng cung cấp thông tin này thông qua mẹo công cụ. Bạn sẽ tìm thấy hình thức được mã hóa, ví dụ như mtp://[usb:002,025]trong /run/user/$USER/gvfs(hoặc /var/run/user/$UID/gvfs) làmtp:host=%5Busb%3A002%2C025%5D


Chỉnh sửa của người dùng: Điều này dường như yêu cầu một phiên bản libmtp và / hoặc gvfs mới hơn so với có sẵn trong mặc định trong 13.04. Chạy sudo add-apt-repository ppa:langdalepl/gvfs-mtpvà cập nhật trước khi làm bất cứ điều gì khác.


Chỉnh sửa: PPA không cần thiết nữa trong saucy / 13.10 và mới hơn, tên tệp được liệt kê trong thiết bị đầu cuối như trong Nautilus.

Chỉnh sửa 2016-01-11: Tôi đã xóa tập lệnh đã được đưa vào câu trả lời trước đây do không có thời gian để bảo trì và cải tiến. Bạn vẫn có thể tìm thấy nó trong lịch sử sửa đổi.


Cảm ơn bạn vì câu trả lời. Thật không may, nó không hoạt động vì tên thư mục thực tế (ví dụ / DCIM / Camera /) chỉ hiển thị trong Nautilus, không phải thiết bị đầu cuối. Do đó, $ Path / DCIM / Camera không thể truy cập bằng rsync.
bessman

2
Đường dẫn chỉ là một ví dụ và khác với điện thoại Android. Điện thoại cũng phải được mở khóa thông qua màn hình khóa để cho phép truy cập dữ liệu.
LiveWireBT

Đường dẫn /DCIM/Camera/tồn tại trên điện thoại của tôi, nhưng trong thiết bị đầu cuối, nó được gọi /2404/2407/. Đó chính là vấn đề. Nếu tôi cdvào /2404/2407/và chạy nautilus ., sau đó /DCIM/Camera/được mở. Điện thoại đã được mở khóa, nếu không tôi sẽ không thể truy cập qua Nautilus, phải không?
bessman

5
Lưu ý rằng để tất cả những thứ này hoạt động, bạn cần gvfs-fusecài đặt gói. Không phải tất cả các phiên bản / hương vị của Ubuntu đều có mặc định (ví dụ: Ubuntu MATE 14.10 không có). Không có nó, thiết bị MTP sẽ không được gắn kết như một đường dẫn cục bộ và sẽ chỉ có thể sử dụng được bởi các ứng dụng hỗ trợ URI gvfs.
dùng149408

2
Tôi tìm thấy gvfs/thư mục cuối cùng. Tuy nhiên, thay vì $ USER, đường dẫn trên PC này là: /run/user/1000/gvfs/mtp:host=%5Busb%3A003%2C003%5D- Đối với những người khác tôi khuyên bạn chỉ nên chọc vào, nếu bạn không tìm thấy nó ngay lập tức.
sẽ

94

Bộ nhớ của thiết bị Nexus của tôi có thể được truy cập tại:

/run/user/$UID/gvfs/mtp*

Vì vậy, nếu $ UID của bạn là 1000, bạn có thể tìm thấy nó bằng cách thực hiện

$ cd /run/user/$UID/gvfs/mtp*

hoặc (đối với vị trí chính xác trong ví dụ giả sử UID của bạn là 1000),

$ cd /run/user/1000/gvfs/mtp\:host=%5Busb%3A001%2C006%5D/

2
Đây phải là câu trả lời được chấp nhận vì nó không yêu cầu cài đặt bất kỳ phần mềm bổ sung nào. Cảm ơn rất nhiều người dùng2529583!
NH.

Bất kỳ ý tưởng nếu mtp*tên tệp có thể được đổi tên để sử dụng trong các ứng dụng Wine? Naive mvđưa cho tôi mv: cannot move 'mtp:host=%5Busb%3A001%2C065%5D' to 'mtp': No such file or directory(lưu ý rằng tên tệp đã được hoàn thành)
Mark Jeronimus

@Mark bất kỳ ký tự là một tên tệp hợp lệ trong linux. Hãy xem nếu có một cách đổi tên nó mà không cần mv.
Babken Vardanyan

Tuyệt vời. Nó hoạt động hoàn toàn tốt và tiết kiệm cho tôi rất nhiều "thử" trên Raspbian Wheezy và Jessie
Zimano 18/12/17

1
Ubuntu 16.04 và Honor 9 Lite. Sau khi kết nối /run/user/1000/gvfsthư mục điện thoại trống.
LRDPRDX

25

MTP thiết bị gắn kết thường có thể được tìm thấy trong: /run/user/1000/gvfs/


ví dụ: nếu thanh địa chỉ Nautilus của bạn hiển thị mtp://[usb:001,006]/, thì bạn có thể truy cập bằng cách:

/run/user/1000/gvfs/mtp\:host=%5Busb%3A001%2C006%5D/

Bây giờ trên thiết bị đầu cuối, bạn có thể sao chép các tập tin hoặc thư mục:

  • cd vào thư mục -> cd /run/user/1000/gvfs/mtp\:host=%5Busb%3A001%2C006%5D/
  • sau đó sao chép các thư mục cần thiết vào thư mục hiện tại -> cp -r ~/videos/ .

2
Nó hoạt động chính xác như bạn nói. Nhưng khi tôi thực hiện 'ls -a' thì nó trống rỗng.
ycc_swe

10

Loại mount. Điều đó sẽ liệt kê mọi hệ thống tập tin hoạt động.


14
Không, thiết bị không hiển thị ở đầu ra.
LiveWireBT

1
Hừm. Đó là loại làm việc. Tôi tìm thấy nó dưới / run / user / myusername / gvfs /. Tuy nhiên, tất cả các tên thư mục chỉ là số thay vì tên thật mà tôi thấy trong Nautilus. Như vậy, nó không thực sự giải quyết được vấn đề của tôi vì tôi vẫn không thể dễ dàng sử dụng thiết bị đầu cuối để di chuyển tệp đến thiết bị.
bessman

Khi Nautilus mở thiết bị MTP, hãy sử dụng các lệnh lsof -c nautilus | lessđể liệt kê tất cả các tệp tệp Nautilus đã mở.
ví von

1
Điều đó đã giải quyết nó cho tôi :)
khai báo

10

Điều này đang làm việc với:

  • Bạc hà Linux 17.3
  • Samsung Galaxy S5

thử đi:

  1. apt-get install mtpfs
  2. apt-get install mtp-tools
    • #có thể là một dòng (đây là tùy chọn )
  3. sudo mkdir -p /media/mtp/phone
  4. sudo chmod 775 /media/mtp/phone
    • #Cá nhân tôi sẽ hạn chế quyền đối với NO-eXecute
    • #Tại thời điểm này tôi không chắc chắn những gì là đủ để gắn kết.
  5. Rút phích cắm điện thoại micro-USB và trình cắm, sau đó ...
  6. sudo mtpfs -o allow_other /media/mtp/phone
  7. ls -lt /media/mtp/phone

đầu ra:

 total 0
 drwxrwxrwx 2 will will 0 Jan  1  1970 Card
 drwxrwxrwx 2 will will 0 Jan  1  1970 Phone
 drwxrwxrwx 2 will will 0 Jan  1  1970 Playlists
  1. ls -lt /media/mtp/phone/Card

đầu ra:

 total 0
 drwxrwxrwx 2 will will 0 Jan  1  1970 Android
 drwxrwxrwx 2 will will 0 Jan  1  1970 DCIM
 drwxrwxrwx 2 will will 0 Jan  1  1970 LOST.DIR
 drwxrwxrwx 2 will will 0 Jan  1  1970 Music

Liệt kê quyền truy cập vào thẻ SD trên điện thoại Android của tôi. " Danh sách phát " là một thư mục ảo có tên "/ Danh sách phát" chứa danh sách phát của bạn dưới dạng tệp .m3u. (mỗi man mtpfs)

Điều đó dường như để làm các mẹo. Các lệnh hữu ích cần nhớ ...

  • sudo mtpfs -h... liệt kê các tùy chọn của thiết bị. Điều này dường như chỉ hoạt động trước khi bạn đã gắn thiết bị. Vì vậy, kiểm tra đầu tiên, có lẽ.
  • mtp-detect... Hiển thị nhiều nội dung về thiết bị (một phần của công cụ mtp).

Ngoài ra tôi nghĩ bạn cần điện thoại / thiết bị " bật ", mở trình bảo vệ màn hình nếu bạn có để thiết bị có thể kết nối.

Tôi nhận thấy rằng ngàm USB của tôi là:

  • / media / will / usbdrive

Vì vậy, nó có thể có ý nghĩa hơn để gắn kết dưới tên người dùng của bạn thay vì sơ khai "mtp". Đồng thời xem lại bài đăng: " Gắn thẻ SD MTP Androids của bạn trên Ubuntu ", nó có một vài gợi ý và tính năng bổ sung hữu ích.

người giới thiệu:

Tôi đã dẫn đầu từ hai bài viết này:


Xin chào, mặc dù điều này hoạt động, tôi vẫn thấy MTP quá chậm và thường thì như thể máy tính Linux của tôi đã bị khóa. Tôi ủng hộ các ý kiến ​​thêm về việc sử dụng FTP. Tôi đã thực hiện một số hoạt động đào và giới thiệu ứng dụng sshelper . Nó rất hữu ích, mở nguồn, và trưởng thành. Sẽ hoạt động với Windows, Linux và Mac - Hoặc bất cứ thứ gì hỗ trợ SSH. Dễ sử dụng quá. Thôi buông đi.
sẽ

8

Tôi có một điện thoại LG2 và tôi đang chạy Xubfox 15.10.

Đây là cách tôi gắn thiết bị vào thư mục mnt trong người dùng của mình.

  1. Trước tiên hãy chắc chắn rằng bạn đã cài đặt các gói sau trong hệ thống của mình.

    sudo apt-get install jmtpfs mtp-tools
    
  2. Kết nối điện thoại của bạn dưới dạng thiết bị MTP và nhập lệnh sau vào thiết bị đầu cuối của bạn.

    mtp-detect
    
  3. Uncomment user_allow_othertrong tập tin /etc/fuse.conf.

  4. Tạo một thư mục mnttrong thư mục nhà của bạn.

    mkdir mnt
    
  5. Gắn thiết bị.

    jmtpfs ~/mnt
    
  6. Đó là nó. Bây giờ thiết bị của bạn được gắn dưới mntthư mục được tạo ở bước 4 .

Lưu ý: Có thể có một số bước không cần thiết. Nhưng làm theo các bước trên làm việc cho tôi.

Tham khảo: https://wiki.archlinux.org/index.php/MTP


6

Đây không phải là một câu trả lời trực tiếp cho vấn đề, nhưng dù sao cũng là một giải pháp.

Sau khi gặp sự không nhất quán với kết nối USB, tôi đã bỏ qua tất cả các hệ thống .gvfs và USB.

Tôi đã cài đặt một máy chủ ftp đơn giản trên Android và voila! Kết nối với máy chủ (có thể là ftp với đăng nhập hoặc không, tùy thuộc vào cách bạn chọn) từ Nautilus / nemo / thunar và bạn đi.

Đồng bộ hóa các thư mục được xử lý thông qua ownCloud và / hoặc BitTorrentSync.

Và FTP qua mạng không dây nhanh hơn kết nối USB.


5

MTP là một giao thức, giống như FTP hoặc SSH. Nó tìm nạp các tập tin khi người dùng yêu cầu. Do đó, không có hệ thống tập tin gắn trên máy tính.

Sử dụng mtpfs để làm cho nó xuất hiện như một hệ thống tệp được gắn kết.

mtpfs <a_folder_to_mount>

Không cần chỉ định thiết bị. Nếu bạn chỉ có một thiết bị được kết nối, thì không có sự mơ hồ. Tôi chưa thử nghiệm nó với nhiều thiết bị kết nối với máy tính của tôi.


4

Tôi không biết chính xác để đi qua vị trí MTP qua thiết bị đầu cuối. Tuy nhiên, tôi phát hiện ra rằng chúng ta có thể nhấp chuột phải vào Thẻ lưu trữ nội bộ / Thẻ SD và chọn tùy chọn "Mở trong thiết bị đầu cuối". Làm như vậy vị trí được mở trực tiếp trong Terminal.


2
Một ảnh chụp màn hình thực sự (của bộ đệm khung bên trong) sẽ tốt hơn nhiều so với ảnh của màn hình (với một camera bên ngoài).
David Foerster

1

Tôi có thể quản lý các tập tin trên một MTP kết nối thiết bị Android sử dụng gvfs-*các lệnh (ví dụ gvfs-cp, gvfs-move...) mà cũng được đề cập trong những điều sau đây bài viết trên Wikipedia : GVfs .

Tôi đã viết một tiện ích CLI đơn giản để đồng bộ hóa tệp đến / từ thiết bị Android: https://github.com/DusanMadar/PySyncDroid


1
Chỉ cần truy cập thư mục và sử dụng rsync
Evan Carroll
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.