Le moyen le plus rapide de nettoyer un SSD de toutes ses partitions pour le repartitionnement sous Linux?

21

Je veux nettoyer un SSD de toutes ses partitions et données, donc je peux le repartitionner (ce n'est pas pour des raisons de sécurité).

J'ai regardé sudo dd if=/dev/zero of=/dev/sdb bs=1Mmais si cela remplit simplement chaque partition avec des zéros, je ne suis pas sûr de ce que je veux faire.

J'ai l'intention d'exécuter cette commande assez souvent, et je ne veux pas épuiser les écritures de mon SSD. Quelqu'un pourrait-il me donner des conseils pour résoudre ce problème?

IgDV
la source
1
Étudiez ceci: ATA Secure Erase . Je n'ai aucune expérience du processus, donc ce n'est pas une réponse, juste un indice. N'importe qui, n'hésitez pas à écrire votre propre réponse à ce sujet si vous savez que c'est la bonne façon.
Kamil Maciorowski
18
Pour des raisons de sécurité, ou simplement parce que vous devez répartir?
user1686
principalement juste pour la répartition
IgDV
14
Action pompe de calibre 12. Et tu savais que quelqu'un allait le dire tôt ou tard!
ssimm
1
@ssimm - Ma préférence va au barbecue au charbon.
Daniel R Hicks

Réponses:

41

Sur un SSD: vous pouvez TRIM des disques entiers ou des partitions en utilisant blkdiscard. Ce n'est pas très sécurisé, mais pratiquement instantané (le disque marque simplement toutes les cellules comme inutilisées).

Pour la sécurité: utilisez le chiffrement complet du disque. Ne vous embêtez pas à essuyer le disque entier s'il est chiffré - il vous suffit d'effacer la zone contenant vos clés (par exemple, les 1 à 2 premiers Mo de chaque partition chiffrée).

Pour le repartitionnement: Encore une fois, ne vous embêtez pas à effacer toutes les données. Il vous suffit de détruire les systèmes de fichiers à l'aide wipefs, puis de nettoyer les 1 premiers Mo de votre disque pour purger les chargeurs de démarrage restants. Après avoir formaté une partition en utilisant mkfs, le système d'exploitation supposera simplement qu'elle est complètement vide.

(En fait, sous Linux, mkfs.ext4 TRIM automatiquement la partition entière avant de la formater.)

user1686
la source
6
Pour le repartitionnement, pourquoi ne pas simplement supprimer les anciennes partitions et en créer de nouvelles?
el.pescado
5
Parce que si vous créez de nouvelles partitions au même endroit (position de départ), vous y trouverez simplement les mêmes anciennes données! (Bien sûr , c'est généralement pas un problème, car le reformatage avec mkfssera de toute façon il poubelle mais différentes situations bizarres. Ne se - wipefsexiste parce qu'il était nécessaire.)
user1686
4
@IgDV - que man wipefsdit-on? (Astuce: regardez le premier exemple dans la section des exemples de la page de manuel)
Timo
2
"il vous suffit d'effacer la zone contenant vos clés" - sur SSD, les clés sont également susceptibles d'être récupérées. Un TPM ou des clés de protection de mot de passe solides pourraient être une meilleure option. blkdiscardserait bien aussi car cela créerait un puzzle hors du reste du disque même si l'attaquant connaissait la clé (en supposant que l'ancien mappage ne puisse pas être récupéré également). "puis frottez le premier 1 Mo de votre disque pour purger les chargeurs de démarrage restants" - la section supplémentaire n'est utilisée que comme débordement de la première 512 Go. Si vous essuyez d'abord 512B, vous ne serez pas blessé par le reste de 1M.
Maciej Piechotka
1
@MaciejPiechotka: Malheureusement, certains chargeurs de démarrage (grub en particulier) utilisent également l'espace après le MBR.
user1686
14

Comme Kamil Maciorowski le mentionne , la meilleure façon, avec le moins d'usure en écriture, de supprimer un disque entier , est d'utiliser la commande ATA «Secure Erase». Cela demandera au matériel de faire un seul effacement complet, plutôt que d'écraser les cellules à plusieurs reprises comme avec des outils comme shred. Cela ne peut être fait que pour l'intégralité du disque, si vous avez besoin d'effacer sélectivement les partitions, voir la réponse de grawity ( blkdiscard)

L'implémentation exacte de la commande dépend du matériel.

  • La plupart des SSD utiliseront un signal électrique en vrac pour effacer des puces entières de manière tout ou rien. Cela entraîne une usure en écriture (normale), mais uniquement dans la mesure du possible (~ cycle d'écriture unique).

  • Les SSD à cryptage automatique essuieront généralement la clé de cryptage à l'intérieur de la puce du contrôleur (vraiment instantanée). Les disques à chiffrement automatique chiffrent toujours , même prêts à l'emploi (avec une clé par défaut). Ainsi, l'essuyage de la clé ne laisse qu'un pêle-mêle non déchiffrable sur les puces flash, même si aucune clé utilisateur n'a été définie.

  • Les disques durs Spinning-Rust effectueront une écriture zéro basée sur le matériel de tous les secteurs, ce qui équivaut (et prend du temps) à le faire dd if=/dev/zero.

Le processus est assez bien documenté ici: https://www.thomas-krenn.com/en/wiki/SSD_Secure_Erase (j'ai personnellement utilisé ce processus à plusieurs reprises sur mes propres SSD lors de la réinstallation des OS)

Edit: si vous êtes intéressé par les implications de sécurité: consultez cette question de Security.SE

Jules Kerssemakers
la source
L'effacement sécurisé est-il pris en charge par la plupart des disques ATA? J'avais l'impression que son soutien était rare.
Ruslan
1
Je n'ai pas encore trouvé de disque (moderne, SATA) qui ne le supporte pas, mais j'avoue que mon expérience se limite aux disques durs que j'ai personnellement possédés. Il semble également y avoir une différence entre «effacement sécurisé» et «effacement sécurisé amélioré», ce dernier étant moins pris en charge.
Jules Kerssemakers le
3
@Ruslan Je n'ai jamais vu (ou entendu parler) d'un disque de spécification SATA-2 qui ne le supportait pas. À peu près n'importe quel disque SATA fabriqué au cours des 10 dernières années devrait l'avoir.
Tonny
Cela signifie-t-il également que sur les SSD à chiffrement automatique, la commande TRIM est un no-op? (Sinon, ce n'est pas toujours le cryptage, non?)
Mehrdad
1
@Mehrdad: Oui, l'utilisation de TRIM sur un SSD chiffré divulgue des informations sur les blocs libres. Que cela soit acceptable dépend de vos besoins de sécurité. Voir par exemple askubuntu.com/questions/399211/… pour une discussion.
sleske
4

En gardant à l'esprit que vous avez demandé une solution sur la façon d'effacer rapidement les disques Remplacez / dev / sdx par votre disque, plus / dev / sda

Cela effacera la table de partition.

dd if=/dev/zero of=/dev/sdx bs=1024 count=50

Cela effacera le disque entier, cela prendra un certain temps.

cat /dev/zero > /dev/sdx
Jarrod Chesney
la source
4
Ne pas utiliser cat. Utilisez ddpour améliorer les performances.
Micheal Johnson
6
@Micheal Vous dites cela, mais ddutilise par défaut des tampons de 512 octets, ce qui ruinera les performances ... Coreutils ( cpet probablement aussi cat) ont une taille de tampon plus sensible. Il n'y a rien à ddce sujet qui le rend en quelque sorte intrinsèquement plus rapide, de toute façon.
user1686
3
@grawity Vous pouvez modifier la taille du tampon avec dd. La dernière fois que j'ai essayé d' catécrire une image sur un disque, c'était beaucoup plus lent que d'utiliser ddavec une taille de tampon appropriée.
Micheal Johnson