Tout d'abord, pour le logiciel à utiliser: vous pouvez essayer d'utiliser ddrescue
au lieu de dd
.
ddrescue
dispose d'un commutateur pour effectuer uniquement un nombre limité de tentatives. Il peut également utiliser un fichier journal, il enregistre donc les blocs défectueux. Si vous vous sentez plus tard comme faire plus relances, vous pouvez utiliser le même fichier journal pour exécuter à ddrescue
nouveau avec des options différentes (comme plus retries) et une nouvelle tentative que les blocs nécessaires.
Exemple d'utilisation:
# ddrescue -n /dev/sda /dev/sdb rescue.log
# ddrescue -r1 /dev/sda /dev/sdb rescue.log
Depuis la ddrescue
page info:
-n, --no-scrape
Skip the scraping phase. Avoids spending a lot of time
trying to rescue the most difficult parts of the file.
-r, --retry-passes=<n>
Exit after given number of retry passes. Defaults to 0.
-1 means infinity. Every bad sector is tried only once
in each pass. To retry bad sectors detected on a previous
run, you must specify a non-zero number of retry passes.
Voici quelques sources supplémentaires à utiliser ddrescue
:
Éditer
Dans le cas où le disque dur lui - même prend trop de temps, vous pouvez essayer d'activer une fonctionnalité appelée TLER ( T ime L imited E rror R ECOUVREMENT) ou CCTL ( C ommand C ACHEVEMENT T ime L imit). Tous les disques durs ne l'ont pas, mais vous pouvez l'utiliser pour limiter le temps sur le contrôleur HDD lui-même. Cette approche peut être combinée avec l'utilisation ddrecue
, bien sûr.
Linux a un outil appelé smartctl
(dans le smartmontools
package).
Pour vérifier le paramètre actuel ("désactivé" signifie une durée illimitée, ce que vous ne voulez pas):
# smartctl -l scterc /dev/sda
Pour le définir sur une valeur fixe (5,0 secondes dans cet exemple. Le définir sur 0 désactive TLER):
# smartctl -l scterc,50,50 /dev/sda
Source pour TLER: http://en.wikipedia.org/wiki/TLER
J'ai eu de bons résultats avec des disques autrement illisibles avec ce logiciel.
http://www.cgsecurity.org/wiki/TestDisk
Celui-ci est également un outil de récupération solide. Il peut obtenir des fichiers même si votre table de fichiers est cassée ou s'ils ont été supprimés. C'est un putain de bon outil de criminalistique. Il vide les choses d'une manière vraiment non organisée, mais vous pouvez déplacer toutes les données.
http://www.cgsecurity.org/wiki/PhotoRec
la source
Pour une option rapide et rapide pour sauver le disque, vous pouvez utiliser un fichier de script sh et exécuter le fichier avec sh. Il contient cette ligne, répétez simplement
sudo ddrescue
etsleep 3
quelques fois de plus. Le sommeil est utilisé pour faire reposer le lecteur quelques secondes:Les options utilisées ci-dessus:
-r0
: sans nouvelles tentatives-e +0
: quitter à la première erreur-T 1s
: quitter avec 1 seconde d'échec en lecture-d
: E / S directes-n
: pas de grattageVous pouvez utiliser une
-R
fois la finition avec l'option-A
une fois, cela inversera et supprimera toutes les erreurs et recommencera à l'envers. Signifie qu'il lira les erreurs différemment.la source
Cela dépend de la taille de votre disque dur et du nombre de blocs défectueux qu'il contient. Il me faut généralement 20 minutes pour sauvegarder en utilisant DD un hd sain de 1 téra. Avec de mauvais blocs que je viens de récupérer ce matin, cela m'a pris deux fois plus de temps. J'avais des problèmes de duplication (sauvegarde d'un disque) avec environ 30 blocs défectueux. La première chose que j'ai faite est de sauvegarder des fichiers en utilisant Filezilla normal pour sauvegarder toutes les bonnes données. J'ai remarqué qu'un gros fichier ne copiait pas correctement (arrêt au milieu et redémarrage du transfert). Heureusement, j'ai une sauvegarde précédente du même fichier. Pour dupliquer le disque, j'ai dû trouver les blocs défectueux sur le disque en utilisant cette procédure:
Trouvez d'abord le disque problématique identifiant les informations HD à l'aide de fdisk -l
2e si disons que votre disque est / dev / sdb, vous devez exécuter la commande badblocks -v / dev / sdb, il répertoriera tous vos blocs défectueux sur le lecteur. Heureusement, il y en aura quelques-uns. Si aucun bloc défectueux n'est trouvé, vos blocs de lecteur sont OK et doivent trouver autre chose. Ma taille de bloc est 512, donc j'utilise ce numéro par défaut pour exécuter DD
3ème chaque bloc est de taille 512, donc ce que j'ai fait est de définir bs = 512
Chaque fois que j'exécute DD régulièrement comme je le fais toujours, mes données, après les erreurs, seront corrompues. J'utilise donc les paramètres comme expliqué sur la page https://www.gnu.org/software/coreutils/manual/html_node/dd-invocation.html rechercher la partie "Pour les disques défaillants".
Ça a pris du temps. Chaque mauvais bloc rencontré sonne comme un coup sur le disque défectueux. Il copie copie bloc par bloc, et à travers tous mes mauvais blocs a fait le même bruit. La quantité de fois a fait du bruit, car il a trouvé un autre bloc défectueux et vous indique le message d'erreur d'affichage. Ce que fait `` conv = noerror, sync '' , c'est de supprimer les mauvaises lectures avec des NUL, tandis que `` iflag = fullblock '' prend en charge les lectures courtes, mais conserve la synchronisation de vos données jusqu'à la fin. Aucune corruption du tout, il ne copie tout simplement pas les blocs défectueux et le remplit de NUL vides.
Une fois la copie avec DD terminée, je remplace simplement ce mauvais fichier en rétablissant Filezilla à partir d'une sauvegarde antérieure et tout fonctionnait bien. J'espère que cela sera utile pour les autres essayant de sauvegarder les disques défectueux.
REMARQUE: Mes mauvais blocs étaient à peu près proches les uns des autres. Environ 4 blocs à la fois ensemble dans des groupes où détecté mauvais. Si vos blocs sont partout sur le disque, plusieurs fichiers pourraient être affectés. Heureusement, dans mon cas, un gros fichier de 4 Go de base de données n'a été affecté.
la source