Effacer complètement un disque dur en ligne de commande
Voici deux méthodes qui permettent d'effacer complètement le contenu d'un disque dur. Elles s'appuient sur les commandes dd ou shred, qui s'occupent de remplir toutes les zones du disque avec des zéros. La récupération des données est ensuite impossible, de quoi vendre ou jeter votre matériel l'esprit tranquille.
Avant de commencer, sachez que si parmi les partitions que vous souhaitez effacer, il y a des partitions systèmes, il faudra obligatoirement démarrer sur un liveCD. Je vous recommande d'utiliser SystemRescueCD, qui est l'utilitaire le plus adéquat pour ce genre d'opération.
Connaître l'emplacement d'un disque
Pour connaître le chemin exact de votre disque (il vous sera demandé par la suite), vous pouvez utiliser la commande fdisk en root :
# fdisk -l
Disk /dev/sda: 1887.4 GB, 1887436800000 bytes
255 heads, 63 sectors/track, 229467 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytesDevice Boot Start End Blocks Id System
/dev/sda1 1 25 200781 83 Linux
/dev/sda2 26 229335 1841932575 83 Linux
/dev/sda3 229336 229465 1044225 82 Linux swap / Solaris
Dans notre exemple ci-dessus, on détecte la présence du disque /dev/sda avec 3 partitions et une capacité totale de 1,8 To.
Effacer un disque dur avec la commande dd
Pour effacer un disque dur avec l'utilitaire dd, on peut utiliser la commande suivante, qui s'occupe de remplir le périphérique /dev/sda avec des zéros, sur chaque secteur :
dd if=/dev/zero of=/dev/sda
Si on veut supprimer une partition précise, on indiquera le numéro en plus :
dd if=/dev/zero of=/dev/sda1
Et si on veut formater les partitions de tous les disques, il suffit de concaténer les commandes. Un exemple :
dd if=/dev/zero of=/dev/sda; dd if=/dev/zero of=/dev/sdb;
La plupart du temps, l'effacement est très long et il est difficile de connaître le pourcentage de progression. Sachez qu'il existe une astuce. Il suffit d'utiliser la commande dcfldd (présente dans SystemRescueCD), qui fait la même chose que dd mais qui affiche en plus le nombre de mégaoctets traités :
# dcfldd if=/dev/zero of=/dev/sda
6144 blocks (192Mb) written...
Effacer un disque dur avec la commande shred
La méthode proposée ci-dessus (avec la commande dd) est souvent jugée insuffisante par les plus paranoïaques d'entre nous. Il est régulièrement conseillé de répéter l'opération d'écriture plusieurs fois pour être sûr que tous les processus de récupération de données échouent. L'utilitaire shred permet de faire cela assez facilement et en plus, il est disponible de base avec SyStemRescueCD.
Si vous voulez l'installer sur une distribution à base de Debian, vous pouvez lancer la commande suivante :
sudo apt-get install coreutils
Ou celle-ci pour une distribution à base de RPM :
sudo yum install coreutils
Voici un exemple d'utilisation de shred, par défaut il effectue 25 passes :
# shred -z -v /dev/sda
shred: /dev/sda: pass 1/4 (random)...
shred: /dev/sda: pass 1/4 (random)...235MiB/38GiB 0%
shred: /dev/sda: pass 1/4 (random)...1.8GiB/38GiB 4%
shred: /dev/sda: pass 1/4 (random)...2.5GiB/38GiB 6%
shred: /dev/sda: pass 1/4 (random)...3.5GiB/38GiB 9%
...
Les options utilisées sont les suivantes :
- -z indique que le fichier sera réécrit avec des zéros pour dissimuler l'opération.
- -v affiche l'état d'avancement de la commande.
- on peut également ajouter l'option -n 50 pour indiquer, par exemple, que l'on souhaite faire 50 passes
22 Commentaires pour "Effacer complètement un disque dur en ligne de commande"
Flux des commentaires de cet article Ajouter un commentaireLe problème avec dd=/dev/zero est que lorsqu'un bit est mit à 0, il pourrait toujours rester une trace dans son volage de sa valeur précédente. Avec dd=/dev/random on met de l'aléatoire à la place et donc on évite ce problème. Bien sûr c'est plus long.
Cependant ce n'est pas forcement nécessaire puisque les experts disent que c'est déjà suffisant avec un passage avec des zéros pour empêcher une récupération des données. Plusieurs passages en tout cas sont inutiles depuis qu'on a abandonné les disquettes.
https://en.wikipedia.org/wiki/Data_erasure#Number_of_overwrites_needed
L’intérêt de mettre du random plutôt que des zéros est par contre si l'on veut camoufler une partition chiffrée dans un disque. Ça compliquera tout de suite les recherches.
Article bien sympa, je me permet d'ajouter 2 ou 3 infos:
1 - je recommande d'ajouter -bs=32M à la commande dd pour qu'il copie de plus gros blocs, ça permet de réduire le temps de copie.
2 - pour formater 2 disques il vaut mieux ajouter un "sudo dd if=src of=dst bs=32M & ; sudo dd if=src of=dst2 bs=32M &" pour que les deux tâches ce lance en fond. ça permet de formater les deux disques en même temps...
3 - dernière astuce pour savoir ou en est votre dd: "ps -edf | grep dd" enfin faite un "sudo kill -USR1 $PID_DD" et dans la fenêtre ou dd est lancé il vous affiche l'avancement. vous pouvez mettre l'opération dans un "watch" pour avoir un compte rendu permanent...
Bonne journée
Je pense que le mieux est quand même de prendre DBAN: http://www.dban.org/.
C'est plus rapide et plus sécurisé qu'un DD. Qu'en pensez-vous?
Olivier
Petite question qui me torture l'esprit. Ce genre de méthode ça n'explose pas les informations liées à SMART sur le disque ?
@mart-e : en cours on a vu la manière forte, on rempli de '0', on rempli de '1', on rempli de '01', on rempli de '10' et après on rempli aléatoirement et tout ceci trois fois...
Perso le dernier disque dur que j'ai jeté je l'ai explosé mais depuis que j'ai découvert cette méthode j'essaierai de le faire la prochaine fois.
Bonjour,
Les multiples passages pour effacer complètement un disque sont obsolètes
>>La méthode proposée ci-dessus (avec la commande dd) est souvent jugée insuffisante
par qui pourquoi ?
http://fr.wikipedia.org/wiki/M%C3%A9thode_de_Gutmann
Comme je l'ai écrit à un célèbre magasine linux c'était vrai il a 10 ans et lire wiki (qui ne détient pas toujours la vérité c vrai) avant de faire un article ca peut aider
Ha une dernière chose
(ok je suis énervé désolé)
SystemRescueCd est un système linux complet
une distrib basée sur gentoo pas un utilitaire
@Syl21 : l'option -bs=32M est intéressante. Il faudrait faire des tests à l'occasion, pour voir de quel ordre c'est plus rapide.
@dacrovinunghi : la méthode avec plusieurs passages, c'est pour le parano, comme indiqué. Le gens choisisse ensuite la méthode qu'ils souhaitent.
J'ai pas compris pourquoi un simple passage avec dd est pas suffisant. Quelqu'un peut m'expliquer svp ?
@Princeps : il serait possible de récupérer l'état précédent électriquement parlant si j'ai bien compris.
En fait tout est une question de densité. Il était possible de retrouver l'état magnétique des bits avant puisque les disques ne faisaient pas encore des To de capacités. Aujourd'hui c'est clairement impossible.
Un formatage de bas niveaux avec mhdd de hddguru fait aussi l'affaire.
@pti-seb : justement même pour les pârano 1 passage suffit , lisez le wiki renseignez vous.
@Ichigo : un foramtage bas niveau pour effacer un disque OMG ...
Please ne parlez pas formatage.. cela n'a rien à voir...
cf wikipedia
Le formatage est l'action de formater, c'est-à-dire de préparer un support de données informatique (disquette, disque dur, etc.) en y inscrivant un système de fichiers, de façon à ce qu'il soit reconnu par le système d'exploitation de l'ordinateur. Il existe de nombreux systèmes de fichiers différents : FAT, NTFS, HFS, ext2, ext3, UFS, etc.
Donc en fait maintenant, on peut plus retrouver les données parce que ce serait trop long ? Mais avant on parvenait encore à capter des résidus c'est ça ?
il est utilisable aprés ? genre on peut réinstaller windows aprés avoir fait cette manip ?
Petit déterrage...
Alors, avant le passage de 0 à 1 laisser le bit à 0.95 (un exemple)
et de 1 à 0 à 0,05. alors avec un matériel à tête plus sensible on pouvait lire
0.95 comme ancien 0 et 0.05 comme ancien 1. Mais rien ne dit que cela fut fait en réel.
Apparement l'idée du multiple effacement est tellement ancrée dans les esprits que même face au démenti de Gutman lui même les informaticiens (pas tous) continuent de croire aux 30 passages.
@princeps oui On peut utiliser windows. Cependant même si DD est l'outil ultime il ne gère pas le buffer donc a moins de connaitre son matos à fond, DD va mettre beaucoup plus lontemps q'un simple formatage complet pour aucun avantage.
Sinon le bon DD c plutot
dd bs=**cache disque** if=/dev/zero of=/dev/sda
(ou dcfcdd pour un rendu écran notamment)
** cache disque ** est à déterminer, sur les essais que j'ai fait pour clonner des disques (en sata, pata, sur des disques de marques différentes) cela s'approche souvent (pas surement) du cache disque.
Les gains sont parfois surprenants ;
Sinon il est aussi possible de formater directement le disque (en ext3) avec cette commande:
mke2fs -j -c /dev/hda1
ou en fat:
mkdosfs /dev/hda1
Ou pour effacer le disque un petit :
rm -rf
bon là j'avoue je pousse un peu mais ça marche quand même
Ce topic ne veut pas se clore.
@loic non justement
bonjour , je m'appelle freddy je vu comment vous avez fait pour formater un disque dur
c bien .mais j un probleme avec mn flash disque de 8 gb que je n'arrive pas a le formater
le chemein c: /dev/sdb
svp aidez moi avec la commande car je suis debutant sur linux, je donc installé linux fedora 9
Salut freddy, normalement on se geffe pas à un topic pour demander des trucs
surtout un vieux topic.
Si tu débute sur linux je te déconseille de formater des /dev tu risques de confondre les disques
lance gparted tu verras tes disques tu pourras repérer ton 8Go
(alternative fdisk -l ou dmesg au banchement de la clef, puis mkfs)
fedora 9 -> 2008 ca fait un peu vieux
Bonjour, merci pour l'article.
Cependant je tiens à signaler une petite erreur.
Par défaut shred n'effectue pas 25 passes mais 3 :
-n, --iterations=N
overwrite N times instead of the default (3)
Bonjour,
Merci pour cet article.
La commande dcfldd n'est pas (plus ?) dans SystemRescueCD.
Voir la liste des paquets disponibles :
http://www.system-rescue-cd.org/Detailed-packages-list/