Je dois récupérer mon USB HD 1 To. J'utilise ddrescue
pour y accomplir. Y a-t-il une façon de pouvoir reprendre ddrescue
une fois que je le faisais?
J'utilise la commande:
ddrescue /dev/sdd1 ./bye1t.dd_rescue.image
DDRESCUE peut être repris, mais il nécessite un fichier journal pour pouvoir le faire. Le fichier journal enregistrera les progrès réalisés jusqu'à présent et le redémarrage de DDRESCUE lira le fichier journal et commencera où il s'est arrêté.
Le fichier journal serait le troisième paramètre:
ddrescue /dev/sdd1 ./bye1t.dd_rescue.image ~/sdd1.log
Si vous avez déjà démarré une course DDRESCUE sans un fichier journal et l'annuler, la prochaine fois que DDRESCUE s'exécute, il commencera au début car il n'a pas d'enregistrement de ce qui a déjà été récupéré.
REMARQUE : ddscue et dd_rescue sont des programmes différents.
Même si vous avez oublié de spécifier un fichier journal, il peut y avoir espoir:
Donc, vous ne l'avez pas lu le tutoriel et ddrescue commencé sans un fichier journal. Maintenant, deux jours plus tard, votre ordinateur a planté et vous ne pouvez pas savoir combien de données ddrescue ont réussi à sauver. Pire encore, vous ne pouvez pas reprendre le sauvetage; vous devez redémarrer dès le début.
Ou peut-être que vous avez commencé la copie d'un disque avec dd conv=noerror,sync
Et sont maintenant dans la même situation décrite ci-dessus. Dans ce cas, notez que vous ne pouvez pas utiliser une copie faite par dd à moins qu'il a été invoqué avec le sync
argument conversion.
Ne désespérez pas (encore). Ddrescue peut, dans certains cas, générer un fichier journal approximatif, à partir du fichier d'entrée et la (partielle) copie, qui est presque aussi bon que d'un fichier journal exact. Il fait cela en supposant simplement que les secteurs containng tous les zéros ne sont pas secourus.
Cependant, si la destination de la copie était un lecteur ou une partition (ou un fichier régulier existant et troncature n'a pas été demandée), plus probablement vous devrez redémarrer ddrescue dès le début. (Cette fois-ci avec un fichier journal, bien sûr). La raison est que les anciennes données peuvent être présentes dans le lecteur qui n'ont pas encore été écrasé, et peuvent donc être non essayée, mais non nul.
Par exemple, si vous devez d'abord essayé une de ces commandes:
ddrescue infile outfile
ou
dd if=infile of=outfile conv=noerror,sync
vous pouvez générer un fichier journal approximative avec cette commande:
ddrescue --generate-mode infile outfile logfile
Comme d'autres l'ont dit, vous devez toujours spécifier un logfile comme troisième paramètre, qui permettra de reprendre la reprise. Puisque vous ne l'avez pas fait, cela ne va pas vous aider ici. Si vous savez approximativement, quel point le processus est arrivé, vous pouvez utiliser le --input-position
et --output-position
Paramètres Pour commencer à partir de ce point (assurez-vous de définir les deux paramètres sur la même valeur, sinon la sortie sera corrompue).
Puisque vous n'avez pas spécifié de fichier journal comme troisième paramètre, la reprise ne peut pas être effectuée automatiquement. Vous pouvez créer un logfile à la main si vous connaissez les secteurs déjà sauvés, la syntaxe est facile. Il suffit de commencer une autre sauvetage factice à un autre fichier tout en spécifiant un journal et laissez-le lire différentes zones. Puis modifiez le journal pour représenter les zones déjà sauvées dans votre premier fichier. Réexécutez maintenant votre commande précédente mais donnez le nom du fichier journal comme troisième paramètre. DDRESCUE reprendra ensuite sur le premier secteur non plat.
Par https://wiki.archlinux.org/index.php/disk_cloning Il semble que avec le conv=noerror,sync
Switch, dd
Does en fait ajouter des zéros à la fin d'un bloc, pas exactement où les erreurs de lecture ont eu lieu. Cela est contraire aux informations de la réponse de Miles Wolbe à partir de 2013-08-29.
Par exemple, si une séquence correcte est 198123283
Et il y a une erreur de lecture au milieu, elle écrira 198283000
, ne pas 198000283
.
Donc, au cas où il y avait des erreurs de lecture réellement, la méthode proposée ne sera pas exacte - il y aura des domaines qui auraient été lisibles qui se retrouveront remplis de zéros, mais seront considérés comme "sauvés".
Au fait, c'est une bonne pratique de commencer une telle tentative de récupération en remplissant le lecteur de destination avec des zéros (ou au moins l'espace libre, qui peut être fait avec WinHex par exemple).