J'essaie de sauvegarder boot.img, recovery.img et system.img sur mon téléphone Android. J'ai trouvé plusieurs mentions de l'exécution de cette commande :
cat proc/mtd
et ensuite utiliser simplement dd pour copier les points de montage listés. Cela semble assez simple. Malheureusement, la sortie de cette commande est juste cette seule ligne :
dev: size erasesize name
df ne liste pas non plus la colonne habituelle "Mounted On", juste le système de fichiers. Voici la sortie de df :
Filesystem Size Used Free Blksize
/dev 234M 52K 234M 4096
/mnt/secure 234M 0K 234M 4096
/mnt/asec 234M 0K 234M 4096
/mnt/obb 234M 0K 234M 4096
/system 640M 459M 180M 4096
/data 1G 406M 898M 4096
/cache 369M 6M 363M 4096
/protect_f 8M 4M 4M 4096
/protect_s 8M 4M 4M 4096
/mnt/cd-rom 1M 1M 0K 2048
/storage/sdcard1 1G 24M 1G 16384
/storage/sdcard0 7G 2G 5G 32768
/mnt/secure/asec 7G 2G 5G 32768
Quelques détails sur mon téléphone :
- C'est une BLU ADVANCE 4.0.
- La carte est Mediatek MT6572
- La version d'Android est 4.2.2
- La version du noyau est 3.4.5.
- J'ai l'accès Root
Donc, pour réitérer ma question - où sont les partitions ? Comment puis-je les trouver ?
Bien que je ne sois pas nécessairement opposé à l'utilisation de programmes autres que l'interpréteur de commandes, il me semble que je devrais vraiment être en mesure de faire cela à partir de là.
EDIT : J'ai utilisé dd sur les différents fichiers mmcblk que j'ai trouvé dans /dev/block. J'ai terminé la plupart d'entre eux prématurément car ils faisaient plus de 100Mo, mais deux (mmcblk0p2 et mmcblk0p3) faisaient environ 10Mo chacun, ce qui semble plus probable pour le démarrage et la récupération. Le contenu de ces disques, une fois montés, est le suivant
- un répertoire intitulé lost+found (ext ?)
- un répertoire nommé md, dont les sous-composants diffèrent
Dans mmcblk0p2 le contenu de md est :
- Deux fichiers de type inconnu, un de 4B et un de 2.0KiB, étiquetés respectivement MPOD_000 et ST33A004.
Dans mmcblk0p3 le contenu de md est :
- Un fichier de type inconnu, 2.0KiB, étiqueté ST33B004.
0 votes
Les partitions de démarrage et de récupération ne sont pas montées lorsque Android est en cours d'exécution. Avez-vous un
/dev/block/platform
répertoire ? En général, vous pouvez obtenir vos points de montage en regardant dans le sous-répertoire qui s'y trouve (cela varie en fonction du chipset) et en recherchant le fichierby-name
à l'intérieur de celui-ci. Ainsi, par exemple, sur mon N5, c'est/dev/block/platform/msm_sdcc.1/by-name
. Si j'exécutels -al
Il y est indiqué où se trouvent toutes les partitions.0 votes
J'avais remarqué ce répertoire mais malheureusement il n'y a pas d'option par nom. Il y en a deux appelés mmcblk0boot0 et mmcblk0boot1 - l'un d'eux pourrait être le répertoire de démarrage mais il est difficile de dire lequel, si c'est l'un ou l'autre. Il y a un /dev/BOOT et un /dev/recovery mais BOOT donne une erreur d'argument invalide à dd et cat et /dev/recovery dure beaucoup plus longtemps qu'il ne le devrait (je l'ai arrêté à 800MiB+, plus grand que la partition système).
0 votes
Dylan, une faute de frappe : la barre oblique manquante pour
cat /proc/mtd
. Cela pourrait-il être la cause de la sortie vide ? Aussi,df
ne répertorie que les partitions actuellement montées (/recovery
n'est monté qu'au moment du démarrage, AFAIK).0 votes
C'était intentionnel, je l'ai fait à partir de la racine. Essayer avec / au préalable n'a aucun effet. J'ai mis à jour la question avec plus d'informations, j'ai décidé de copier et de monter des blocs au hasard et de voir ce qu'il y a dedans.
2 votes
Les appareils MTK disposent généralement d'un élément nommé "recovery" dans le répertoire /dev. Avez-vous essayé
dd
-ing that ?0 votes
Oui, il continue à copier à plus de 800MiB, ce qui, j'en suis sûr, n'est pas possible. La partition système, par exemple, ne fait que 650 Mo.
1 votes
Avez-vous essayé d'utiliser la fonction
bs
drapeau ? Essayez quelque chose commedd if=/dev/recovery of=/sdcard/recovery.img bs=6291456c count=1
(de XDA)0 votes
Il produit une image identique à celle de MtkDroidTools et à celle que j'ai trouvée en ligne si je lui passe la même taille que ces images. Le seul commentaire que j'ai vu sur ces images était qu'elles ne fonctionnaient pas, mais il s'agit peut-être d'une erreur de l'utilisateur puisqu'il n'y a pas d'autres explications. Existe-t-il un moyen de confirmer la taille de la partition à partir de la ligne de commande ?
0 votes
Aureljared : J'ai pu extraire un ramdisk de l'image produite par cette commande, donc elle est probablement valide après tout. Si vous voulez poster cela comme une réponse complète, je la marquerai comme correcte.
0 votes
La course à pied
mount
sans arguments devrait afficher les valeurs "filesystem" et "mounted on" que vous attendez de la part dedf
.0 votes
Faites simplement "fdisk -l /dev/block/mmcblk0" et vous verrez toutes les partitions avec leur nom, et pas seulement celles qui sont montées.