Bonjour à tous, je poste ici un petit aide mémoire (pour moi mais évidemment, si ça peut vous servir, vous gênez pas !). Je viens de rencontrer le cas d’un téléphone Android qui refuse de démarrer (un Wiko FEVER 4G qui reste indéfiniment sur le logo de la marque jusqu’à ce que la batterie soit vide… Moche hein ?) J’ai néanmoins pu faire un backup des userdata depuis le recevory sur la carte SD ce qui m’a généré un petit lot de fichiers en .BACKUP (6 au total, soit à peu près 11Go de data). Super. J’ai pu ensuite réaliser un reset factory et… toujours pas de système Android qui démarre. Un flash via l’outil de Wiko aura fini d’achever la pauvre bête, le téléphone refusant désormais de s’allumer. Repose en paix petit Wiko.
Je me retrouve donc avec des fichiers .BACKUP contenant mes précieuses données mais pas de smartphone Android fonctionnel sous la main pour les exploiter. Voyons ici comment parcourir le contenu de ces fichiers BACKUP pour récupérer l’essentiel.
Création d’une image disque avec dd
Les backups étant répartis dans plusieurs fichiers différents (.BACKUP, .BACKUP1, .BACKUP2…), nous allons les rassembler dans une image disque unique que nous allons monter ensuite au système de fichiers. Linux (peu importe la distribution) propose l’outil dd
(datadump) qui permet de convertir un fichier dans un autre. Nous allons donner à manger nos fichiers .BACKUP à dd
pour qu’il nous “digère” ça en image ext4 que nous pourrons lire ensuite.
Copiez vos fichier .BACKUP dans un dossier et ouvrez un terminal depuis ce dossier. Au prompt, entrez la commande suivante :
$ dd if=userdata_xxxxxxxx_xxxxxx.backup skip=512 bs=128k iflag=nocache,skip_bytes oflag=nocache,append conv=notrunc of=img.ext4
Explicage : “if
” correspond à l’input file, autrement dit le fichier qu’on veut traiter. “skip=512
” demande à dd d’ignorer les 512 premiers blocs du fichier BACKUP qui ne nous servirons pas (contient à priori des données d’en-tête surement utiles à Android pour exploiter les données). “bs=128k
” demande à dd
de lire et d’écrire des blocs d’une taille de 128ko à la fois. Compte tenu de la taille des fichiers à traiter, inutile ici d’indiquer une valeur plus élevée. “iflag=nocache,skip_bytes
” et “oflag=nocache,append
” permettent de préciser le comportement de dd
durant l’opération comme ne pas utiliser le cache du système de fichiers ou continuer d’écrire dans le fichier de sortie plutôt que de l’écraser. “conv=notrunc
” demande à ce que le fichier de sortie ne soit pas tronqué pour qu’on ait bien un fichier unique à l’arrivée. Enfin “of
” correspond au nom du fichier qui résultera de la commande (output file).
Relancer cette commande pour chaque fichier .BACKUP en votre possession, sans changer l’output file.
Montage de l’image disque avec mount
Une fois tous vos fichiers backup passé dans la moulinette dd, nous pouvons monter le fichier img.ext4 au système de fichiers pour lire son contenu.
$ sudo mkdir /media/backup
$ sudo mount -t ext4 -o loop img.ext4 /media/backup
Explicage : “sudo
” permet de demander des privilèges administrateur pour réaliser les opérations qui suivent. “mkdir /media/backup
” permet de créer le repertoire qui accueillera notre image disque nouvellement créée. Le point de montage sera /media/backup
. C’est ici qu’on pourra accéder au contenu de notre image disque. “mount -t ext4 -o loop
” est à proprement parler l’action de monter notre image en tant que système de fichiers ext4
à part entière. On lui indique notre fichier img.ext4
qui est le résultat des commandes dd
successive qu’on a tapé plus haut et on lui dit que le point de montage sera le répertoire qu’on a créé juste avant.
Vous pouvez désormais utiliser l’explorateur de fichiers (ou le terminal si c’est plus pratique pour vous) pour parcourir vos backups et récupérer le plus précieux. Il faudra fouiller un peu, mais tout sera là.
J’espère que cette manipulation vous sera utile autant qu’elle me l’a été. Des bisous, sortez masqué !