12 votes

Comment lister toutes les partitions principales avec leurs étiquettes ?

Je veux connaître toutes les partitions de mon appareil avec leurs points de montage ou leurs étiquettes respectives (c'est-à-dire savoir quelle partition contient le disque dur). system , recovery , boot etc.). Il doit être indépendant des appareils (car j'en ai plusieurs). Le but est de dd et savoir quelle image est quoi.

J'ai vu Commande pour lister les points de montage des partitions ? - cependant, là le but était juste une liste de partitions montées. J'ai besoin de toutes, et par ex. /recovery n'est pas monté lors du démarrage en "mode de travail normal".

Jusqu'à présent, j'ai trouvé un certain nombre d'approches, mais aucune d'entre elles ne fonctionne sur les appareils que j'ai testés :

  • cat /proc/mtd : ceci est vide ou inexistant
  • cat /proc/emmc : ceci est vide ou inexistant
  • cat /proc/dumchar_info : non existant (MTK/MediaTek)
  • ls -al /dev/block/platform/*/by-name : soit inexistant, soit ne possédant pas les détails souhaités.

Une idée de ce que j'ai pu manquer ? Bien sûr, je pourrais marcher tout le /dev/block/mmcblk0p* Mais je devais alors répéter cette enquête pour chacun de mes appareils (et encore une fois quand quelqu'un arrive avec un autre appareil), donc ce n'est pas une solution.


EDIT。 Veuillez noter que le ligne de commande tag à cette question. Je vais devoir accéder à ces informations via ADB, et je ne veux pas installer une application sur un appareil qui m'est remis pour enquête. Considérez qu'il s'agit d'un "background forensics" (aucune modification de l'appareil), bien que ce ne soit pas exactement vrai ;)

Je m'excuse également pour mon erreur de formulation initiale : les "points de montage" ne sont intéressants que dans la mesure où ils révèlent l'objectif de la partition. Je ne veux pas les monter/remonter :)

8voto

Milner Points 533

Comme les réponses existantes le montrent déjà, il ne semble pas y avoir de "moyen unique" d'y parvenir. J'ai donc commencé à combiner des idées provenant de partout, à les réunir dans un script (ou plutôt une "bibliothèque de scripts") pour les faire vérifier séquentiellement (jusqu'à ce qu'un bon résultat soit obtenu), et j'ai intégré cela dans mon "Outil de documentation des dispositifs" nommé Adebar . Les personnes intéressées peuvent le trouver dans le lib/partitions.lib dossier. Comme Adebar est un logiciel libre (GPLv2), vous êtes libre de le copier et de l'utiliser - ou de bifurquer le projet et de l'améliorer.

La solution complète est un peu longue à poster ici (comme indiqué, vous pouvez la récupérer sur Github), mais comme notre politique est d'inclure au moins la partie générale dans le post, voici ce qu'elle fait :

Les différentes sources fournissent des ensembles de détails différents, de sorte que l'on essaie d'abord les "meilleures", puis que l'on récidive jusqu'à ce que l'on trouve au moins quelque chose.

  • /proc/dumchar_info donne le plus de détails, c'est pourquoi on l'essaie en premier. Les utilisateurs heureux de MTK obtiendront ceci.
  • /proc/mtd est la deuxième meilleure source.
  • /proc/emmc devrait avoir presque autant que les candidats précédents, mais est un peu délicat à utiliser
  • /dev/block/platform/*/by-name , vérifié par recoupement avec
  • /proc/partitions vérifié par recoupement avec /proc/mounts nous donne au moins les partitions montées

Le script que j'ai construit parcourt donc les sources dans cet ordre, en s'arrêtant dès qu'il a pu collecter des détails (par exemple si /proc/dumchar_info a été trouvé, il n'est pas nécessaire d'analyser tous les autres). Toutes les fonctions sont séparées et renvoient des données en utilisant la même structure. On peut même fusionner les résultats de toutes les fonctions.

Si quelqu'un peut proposer une meilleure solution, je suis bien sûr toujours ouvert à l'idée :)

4voto

mercutio Points 5828

Je suis tombé sur cette question. J'aime les défis...

Les outils que j'ai utilisés : BusyBox

J'ai trouvé 3 commandes (dont une que vous avez listée) pour donner des informations sur les partitions.

busybox ls -QAl --color=never /dev/block/platform/*/by-name  

Sortie :

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

Sortie :

/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

Sortie :

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

1voto

HasH_BrowN Points 2420

KPARTX

La commande kpartx lit les tables de partitions et fait correspondre les partitions aux fichiers de périphériques. Elle fonctionne sur les périphériques et les images de disque. Cela signifie que nous pouvons mapper des partitions HFS dans une image de disque à un fichier spécial de périphérique de bloc et monter ces partitions en adressant ce fichier de périphérique de bloc comme s'il faisait partie d'un périphérique attaché.

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

Les exemples en lien sont pour MacBook Pro, mais d'autres images disques devraient fonctionner correctement tant qu'elles sont présentées à GNU Linux en RAW. (xmount - voir ci-dessous)

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 vous permet de convertir à la volée plusieurs types d'images de disques durs d'entrée et de sortie. xmount crée un système de fichiers virtuel à l'aide de FUSE (Filesystem in Userspace) qui contient une représentation virtuelle de l'image d'entrée. La représentation virtuelle peut être au format brut DD, DMG, VHD, au format de fichier de disque virtuel de VirtualBox ou au format de fichier VMDK de VmWare. Les images d'entrée peuvent être des fichiers DD bruts, EWF (Expert Witness Compression Format) ou AFF (Advanced Forensic Format). En outre, xmount prend également en charge l'accès virtuel en écriture aux fichiers de sortie qui est redirigé vers un fichier cache. Cela permet d'amorcer les images de disques durs acquises à l'aide de QEMU, KVM, VirtualBox, VmWare ou autres.

https://www.pinguin.lu/xmount


Je peux fournir des détails et des informations supplémentaires si nécessaire.

0voto

HasH_BrowN Points 2420

DiskInfo sera l'application que vous voulez. Elle montrera tous les points de montage, plus tous les non montés, et toutes les partitions temporaires.

Il s'agit simplement d'une interface graphique, sans autre fonctionnalité réelle. Parfait pour votre besoin. Il faut l'utiliser sur un appareil entièrement démarré. Root n'est pas nécessaire.

Screenshot
Capture d'écran (cliquez pour une variante plus grande)

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X