Làm thế nào để liệt kê tất cả các phân vùng chính với nhãn của họ?


11

Tôi muốn tìm ra tất cả các phân vùng trên thiết bị của mình cùng với sự tôn trọng của họ. điểm hoặc nhãn gắn kết (tức là biết mà phân vùng đang nắm giữ system, recovery, boot, vv). Điều này cần phải độc lập với thiết bị (vì tôi có nhiều thiết bị). Mục tiêu là cho ddhọ và biết hình ảnh nào là cái gì.

Tôi đã thấy Command để liệt kê các điểm gắn kết phân vùng? - tuy nhiên, mục tiêu chỉ là một danh sách phân vùng của các phân vùng được gắn kết. Tôi cần tất cả chúng, và ví dụ như /recoverykhông được gắn kết khi khởi động vào "chế độ làm việc bình thường".

Cho đến nay, phần giới thiệu của tôi đã đưa ra một loạt các phương pháp - nhưng không có cách nào trong số chúng hoạt động trên bất kỳ thiết bị nào tôi đã thử nghiệm:

  • cat /proc/mtd: cái này trống hoặc không tồn tại
  • cat /proc/emmc: cái này trống hoặc không tồn tại
  • cat /proc/dumchar_info: không tồn tại (MTK / MediaTek)
  • ls -al /dev/block/platform/*/by-name: không tồn tại hoặc không có các chi tiết mong muốn

Bất cứ ý tưởng về những gì tôi có thể đã bỏ lỡ? Tất nhiên tôi có thể đi bộ tất cả các /dev/block/mmcblk0p*thiết bị, đổ chúng và sắp xếp chúng sau - nhưng sau đó tôi phải lặp lại cuộc điều tra đó cho mọi thiết bị của mình (và một lần nữa khi ai đó bật lên với một thiết bị khác), vì vậy đó không phải là giải pháp.


EDIT: Xin lưu ý thẻ cho câu hỏi này. Tôi sẽ phải truy cập thông tin đó qua ADB và không muốn cài đặt một số ứng dụng trên thiết bị được giao cho tôi để điều tra. Hãy coi đó là "nền pháp y" (không có thay đổi nào đối với thiết bị), mặc dù điều đó không chính xác;)

Ngoài ra, xin lỗi cho cụm từ sai lầm ban đầu của tôi: "điểm gắn kết" chỉ thú vị cho đến nay chúng tiết lộ mục đích của phân vùng. Tôi không muốn gắn kết / kể lại chúng :)


Hy vọng bạn không phiền tôi đã thêm một thẻ bổ sung
HasH_BrowN

@HasH_BrowN Không thực sự đáp ứng mục đích (Tôi không quan tâm đến việc gắn kết ở đây, đó là lý do tại sao tôi không áp dụng nó ban đầu), nhưng cũng không thực sự bị tổn thương;)
Izzy

Tôi đang soạn một câu trả lời khác cho bạn. Sẽ trả lời chỉ vào KPARTX làm việc cho bạn? Có vẻ đúng.
HasH_BrowN

Không biết trước khi tôi nhìn thấy nó, tôi sợ ...
Izzy

Câu trả lời:


7

Như các câu trả lời hiện có đã cho thấy, dường như không có "cách duy nhất" để đạt được điều đó. Vì vậy, tôi bắt đầu kết hợp các ý tưởng từ allover, nối chúng thành một tập lệnh (hay đúng hơn là "thư viện tập lệnh") để chúng được kiểm tra tuần tự (cho đến khi một cú đánh tốt được thực hiện) và tích hợp nó vào "Công cụ tài liệu thiết bị" có tên là Thanh công cụ . Những người quan tâm có thể tìm thấy nó trong lib/partitions.libtập tin. Vì Thanh công cụ là nguồn mở (GPLv2), vui lòng sao chép và sử dụng nó - hoặc phân nhánh dự án và cải thiện nó.

Giải pháp đầy đủ hơi dài để đăng ở đây (như đã nói, bạn có thể lấy nó tại Github), nhưng vì chính sách của chúng tôi là bao gồm ít nhất là phần chung trong bài đăng, đây là những gì nó làm:

Các nguồn khác nhau cung cấp các bộ chi tiết khác nhau, do đó, trước tiên, nó sẽ thử "những thứ tốt nhất" - và sau đó đệ quy lại cho đến khi ít nhất một cái gì đó được tìm thấy.

  • /proc/dumchar_infocung cấp hầu hết các chi tiết, vì vậy điều này được thử đầu tiên. Người dùng MTK hạnh phúc sẽ nhận được điều này.
  • /proc/mtd là nguồn tốt thứ hai.
  • /proc/emmc nên có nhiều như các ứng cử viên trước, nhưng hơi khó sử dụng
  • /dev/block/platform/*/by-name, đã kiểm tra chéo với
  • /proc/partitionskiểm tra chéo với /proc/mountschúng tôi ít nhất là các phân vùng được gắn

Vì vậy, kịch bản tôi đã xây dựng về cơ bản sẽ chuyển các nguồn theo thứ tự này, dừng ngay khi có thể thu thập thông tin chi tiết (ví dụ: nếu /proc/dumchar_infođược tìm thấy, không cần phải phân tích tất cả các nguồn khác). Tất cả chúng được đưa vào các chức năng riêng biệt, trả về dữ liệu bằng cách sử dụng cùng một cấu trúc, người ta thậm chí có thể hợp nhất các kết quả từ tất cả chúng.

Nếu ai đó có thể đưa ra một giải pháp tốt hơn, tất nhiên tôi luôn luôn mở cho ý tưởng :)


4

Tôi vấp phải câu hỏi này. Tôi thích một thử thách ...

Công cụ mà tôi đã sử dụng: BusyBox

Tôi đã đưa ra 3 lệnh (một lệnh bạn đã liệt kê) để cung cấp một số thông tin về các phân vùng

busybox ls -QAl --color=never /dev/block/platform/*/by-name  
Đầu ra:
lrwxrwxrwx    1 0        0               20 Jan 30  1970 "DDR" -> "/dev/block/mmcblk0p4"
lrwxrwxrwx    1 0        0               20 Jan 30  1970 "aboot" -> "/dev/block/mmcblk0p5"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "abootf" -> "/dev/block/mmcblk0p16"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "boot" -> "/dev/block/mmcblk0p18"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "cache" -> "/dev/block/mmcblk0p41"
lrwxrwxrwx    1 0        0               20 Jan 30  1970 "dbi" -> "/dev/block/mmcblk0p3"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "dbibak" -> "/dev/block/mmcblk0p10"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "drm" -> "/dev/block/mmcblk0p36"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "eksst" -> "/dev/block/mmcblk0p29"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "encrypt" -> "/dev/block/mmcblk0p28"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "factory" -> "/dev/block/mmcblk0p39"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "fota" -> "/dev/block/mmcblk0p34"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "fsc" -> "/dev/block/mmcblk0p25"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "fsg" -> "/dev/block/mmcblk0p24"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "grow" -> "/dev/block/mmcblk0p43"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "laf" -> "/dev/block/mmcblk0p33"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "misc" -> "/dev/block/mmcblk0p32"
lrwxrwxrwx    1 0        0               20 Jan 30  1970 "modem" -> "/dev/block/mmcblk0p1"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "modemst1" -> "/dev/block/mmcblk0p21"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "modemst2" -> "/dev/block/mmcblk0p22"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "mpt" -> "/dev/block/mmcblk0p38"
lrwxrwxrwx    1 0        0               20 Jan 30  1970 "pad" -> "/dev/block/mmcblk0p8"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "pad1" -> "/dev/block/mmcblk0p23"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "pad2" -> "/dev/block/mmcblk0p27"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "persist" -> "/dev/block/mmcblk0p19"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "rct" -> "/dev/block/mmcblk0p30"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "recovery" -> "/dev/block/mmcblk0p20"
lrwxrwxrwx    1 0        0               20 Jan 30  1970 "rpm" -> "/dev/block/mmcblk0p6"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "rpmbak" -> "/dev/block/mmcblk0p11"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "rpmf" -> "/dev/block/mmcblk0p13"
lrwxrwxrwx    1 0        0               20 Jan 30  1970 "sbl1" -> "/dev/block/mmcblk0p2"
lrwxrwxrwx    1 0        0               20 Jan 30  1970 "sbl1b" -> "/dev/block/mmcblk0p9"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "sdif" -> "/dev/block/mmcblk0p15"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "sns" -> "/dev/block/mmcblk0p37"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "spare1" -> "/dev/block/mmcblk0p17"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "spare2" -> "/dev/block/mmcblk0p31"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "spare3" -> "/dev/block/mmcblk0p35"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "ssd" -> "/dev/block/mmcblk0p26"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "system" -> "/dev/block/mmcblk0p40"
lrwxrwxrwx    1 0        0               20 Jan 30  1970 "tz" -> "/dev/block/mmcblk0p7"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "tzbak" -> "/dev/block/mmcblk0p12"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "tzf" -> "/dev/block/mmcblk0p14"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "userdata" -> "/dev/block/mmcblk0p42"

busybox blkid
Đầu ra:
/dev/block/vold/179:65: LABEL="ANDROID" UUID="87B8-10F1"
/dev/block/mmcblk1p1: LABEL="ANDROID" UUID="87B8-10F1"
/dev/block/mmcblk0p42: UUID="57f8f4bc-abf4-655f-bf67-946fc0f9f25b"
/dev/block/mmcblk0p41: UUID="57f8f4bc-abf4-655f-bf67-946fc0f9f25b"
/dev/block/mmcblk0p40: UUID="57f8f4bc-abf4-655f-bf67-946fc0f9f25b"
/dev/block/mmcblk0p38: UUID="57f8f4bc-abf4-655f-bf67-946fc0f9f25b"
/dev/block/mmcblk0p37: UUID="57f8f4bc-abf4-655f-bf67-946fc0f9f25b"
/dev/block/mmcblk0p36: UUID="57f8f4bc-abf4-655f-bf67-946fc0f9f25b"
/dev/block/mmcblk0p19: UUID="57f8f4bc-abf4-655f-bf67-946fc0f9f25b"
/dev/block/mmcblk0p1: UUID="00BC-614E"

busybox df -ma
Đầu ra:
Filesystem           1M-blocks      Used Available Use% Mounted on
tmpfs                     1415         0      1415   0% /dev
devpts                       0         0         0   0% /dev/pts
proc                         0         0         0   0% /proc
sysfs                        0         0         0   0% /sys
selinuxfs                    0         0         0   0% /sys/fs/selinux
debugfs                      0         0         0   0% /sys/kernel/debug
none                         0         0         0   0% /acct
none                      1415         0      1415   0% /sys/fs/cgroup
tmpfs                     1415         0      1415   0% /mnt/asec
tmpfs                     1415         0      1415   0% /mnt/obb
none                         0         0         0   0% /dev/cpuctl
/dev/block/platform/msm_sdcc.1/by-name/system                              2524       715      1808  28% /system
/dev/block/platform/msm_sdcc.1/by-name/userdata                         25620      5066     20514  20% /data
/dev/block/platform/msm_sdcc.1/by-name/cache                           834        13       820   2% /cache
/dev/block/platform/msm_sdcc.1/by-name/persist                            31         4        27  13% /persist
/dev/block/platform/msm_sdcc.1/by-name/modem                            64        56         7  88% /firmware
/dev/block/platform/msm_sdcc.1/by-name/sns                             8         4         4  52% /sns
/dev/block/platform/msm_sdcc.1/by-name/drm                             8         4         3  56% /persist-lg
/dev/block/platform/msm_sdcc.1/by-name/mpt                            31        13        18  41% /mpt
/dev/fuse                25620      5066     20514  20% /mnt/shell/emulated
/dev/block/vold/179:65   60891     10820     50071  18% /mnt/media_rw/sdcard1
/dev/fuse                60891     10820     50071  18% /storage/sdcard1

1
Cảm ơn những nỗ lực của bạn, Ryan! Tôi cũng đã chơi với busybox(rất tiếc là không có sẵn trên "một số thiết bị của bạn bè" mà tôi đã nhận được). blkidkhông tiết lộ phân vùng đó là gì (khởi động, khôi phục, v.v.) và */by-name/*không tồn tại trên tất cả các thiết bị (và khi có, các tên đôi khi khá khó hiểu - ví dụ: trên LG Optimus 4X của tôi, các tên đều là 3- chỉ ký tự và không nhất thiết phải "nói"). dfchỉ liệt kê các thiết bị được gắn kết, vì vậy nó sẽ không hiển thị, ví dụ như phục hồi khi chạy ở "chế độ bình thường" - vì vậy ở đây sử dụng dễ dàng hơn /proc/mounts.
Izzy

Bạn cũng có thể muốn hỏi điều này trên Unix & Linux . Họ có thể nhận thức được các cách để có được thông tin. Tất cả mọi thứ tôi đã nghiên cứu đều nói 'fdisk' hoặc các công cụ khác không trả lại được gì hoặc không tồn tại trên hệ thống Android.
Ryan Conrad

Đó cũng là kinh nghiệm của tôi. Tôi đã hỏi một câu hỏi liên quan về SO với một góc nhìn khác, nhưng vẫn chưa có câu trả lời nào. Sợ tôi hỏi điều không thể. Nó khá dễ dàng đạt được trên các thiết bị hỗ trợ /proc/mtd- nhưng thật không may, dường như không còn được phổ biến với các thiết bị hiện tại. Trên một số thiết bị tôi thậm chí đã tìm thấy .fstabcác tệp, nhưng một lần nữa, a) không phải trên tất cả, và b) ngay cả khi, chúng có vẻ không đáng tin cậy (một số phần chắc chắn là sai ở đó).
Izzy

1

KPARTX

Lệnh kpartx đọc các bảng phân vùng và ánh xạ các phân vùng vào các tệp thiết bị. Nó hoạt động trên các thiết bị và hình ảnh đĩa. Điều này có nghĩa là chúng ta có thể ánh xạ các phân vùng HFS trong ảnh đĩa vào một tệp thiết bị khối đặc biệt và gắn các phân vùng đó bằng cách giải quyết tệp khối thiết bị đó như thể nó là một phần của thiết bị đính kèm.

http: // linuxsleut Breath.blogspot.com/2012/10/christmas-come-early-hfshfs-mounting.html

Các ví dụ trong liên kết là MacBook Pro, nhưng các hình ảnh đĩa khác nhau sẽ hoạt động tốt miễn là chúng được trình bày cho GNU Linux ở định dạng RAW. (xmount - xem bên dưới)

usage : kpartx [-a|-d|-l] [-f] [-v] wholedisk

-a add partition devmappings
-r devmappings will be readonly
-d del partition devmappings
-u update partition devmappings
-l list partitions devmappings that would be added by -a
-p set device name-partition number delimiter
-g force GUID partition table (GPT)
-f force devmap create
-v verbose
-s sync mode. Don't return until the partitions are created`

xmount

xmount cho phép bạn chuyển đổi nhanh chóng giữa nhiều loại hình ảnh đĩa cứng đầu vào và đầu ra. xmount tạo ra một hệ thống tệp ảo bằng cách sử dụng FUSE (Hệ thống tệp trong không gian người dùng) có chứa một đại diện ảo của hình ảnh đầu vào. Biểu diễn ảo có thể ở định dạng tệp đĩa ảo DD, DMG, VHD, VirtualBox hoặc định dạng tệp VMDK của VmWare. Hình ảnh đầu vào có thể là các tệp DD, EWF (Định dạng nén nhân chứng chuyên gia) hoặc AFF (Định dạng pháp y nâng cao). Ngoài ra, xmount cũng hỗ trợ truy cập ghi ảo vào các tệp đầu ra được chuyển hướng đến tệp bộ đệm. Điều này cho phép khởi động các hình ảnh đĩa cứng thu được bằng cách sử dụng QEMU, KVM, VirtualBox, VmWare hoặc như nhau.

https://www.pinguin.lu/xmount


Tôi có thể cung cấp thêm chi tiết và thông tin nếu cần hoặc cần.


Tôi ngưỡng mộ sự nhiệt tình của bạn, nhưng: Tôi đã kiểm tra các thiết bị tôi đã có ở đây, không ai trong số họ có sẵn các lệnh đó. Được đoán từ các liên kết của bạn, đó là những công cụ có sẵn cho Linux - nhưng các phân vùng cần điều tra là trên các thiết bị Android, như được mô tả và không thể truy cập trực tiếp từ máy Linux. Hơn nữa: ánh xạ phân vùng đến một thiết bị không tiết lộ những gì trên đó (hệ thống? Dữ liệu? Khởi động?), Vì vậy kpartx không hoạt động. xmount cũng không giống như giải quyết điều đó.
Izzy

Tôi thực sự nghĩ rằng tôi đã vào một cái gì đó. Tôi đã thử. Cảm ơn bạn đã trả lời rất nhanh. Sẽ giữ mũi tôi cho đá mài.
HasH_BrowN

Tôi rất biết ơn những nỗ lực của bạn! Chỉ là kết quả không phù hợp, xin lỗi. Hãy tưởng tượng như sau: Tôi cần lấy /recoveryphân vùng từ một thiết bị đang chạy. Đó không phải là gắn kết trong chế độ bình thường. Làm thế nào để tôi tìm phân vùng để chọn? Với những điều trên, tôi phải chọn tất cả, và tìm hiểu sau. Tạo ra quá nhiều dữ liệu và mất quá nhiều thời gian.
Izzy

1
Ứng dụng DiskInfo đó sẽ hiển thị cho bạn phân vùng khôi phục chưa từng có. Tôi vừa kiểm tra, của tôi (HTC One V) là mmcblk0p21. Nó khá chi tiết cho một ứng dụng.
HasH_BrowN

1
Tình cảm của tôi, nhưng đâu. Có lẽ không được liệt kê / lưu trữ theo cách chúng tôi đang tìm kiếm.
HasH_BrowN

0

DiskInfo sẽ là ứng dụng bạn muốn. Nó sẽ hiển thị tất cả các điểm gắn kết, cộng với tất cả các phân vùng tạm thời và tất cả các phân vùng tạm thời.

Đây chỉ là một giao diện đồ họa, không có chức năng thực sự khác. Hoàn hảo cho nhu cầu của bạn. Điều này không cần phải được sử dụng trên thiết bị khởi động đầy đủ. Root không cần thiết.

Ảnh chụp màn hình
Ảnh chụp màn hình (bấm vào biến thể lớn hơn)


1
Xin lỗi, hoàn toàn không. Bạn chắc chắn đã bỏ lỡ command-linethẻ :) Đoán tôi sẽ viết nó rõ ràng hơn. Tôi biết một số ứng dụng hiển thị các chi tiết này, nhưng tôi cần truy cập / thu thập chúng thông qua adb shellvà không có sự trợ giúp của ứng dụng bổ sung (trước tiên không thể cài đặt ứng dụng đó trên thiết bị cho tôi).
Izzy

Ôi Nó sẽ không làm tổn thương cảm xúc của tôi, muốn tôi xóa cái này (để không bị đánh giá sai)?
HasH_BrowN

Chỉ khi bạn cảm thấy cần thiết. Có thể hữu ích cho người khác đang tìm kiếm các chi tiết tương tự bằng "phương tiện khác". Mặt khác, tôi đã đánh dấu nó là "NAA" (không phải là câu trả lời);) Tôi sẽ không đánh giá thấp nó (nó có thể cung cấp các chi tiết được yêu cầu, tôi không kiểm tra - nó có hiển thị phân vùng nào chứa những gì, như được mô tả trong câu hỏi của tôi không ?) - nhưng sẽ không upvote / chấp nhận nó;)
Izzy

Có, nó sẽ hiển thị những gì phân vùng dành cho (chứa), nó sẽ không hiển thị nội dung thực tế.
HasH_BrowN

1
Điều đó tốt, vì vậy từ thời điểm đó, nó phù hợp! Vì vậy, xin vui lòng, không xóa câu trả lời này :)
Izzy
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.