Dans mon quotidien professionnel, j’installe assez régulièrement 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 la console de secours. Si vous n’avez pas lu l’article en question, c’est le moment de le faire.
L’opération fonctionnera à l’identique si vous utilisez un support d’installation de Red Hat Enterprise Linux, CentOS, Oracle Linux ou Springdale Linux. En principe, n’importe quel LiveCD de Linux fera l’affaire, du moment que vous disposez des commandes
lsblk
, mdadm
et sgdisk
utilisées ci-dessous.
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 routeur 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.
# mdadm --stop --scan
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.
# sgdisk --zap-all /dev/sda
# sgdisk --zap-all /dev/sdb
...
Post Scriptum 28 janvier 2021 : Après la publication de cet article, deux lecteurs ont attiré mon attention sur la commande wipefs
, qui fait essentiellement la même chose. J’ai donc expérimenté un peu avec cette commande, et effectivement, elle simplifie les choses de manière significative.
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
...
Attention : 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%
...
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.
6 commentaires
Wipefs · 26 janvier 2021 à 18 h 12 min
Ce n’est pas ce que fait la commande wipefs ?
kikinovak · 26 janvier 2021 à 19 h 31 min
Bonne question. Qui me fait songer à une citation du grand philosophe allemand Lichtenberg. Parfois, il faut écrire des lettres très longues avant de pouvoir écrire une lettre courte. Je regarde ça demain.
kikinovak · 28 janvier 2021 à 14 h 49 min
Effectivement, et j’ai mis l’article à jour en intégrant la commande. Merci pour la suggestion.
Cascador · 27 janvier 2021 à 21 h 32 min
Salute,
« Voici à quoi cela ressemble sur un routeur » => serveur ?
Chez nous on utilise wipefs et shred.
Tcho !
kikinovak · 27 janvier 2021 à 22 h 54 min
Si si, un routerboard que j’ai pris en exemple parce qu’il n’y a qu’un seul disque dedans. Les serveurs ici ont tous au moins deux voire quatre disques.
Et merci encore pour le tuyau avec
wipefs
, que je ne connaissais pas.kikinovak · 28 janvier 2021 à 14 h 48 min
J’ai mis à jour l’article en intégrant tes suggestions. Merci !