Comment effacer un disque dur avec des secteurs non inscriptibles?


21

J'ai donc un disque dur qui tombe en panne. Je veux effacer les données dessus avant de l'envoyer pour remplacement. J'essaie d'utiliser dd if=/dev/zero of=/dev/sdXX, mais cela s'arrête à la première erreur d'écriture. Comment puis-je écraser le lecteur avec des zéros, en ignorant les erreurs d'écriture? conv=noerrorsemble affecter uniquement le fichier d'entrée.


Il y a un rapport de bogue dans la base de données Debian à propos de ce comportement, mais il semble qu'il ne soit pas encore implémenté.
Bobby

badblocksS'arrête- t-il également en cas d'erreur? Peut-être pourriez-vous faire une écriture destructrice avec ça?
oKtosiTe

J'ai maintenant également exécuté destructrice badblockspour être sûr de la quantité de blocs défectueux avant de retourner le disque lundi. Il a également effacé le disque avec succès, mais cela a pris près de 50 heures.
TestUser16418

Réponses:


18

essayez ddrescue au lieu de dd - il essaie plus fort avec des erreurs


1
ddrescue a réussi à effacer le disque entier, ignorant les erreurs d'écriture. Merci beaucoup.
TestUser16418

15

Paramètres que j'ai utilisés avec ddrescue pour effacer le lecteur /dev/sdb(rempli de zéros /dev/zero) et enregistrer la sortie dans le fichier log.txt:

ddrescue --force /dev/zero /dev/sdb log.txt

Pour essuyer avec des données aléatoires, utilisez: ddrescue --force / dev / urandom / dev / sdX tmp.log
Bastion

Comment savez-vous quand c'est fait? Je l'ai fait et l'ai laissé fonctionner pendant environ 20 minutes et il est resté à 0,00% sauvé. C'est un SSD NVMe avec de mauvais blocs que j'essaie d'effacer ... l'utilitaire Samsung Secure Erase ne fonctionnait pas pour moi.
user1960364

3

Si vous cherchez simplement à essuyer le lecteur, essayez dban

Depuis le site:

Darik's Boot and Nuke ("DBAN") est un disque de démarrage autonome qui efface en toute sécurité les disques durs de la plupart des ordinateurs. DBAN supprimera automatiquement et complètement le contenu de tout disque dur qu'il peut détecter, ce qui en fait un utilitaire approprié pour la destruction de données en masse ou d'urgence.


J'allais suggérer cela.
qroberts

3

Pour mémoire, dd a également une option conv=noerrorpour ignorer les erreurs. Si vous avez rencontré des erreurs sur un fichier d'entrée et que vous ne l' utilisez pas/dev/zero , vous souhaitez utiliser conv=noerror,notruncou conv=noerror,syncempêcher dd de tronquer le fichier de sortie là où des erreurs existent sur le fichier d'entrée.

Pour votre requête, vous pouvez essayer cette commande à la place:

dd if=/dev/zero of=/dev/sdXX conv=noerror  

Pour accélérer le processus et potentiellement éviter que le lecteur ne meure à mi-chemin, vous pouvez également essayer d'augmenter la taille en octets de la valeur par défaut 512 (ce qui rend dd lecture secteur par secteur, ce qui est lent) à quelque chose de plus grand, comme 4K ( qui est huit fois plus grand):

dd if=/dev/zero of=/dev/sdXX bs=4K conv=noerror  

Remarque: avec une taille d'octet plus grande, les erreurs ignorées peuvent laisser des sections de données lisibles légèrement inférieures à la taille d'octet que vous choisissez, mais il est peu probable que quiconque puisse obtenir quoi que ce soit de ces sections après que le disque entier a été exécuté via le processus.

En plus de cela, je suis sûr que les fabricants de disques durs éliminent correctement les disques durs qui sont retournés pour le remplacement de la garantie, au cas où le disque tombe en panne avant d'avoir pu terminer complètement le processus de remplacement.


man ddmontre "noerror" signifie "continuer après des erreurs de lecture"
Kevin Smyth

1

Ce n'est certainement pas une solution pour les utilisateurs expérimentés, mais si les erreurs d'écriture sont rares, vous pouvez simplement vouloir continuer manuellement après leur apparition.

Vous pourriez théoriquement écrire quelque chose pour le faire automatiquement, mais ce n'est pas si simple, et je préfère écrire un outil pour faire l'affaire plutôt que de vous embêter avec le script dd ..

   seek=BLOCKS
          skip BLOCKS obs-sized blocks at start of output

1
... ou utilisez dd-rescue ...
Antti Haapala

... dd-rescue gérerait-il correctement les erreurs d' écriture ?
qdot
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.