Wie liste ich alle wichtigen Partitionen mit ihren Beschriftungen auf?

11

Ich möchte alle Partitionen auf meinem Gerät zusammen mit ihren jeweiligen Partitionen herausfinden. Bereitstellungspunkte oder Etiketten (dh zu wissen , welche Partition hält system, recovery, boot, etc.). Dies muss geräteunabhängig sein (da ich mehrere Geräte habe). Ziel ist es, zu ddwissen, welches Bild was ist.

Ich habe Befehl zum Auflisten von Partitions-Mount-Punkten gesehen. - Dort war das Ziel jedoch nur eine Partitionsliste der gemounteten Partitionen. Ich brauche sie alle und bin zB /recoverybeim Booten im "normalen Arbeitsmodus" nicht gemountet.

Bisher hat meine Recherche eine Reihe von Ansätzen hervorgebracht - aber keiner von ihnen funktioniert auf einem der Geräte, die ich getestet habe:

  • cat /proc/mtd: Dies ist leer oder nicht vorhanden
  • cat /proc/emmc: Dies ist leer oder nicht vorhanden
  • cat /proc/dumchar_info: nicht vorhanden (MTK / MediaTek)
  • ls -al /dev/block/platform/*/by-name: entweder nicht vorhanden oder nicht mit den gewünschten Details

Irgendeine Idee, was ich hätte verpassen können? Natürlich konnte ich alle /dev/block/mmcblk0p*Geräte laufen lassen , sie entsorgen und später sortieren - aber dann musste ich diese Untersuchung für jedes meiner Geräte wiederholen (und wieder, wenn jemand mit einem anderen auftaucht), also ist das keine Lösung.


BEARBEITEN: Bitte beachten Sie das Tag für diese Frage. Ich muss über ADB auf diese Informationen zugreifen und möchte keine App auf einem Gerät installieren, das mir zur Untersuchung übergeben wurde. Betrachten Sie es als "forensischen Hintergrund" (keine Änderungen am Gerät), obwohl das nicht genau stimmt;)

Ich entschuldige mich auch für meine anfängliche falsche Formulierung: Die "Einhängepunkte" sind nur insofern interessant, als sie den Zweck der Partition offenbaren. Ich möchte sie nicht montieren / wieder montieren :)

Izzy
quelle
Hoffe es macht dir nichts aus Ich habe ein zusätzliches Tag hinzugefügt
HasH_BrowN
@HasH_BrowN Erfüllt nicht wirklich den Zweck (ich bin nicht daran interessiert, hier zu montieren, weshalb ich es ursprünglich nicht angewendet habe), tut aber auch nicht wirklich weh;)
Izzy
Ich verfasse eine andere Antwort für Sie. Funktioniert die Antwort auf KPARTX für Sie? Es scheint richtig zu sein.
HasH_BrowN
Keine Ahnung, bevor ich es sehe, fürchte ich ...
Izzy

Antworten:

7

Wie bereits vorhandene Antworten zeigen, scheint es keinen "einzigartigen Weg" zu geben, dies zu erreichen. Also fing ich an, Ideen von allover zu kombinieren, sie zu einem Skript (oder besser gesagt zu einer "Skriptbibliothek") zusammenzufügen, um sie nacheinander überprüfen zu lassen (bis ein guter Treffer erzielt wurde), und integrierte sie in mein "Gerätedokumentationstool" namens Adebar . Interessenten finden es in der lib/partitions.libDatei. Da Adebar Open Source (GPLv2) ist, können Sie es kopieren und verwenden - oder das Projekt aufteilen und verbessern.

Die vollständige Lösung ist etwas lang, um sie hier zu veröffentlichen (wie gesagt, Sie können sie bei Github herunterladen), aber da unsere Richtlinie darin besteht, zumindest den allgemeinen Teil in den Beitrag aufzunehmen, geschieht Folgendes:

Verschiedene Quellen bieten unterschiedliche Details, daher werden zuerst die "besten" ausprobiert - und dann wiederholt, bis zumindest etwas gefunden wurde.

  • /proc/dumchar_infogibt die meisten Details, also wird dies zuerst versucht. Glückliche MTK-Benutzer werden dies erhalten.
  • /proc/mtd ist die zweitbeste Quelle.
  • /proc/emmc sollte fast so viel haben wie die vorherigen Kandidaten, ist aber etwas schwierig zu bedienen
  • /dev/block/platform/*/by-name, abgeglichen mit…
  • /proc/partitionsDurch Gegenprüfung mit erhalten /proc/mountswir mindestens die gemounteten Partitionen

Das Skript, das ich erstellt habe, durchsucht die Quellen im Grunde genommen in dieser Reihenfolge und stoppt, sobald es in der Lage war, Details zu sammeln (z. B. wenn /proc/dumchar_infoes gefunden wurde, müssen nicht alle anderen analysiert werden). Alle von ihnen sind in separate Funktionen unterteilt und geben Daten mit derselben Struktur zurück. Man kann sogar die Ergebnisse aller zusammenführen.

Wenn jemand eine bessere Lösung finden kann, bin ich natürlich immer offen für die Idee :)

Izzy
quelle
4

Ich bin auf diese Frage gestoßen. Ich mag eine Herausforderung ...

Von mir verwendete Tools: BusyBox

Ich habe mir 3 Befehle ausgedacht (einen, den Sie aufgelistet haben), um einige Informationen zu den Partitionen zu geben

busybox ls -QAl --color=never /dev/block/platform/*/by-name  
Ausgabe:
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
Ausgabe:
/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
Ausgabe:
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
Ryan Conrad
quelle
1
Danke für deine Bemühungen, Ryan! Ich habe auch schon mit gespielt busybox(was leider nicht auf "Geräten einiger Freunde" verfügbar ist, die mir übergeben werden). blkidgibt nicht an, um welche Partition es sich handelt (Booten, Wiederherstellen usw.), und die Partition ist */by-name/*nicht auf allen Geräten vorhanden (und wenn dies der Fall ist, sind die Namen manchmal ziemlich kryptisch - z. B. bei meinem LG Optimus 4X sind die Namen alle 3- nur Zeichen und nicht unbedingt "sprechen"). dflistet nur gemountete Geräte auf, daher wird im "normalen Modus" keine Wiederherstellung angezeigt, z. B. ist die Verwendung hier einfacher /proc/mounts.
Izzy
Vielleicht möchten Sie dies auch unter Unix und Linux fragen . Sie kennen möglicherweise Möglichkeiten, um die Informationen zu erhalten. Alles, was ich recherchiert habe, sagt "fdisk" oder andere Tools, die entweder nichts zurückgeben oder auf dem Android-System nicht existieren.
Ryan Conrad
Das war auch meine Erfahrung. Ich habe eine verwandte Frage zu SO mit einer anderen Perspektive gestellt, aber dort noch keine Antwort erhalten. Ich fürchte, ich frage das Unmögliche. Auf unterstützenden Geräten ist dies ziemlich einfach zu erreichen /proc/mtd- aber leider scheint das nicht mehr mit aktuellen Geräten gefüllt zu sein. Auf einigen Geräten habe ich sogar .fstabDateien gefunden , aber auch hier a) nicht auf allen und b) selbst wenn sie nicht zuverlässig schienen (einige Teile waren dort definitiv falsch).
Izzy
1

KPARTX

Der Befehl kpartx liest Partitionstabellen und ordnet Partitionen Gerätedateien zu. Es funktioniert auf Geräten und Disk-Images. Dies bedeutet, dass wir HFS-Partitionen in einem Festplatten-Image einer speziellen Blockgerätedatei zuordnen und diese Partitionen bereitstellen können, indem wir diese Blockgerätedatei so adressieren, als ob sie Teil eines angeschlossenen Geräts wäre.

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

Die Beispiele in Link sind Feind MacBook Pro, aber verschiedene Disk-Images sollten gut funktionieren, solange sie dem GNU Linux in RAW präsentiert werden. (xmount - siehe unten)

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

Mit xmount können Sie im laufenden Betrieb zwischen mehreren Eingabe- und Ausgabe-Festplattenbildtypen konvertieren. xmount erstellt mithilfe von FUSE (Dateisystem im Userspace) ein virtuelles Dateisystem, das eine virtuelle Darstellung des Eingabebilds enthält. Die virtuelle Darstellung kann in unformatiertem DD-, DMG-, VHD-, VirtualBox-Dateiformat für virtuelle Festplatten oder im VMDK-Dateiformat von VmWare erfolgen. Eingabebilder können unformatierte DD-, EWF- ​​(Expert Witness Compression Format) oder AFF- (Advanced Forensic Format) Dateien sein. Darüber hinaus unterstützt xmount auch den virtuellen Schreibzugriff auf die Ausgabedateien, die in eine Cache-Datei umgeleitet werden. Auf diese Weise können erfasste Festplattenabbilder mit QEMU, KVM, VirtualBox, VmWare oder ähnlichem gestartet werden.

https://www.pinguin.lu/xmount


Ich kann bei Bedarf oder Bedarf zusätzliche Details und Informationen bereitstellen.

HasH_BrowN
quelle
Ich bewundere Ihre Begeisterung, aber: Ich habe die Geräte überprüft, die ich hier habe. Keiner von ihnen verfügt über diese Befehle. Aus Ihren Links geht hervor, dass dies Tools sind, die für Linux verfügbar sind. Die zu untersuchenden Partitionen befinden sich jedoch wie beschrieben auf Android-Geräten und können nicht direkt von einem Linux-Computer aus aufgerufen werden. Außerdem: Wenn Sie eine Partition einem Gerät zuordnen, wird nicht angezeigt, was sich darauf befindet (System? Daten? Boot?), Daher ist kpartx nicht verfügbar. xmount klingt auch nicht nach einer Lösung.
Izzy
Ich dachte wirklich, ich wäre auf etwas. Ich habe es versucht. Danke, dass du so schnell geantwortet hast. Hält meine Nase am Schleifstein.
HasH_BrowN
Ich bin dankbar für Ihre Bemühungen! Es ist nur so, dass die Ergebnisse nicht übereinstimmen, sorry. Stellen Sie sich Folgendes vor: Ich muss die /recoveryPartition von einem laufenden Gerät abrufen. Das ist nicht im normalen Modus gemountet. Wie finde ich heraus, welche Partition ich auswählen soll? Mit dem oben genannten musste ich sie alle auswählen und später herausfinden. Produziert viel zu viele Daten und dauert zu lange.
Izzy
1
Diese DiskInfo-App zeigt Ihnen die nicht gemountete Wiederherstellungspartition. Ich habe gerade überprüft, mein (HTC One V) ist mmcblk0p21. Es ist ziemlich detailliert für eine App.
HasH_BrowN
1
Mein Gefühl, aber wo. Wahrscheinlich nicht so aufgelistet / gespeichert, wie wir es suchen.
HasH_BrowN
0

DiskInfo ist die gewünschte App. Es werden alle Einhängepunkte sowie alle nicht gemounteten und alle temporären Partitionen angezeigt.

Dies ist nur eine grafische Oberfläche ohne andere echte Funktionen. Perfekt für Ihre Bedürfnisse. Dies muss auf einem vollständig gebooteten Gerät verwendet werden. Root wird nicht benötigt.

Bildschirmfoto
Screenshot (für größere Variante klicken)

HasH_BrowN
quelle
1
Entschuldigung, absolut nein. Du musst den command-lineTag verpasst haben :) Ich denke, ich schreibe das besser explizit. Ich kenne eine Reihe von Apps, die diese Details anzeigen, muss sie jedoch über adb shellund ohne die Hilfe einer zusätzlichen App aufrufen / erfassen (kann nicht immer zuerst auf einem mir übergebenen Gerät installiert werden).
Izzy
Hoppla. Es tut meinen Gefühlen nicht weh, möchte ich das löschen (also keine Fehlleitung)?
HasH_BrowN
Nur wenn Sie das Bedürfnis haben. Könnte für jemanden nützlich sein, der auf "andere Weise" nach denselben Details sucht. Andernfalls hätte ich es als "NAA" markiert (keine Antwort);) Ich werde es nicht ablehnen (es könnte die angeforderten Details enthalten, ich habe es nicht überprüft - zeigt es, welche Partition was enthält, wie in meiner Frage beschrieben ?) - aber wird es auch nicht positiv bewerten / akzeptieren;)
Izzy
Ja, es wird angezeigt, wofür die Partition bestimmt ist (enthält), es wird nur nicht der tatsächliche Inhalt angezeigt.
HasH_BrowN
1
Das ist in Ordnung, also passt es von diesem Punkt an! Also bitte, nicht löschen Sie diese Antwort :)
Izzy