Bối rối bởi nhiều vị trí của ảo / sdcard /


46

Một số thiết bị (như Nexus 4 của tôi) không có khe cắm ngoài cho Thẻ SD. Thay vào đó, có một thư mục gốc được gọi /sdcard/là được xử lý theo cùng một cách. Nhưng tôi cũng tìm thấy các đường dẫn khác mà tất cả đều trỏ đến cùng một tệp - phải có một số chuyển hướng loại nào đó đang diễn ra (tôi nghĩ rằng đây được gọi là liên kết tượng trưng trong Linux).

Tất cả các đường dẫn này chứa các tệp giống nhau:

/sdcard/
/storage/sdcard0/
/storage/emulated/0/
/storage/emulated/legacy/

Con đường nào là "thực tế"? Còn những con đường khác thì sao? Chúng được sử dụng để làm gì, tại sao chúng tồn tại?

Câu trả lời:


38

Bài giảng được đề xuất: Tại sao / sdcard / biến thành / sdcard / 0 / với 4.2? .

Tóm lại: Nó liên quan đến chức năng nhiều người dùng được giới thiệu với Jelly Bean:

  • /storage/emulated/0/: theo hiểu biết của tôi, điều này đề cập đến "MMC giả lập" ("phần chủ sở hữu"). Thông thường đây là một trong những. "0" là viết tắt của người dùng ở đây, "0" là người dùng đầu tiên hay còn gọi là chủ sở hữu thiết bị. Nếu bạn tạo thêm người dùng, con số này sẽ tăng lên cho mỗi người.
  • /storage/emulated/legacy/như trước đây, nhưng chỉ vào một phần của người dùng hiện đang làm việc (đối với chủ sở hữu, đây sẽ là một liên kết tượng trưng đến /storage/emulated/0/). Vì vậy, đường dẫn này sẽ đưa mọi người dùng đến "phần" của mình.
  • /sdcard/: Theo nhận xét của Shywim , đây là một liên kết tượng trưng đến ...
    • /mnt/sdcard (Android <4.0)
    • /storage/sdcard0 (Android 4.0 trở lên)
  • /storage/sdcard0/: Vì không có legacymặt dây chuyền ở đây (xem bình luận bên dưới), "0" trong trường hợp này thay vì xác định chính thiết bị (thẻ). Cuối cùng, người ta có thể kết nối một đầu đọc thẻ với một SDCard khác thông qua OTG, sau đó sẽ trở thành /storage/sdcard1(không có bằng chứng cho điều đó, chỉ là một phỏng đoán - nhưng tôi muốn nói là một cái tốt)

Mặc dù người ta có thể đi đến kết luận cũng nên có /storage/sdcard/legacy, nhưng không (xem bình luận) - điều này hoàn toàn có ý nghĩa với giả định của tôi về các con số ở đây không liên quan đến người dùng, mà là có thể có nhiều thẻ: " 0 "sẽ luôn là một trong khe cắm thẻ của thiết bị, do đó không cần phải có" liên kết tượng trưng "ở đây.


Cảm ơn! Và không, không có /storage/sdcard/legacycon đường.
Torben Gundtofte-Bruun

2
Lạ thật. Nhưng điều đó có thể phải làm với thực tế là hầu như không có bất kỳ quyền nào trên một thẻ sdcard thực (do hệ thống tệp FAT không hỗ trợ chúng). Lưu ý sự khác biệt ( /sdcard0/so với /emulated/0), "0" ở đây có thể được dành cho trường hợp người ta gắn nhiều SDCards thông qua đầu đọc thẻ và chế độ máy chủ USB. Chỉ là một phỏng đoán, không phải là một thực tế khó khăn - nhưng tôi muốn nói một điều tốt.
Izzy

Trả lời được cập nhật tương ứng :)
Izzy

2
/sdcard/chỉ đơn giản là một liên kết tượng trưng đến /storage/sdcard0/. Trên phiên bản cũ hơn 4.0.0, nó là /mnt/sdcard/.
Matthieu Harlé

Và tôi giả sử, trên Android 4.0+, /mnt/sdcard/là một liên kết tượng trưng đến /storage/sdcard0/? Vì cả hai đều có thể điều hướng trên Nexus của tôi 4.
MrWhite

2

Phải một chút bối rối nhưng đây là những đường dẫn thay thế cho bố cục bộ nhớ

/ mnt / sdcard0 / (Thẻ SD ảo nội bộ)

và Izzy chính xác của bạn nếu nhiều thiết bị được kết nối, nhưng việc đặt tên có thể khác nhau tùy theo thiết bị.

Ví dụ. / mnt / sdcard1 / (Thẻ SD vật lý trong khe SD)

nhưng các thiết bị khác như ổ flash USB kết nối với bộ chuyển đổi có thể được gọi

/ mnt / media_rw / usbdisk (android kitkat 4.4 trở lên?) hoặc / mnt / usbdisk (sứa 4.1 - 4.2)


1
Có, việc đặt tên có thể phụ thuộc vào thiết bị / nhà sản xuất / ROM. Nhưng thông thường, /mnt/*chỉ là một liên kết tượng trưng trong tất cả các trường hợp đó - với "gắn kết thực sự" nằm bên dưới /storage:)
Izzy

À, tôi cũng có một thư mục shell theo mnt . Tôi chuyển đổi ROM thiết bị thường xuyên và do đó, đối với các rom đó, làm cho SDcard bên ngoài làm bộ nhớ mặc định, thư mục shell hoạt động như bộ nhớ trong của tôi và đối với các rom khác không trao đổi sdcard làm bộ nhớ trong, shell thậm chí không xuất hiện thành hình. Nó chỉ ở đó trong thư mục với tất cả dữ liệu nguyên vẹn, nhưng trình quản lý tệp cục bộ không thể truy cập được. Muốn biết, chính xác nó là gì.
Ali_Waris
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.