5 votes

Est-ce la bonne façon d'utiliser dd pour une sauvegarde complète ?

Malheureusement, mon appareil (sm-g3185) n'est pas pris en charge par CWM ou NANDbackup, j'essaie donc de faire une sauvegarde manuellement. J'ai trouvé ce fil qui me dit d'ouvrir un terminal (je suis sur Arch Linux) et d'exécuter :

adb forward tcp:5555 tcp:5555
adb shell
su
/system/xbin/busybox nc -l -p 5555 -e /system/xbin/busybox dd if=/dev/block/mmcblk0

Et ensuite, ouvrez un autre terminal et exécutez :

adb forward tcp:5555 tcp:5555
cd /path/to/store/the/backup
nc 127.0.0.1 5555 | pv -i 0.5 > mmcblk0.raw

J'ai fait tout cela et cela semble fonctionner. Cependant, il y avait un délai de quelques secondes entre le lancement de l'application dd dans le terminal1 et la commande nc dans le terminal2.

Puis-je faire confiance à la sauvegarde que j'ai créée de cette manière ? Cela ne signifie-t-il pas que j'ai perdu une partie de la sortie de dd ? Ne devraient-ils pas être exécutés en même temps ou, du moins, la nc la commande est lancée el dd un ?

4voto

cedrou Points 1709

Puis-je faire confiance à la sauvegarde que j'ai créée de cette manière ?

Oui, bien sûr ! C'est la méthode de sauvegarde la plus précise.

L'intégrité des données peut être vérifiée en comparant les sorties de l'exécution de md5sum(1) sur les deux /dev/block/mmcblk0 sur votre appareil et le mmcblk0.raw image disque sur votre ordinateur.

En outre, vous pouvez utiliser parted(8) pour lister toutes les partitions du fichier de sauvegarde :

parted /path/backup/mmcblk0.raw print

Vous y trouverez votre system et userdata parmi de nombreuses autres contenant des chargeurs de démarrage, des micrologiciels et des images de récupération.

Il y avait un délai de quelques secondes entre le lancement de la dd sur le dispositif et la commande nc sur l'ordinateur hôte. Cela ne signifie-t-il pas que j'ai perdu une partie de la sortie de dd ? Ne devraient-ils pas être exécutés simultanément ou, du moins, ne devraient-ils pas le nc soit lancée avant que la commande dd un ?

Ne vous inquiétez pas ! Lorsque vous exécutez nc -l il écoutera pour une connexion entrante, bloquant le tuyau et gardant dd d'envoyer des données jusqu'à ce que vous établissiez la connexion depuis votre ordinateur.


Note : vous n'avez pas besoin d'exécuter adb forward tcp:5555 tcp:5555 deux fois.

Avertissement

La plupart des appareils modernes cryptent toutes vos données. Assurez-vous que vous pouvez décrypter le fichier de sauvegarde et accéder à vos données avant d'effacer le téléphone.

1voto

Steven Points 11

Je l'ai laissé tourner et après qu'il ait fini, dd rapporté :

7818182656 bytes (7.3GB) copied, 1245.237601 seconds, 6.0MB/s

Et ls -l mmcblk0.raw sur mon ordinateur montre :

-rw-r--r-- 1 terdon terdon 7818182656 Nov 10 14:45 mmcblk0.raw

Puisque le fichier a la bonne taille, on peut supposer que la sauvegarde a réussi.

1voto

ZeDingo Points 11

Voici le résultat de busybox nc -h du Kindle Fire HDX sur lequel je travaille :

BusyBox v1.20.2 (2013-01-21 11:34:41 CET) multi-call binary.

Usage: nc [-iN] [-wN] [-l] [-p PORT] [-f FILE|IPADDR PORT] [-e PROG]

Open a pipe to IP:PORT or FILE

        -e PROG Run PROG after connect
        -l      Listen mode, for inbound connects
                (use -l twice with -e for persistent server)
        -p PORT Local port
        -w SEC  Timeout for connect
        -i SEC  Delay interval for lines sent
        -f FILE Use file (ala /dev/ttyS0) instead of network

Ainsi, l'image entière est reçue parce que netcat attend que la connexion soit établie avant d'exécuter busybox dd if=/dev/block/mmcblk0 cette connexion étant établie par nc 127.0.0.1 5555 dans la deuxième fenêtre du terminal.

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