Réinitialiser les disques d'une machine
Dans mon quotidien professionnel, j'installe assez régulièrement des postes de travail et des serveurs Linux sur du matériel existant ou reconditionné. Si les disques ne sont pas trop anciens, je vérifie leur santé matérielle et je prends soin de les réinitialiser pour partir sur des bases saines. J'en profite au passage pour vous montrer comment on fait.
On commence par démarrer le système de secours. Une fois que vous disposez
d'un shell, affichez les disques et les partitions à l'aide de la commande
lsblk. Voici à quoi cela ressemble sur un routerboard muni d'un seul
disque :
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 465.8G 0 disk
├─sda1 8:1 0 500M 0 part /boot
├─sda2 8:2 0 461.3G 0 part /
└─sda3 8:3 0 4G 0 part [SWAP]
...
Et voici un serveur muni de deux disques configurés en miroir :
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 1.8T 0 disk
├─sda1 8:1 0 8G 0 part
│ └─md126 9:126 0 8G 0 raid1 [SWAP]
├─sda2 8:2 0 501M 0 part
│ └─md125 9:125 0 500M 0 raid1 /boot
└─sda3 8:3 0 1.8T 0 part
└─md127 9:127 0 1.8T 0 raid1 /
sdb 8:16 0 1.8T 0 disk
├─sdb1 8:17 0 8G 0 part
│ └─md126 9:126 0 8G 0 raid1 [SWAP]
├─sdb2 8:18 0 501M 0 part
│ └─md125 9:125 0 500M 0 raid1 /boot
└─sdb3 8:19 0 1.8T 0 part
└─md127 9:127 0 1.8T 0 raid1 /
...
Le cas échéant, désactivez les assemblages RAID provenant d'une installation antérieure :
Effacez les métadonnées RAID persistantes sur toutes les partitions :
# mdadm --zero-superblock /dev/sda1
# mdadm --zero-superblock /dev/sda2
# mdadm --zero-superblock /dev/sda3
# mdadm --zero-superblock /dev/sdb1
# mdadm --zero-superblock /dev/sdb2
# mdadm --zero-superblock /dev/sdb3
...
Il ne reste plus qu'à supprimer les tables de partitions :
La commande wipefs supprime les signatures des systèmes de fichiers. Voici ce
que cela donne avec quatre disques durs sur un serveur installé en RAID
6 :
# wipefs --all /dev/sda
/dev/sda: 2 bytes were erased at offset 0x000001fe (dos): 55 aa
/dev/sda: calling ioclt to re-read partition table: Success
# wipefs --all /dev/sdb
/dev/sdb: 2 bytes were erased at offset 0x000001fe (dos): 55 aa
/dev/sdb: calling ioclt to re-read partition table: Success
# wipefs --all /dev/sdc
/dev/sdc: 2 bytes were erased at offset 0x000001fe (dos): 55 aa
/dev/sdc: calling ioclt to re-read partition table: Success
# wipefs --all /dev/sdd
/dev/sdd: 2 bytes were erased at offset 0x000001fe (dos): 55 aa
/dev/sdd: calling ioclt to re-read partition table: Success
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 60G 0 disk
sdb 8:16 0 60G 0 disk
sdc 8:32 0 60G 0 disk
sdd 8:48 0 60G 0 disk
...
Vos données sont toujours là !
wipefs n'efface que les tables de partitions, les signatures de systèmes
de fichiers et les métadonnées RAID. Les données elles-mêmes restent sur le
disque et peuvent éventuellement être récupérées avec un outil comme
PhotoRec.
Pour supprimer efficacement les données d'un disque sans avoir à recourir à sa
destruction mécanique, vous pouvez utiliser la commande shred comme ceci par
exemple :
# shred -vzn 8 /dev/sda
shred: /dev/sda: pass 1/9 (random)...
shred: /dev/sda: pass 1/9 (random)...522MiB/60GiB 0%
shred: /dev/sda: pass 1/9 (random)...735MiB/60GiB 1%
shred: /dev/sda: pass 1/9 (random)...982MiB/60GiB 1%
shred: /dev/sda: pass 1/9 (random)...1005MiB/60GiB 1%
shred: /dev/sda: pass 1/9 (random)...1.4GiB/60GiB 2%
...
L'option nucléaire pour détruire les données
Utilisée avec les options ci-dessus, la commande shred est d'ailleurs
conforme au standard 5220-22M du US Department of Defense concernant
l'effacement de données sur un support magnétique.
La rédaction de cette documentation demande du temps et des quantités significatives de café espresso. Vous appréciez ce blog ? Offrez un café au rédacteur en cliquant sur la tasse.

