Effacer complètement un disque dur en ligne de commande


Disque
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 bytes

Device 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

21 Commentaires pour "Effacer complètement un disque dur en ligne de commande"

Flux des commentaires de cet article Ajouter un commentaire
  •  

    Le 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.

    RépondreRépondre
    mart-e , le 12 mars 2012 à 07:33
  •  

    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 ;-)

    RépondreRépondre
    Syl21 , le 12 mars 2012 à 14:44
  •  

    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

    RépondreRépondre
    Olivier , le 12 mars 2012 à 14:55
  •  

    Petite question qui me torture l'esprit. Ce genre de méthode ça n'explose pas les informations liées à SMART sur le disque ?

    RépondreRépondre
    Guillaume , le 12 mars 2012 à 17:39
  •  

    @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.

    RépondreRépondre
    Ichigo-Roku , le 12 mars 2012 à 18:48
  •  

    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

    RépondreRépondre
    dacrovinunghi , le 12 mars 2012 à 18:55
  •  

    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

    RépondreRépondre
    dacrovinunghi , le 12 mars 2012 à 19:05
  •  

    @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.

    RépondreRépondre
    pti-seb , le 13 mars 2012 à 08:07
  •  

    J'ai pas compris pourquoi un simple passage avec dd est pas suffisant. Quelqu'un peut m'expliquer svp ?

    RépondreRépondre
    Princeps , le 13 mars 2012 à 19:19
  •  

    @Princeps : il serait possible de récupérer l'état précédent électriquement parlant si j'ai bien compris.

    RépondreRépondre
    Ichigo-Roku , le 13 mars 2012 à 20:10
  •  

    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.

    RépondreRépondre
    Reparer un disque dur , le 14 mars 2012 à 06:01
  •  

    @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 ...

    RépondreRépondre
    dacrovinunghi , le 14 mars 2012 à 18:39
  •  

    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.

    RépondreRépondre
    Bartounet , le 16 mars 2012 à 11:38
  •  

    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 ?

    RépondreRépondre
    Princeps , le 16 mars 2012 à 19:23
  •  

    il est utilisable aprés ? genre on peut réinstaller windows aprés avoir fait cette manip ?

    RépondreRépondre
    Mike , le 16 avril 2012 à 22:25
  •  

    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 ;

    RépondreRépondre
    dacrovinunghi , le 17 avril 2012 à 08:26
  •  

    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

    RépondreRépondre
    loic , le 2 mai 2012 à 12:17
  •  

    Ce topic ne veut pas se clore.

    @loic non justement

    RépondreRépondre
    dacrovinunghi , le 2 mai 2012 à 19:33
  •  

    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

    RépondreRépondre
    freddy , le 21 juillet 2012 à 13:05
  •  

    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

    RépondreRépondre
    dacrovinunghi , le 21 juillet 2012 à 20:44
  •  

    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)

    RépondreRépondre
    Tetsumaki , le 19 janvier 2014 à 02:05
 

Ajouter un commentaire

actualité android apache apple astuce astuces bash bilboblog blog boot chrome clavier commande commandes conky date debian Desktop développement elementary exploit faille fedora firefox flash gimp gnome google graphique Graphisme hack hacking Hardware humour intel internet iphone jailbreak Jeux Kde kernel libre Linux log logiciels Logiciels Libres lucid lynx maemo mail maquette metasploit microsoft mobile mockup monitoring mozilla multi-touch musique mysql n900 nautilus nokia noyau openoffice open source password photos php Planet publicité red hat redhat rpm réseau screenshot script serveur serveurs shell sql ssh statistiques sysadmin system Sécurité thème tux-planet tv twitter ubuntu unity vidéo vidéos vlc voyage wallpaper windows wordpress yum