Comment effacer l'espace disque libre sous Linux?


145

Lorsqu'un fichier est supprimé, son contenu peut toujours rester dans le système de fichiers, à moins d'être explicitement remplacé par quelque chose d'autre. La wipecommande peut effacer des fichiers de manière sécurisée, mais ne semble pas permettre l'effacement de l'espace disque disponible qui n'est utilisé par aucun fichier.

Que devrais-je utiliser pour y parvenir?


La seule solution sûre peut être d’enregistrer vos fichiers ailleurs, d’effacer toute la partition, de recréer le système de fichiers, puis de restaurer vos fichiers. J'ai lancé photorec et j'ai été choqué par la quantité de données pouvant être récupérées même après avoir «vidé» l'espace libre. Une solution de compromis consiste à déplacer la limite gauche de votre partition de 6% de sa taille après avoir effacé l'espace apparemment libre.
user39559

Réponses:


107

Avertissement: Le matériel de disque / SSD moderne et les systèmes de fichiers modernes peuvent empêcher la suppression de données à des endroits où vous ne pouvez pas les supprimer. Ce processus peut donc laisser des données sur le disque. Les seules méthodes sûres d’effacement des données sont la commande ATA Secure Erase (si elle est correctement implémentée) ou la destruction physique. Voir également Comment puis-je effacer de manière fiable toutes les informations d'un disque dur?

Vous pouvez utiliser une suite d'outils appelée secure-delete.

sudo apt-get install secure-delete

Cela a quatre outils:

srm- supprimer en toute sécurité un fichier existant
smem- supprimer en toute sécurité les traces d'un fichier de la mémoire vive
sfill- effacer tout l'espace marqué comme étant vide sur votre disque dur
sswap- effacer toutes les données de votre espace de permutation.

De la page de manuel de srm

srm est conçu pour supprimer les données sur des supports de manière sécurisée qui ne peuvent pas être récupérées par des voleurs, des forces de l'ordre ou d'autres menaces. L'algorithme d'effacement est basé sur le document "Suppression sécurisée des données de la mémoire magnétique et à l'état solide" présenté lors du 6e Symposium sur la sécurité Usenix par Peter Gutmann, l'un des principaux cryptographes civils.

Le processus de suppression sécurisée des données de srm se déroule comme suit:

  • 1 passe avec 0xff
  • 5 passes aléatoires. /dev/urandomest utilisé pour un RNG sécurisé, le cas échéant.
  • 27 passages avec des valeurs spéciales définies par Peter Gutmann.
  • 5 passes aléatoires. /dev/urandomest utilisé pour un RNG sécurisé, le cas échéant.
  • Renommez le fichier en une valeur aléatoire
  • Tronquer le fichier

Comme mesure de sécurité supplémentaire, le fichier est ouvert en mode O_SYNC et, après chaque passe, un fsync()appel est effectué. srmécrit des blocs de 32k dans un but de rapidité, remplissant les tampons des caches de disque pour les forcer à vider et écraser les anciennes données appartenant au fichier.


5
Il est difficile de localiser la page d'accueil "officielle" actuelle de Secure-Delete. Une version peut-être plus ancienne prétend qu'il n'y a pas de rapport de bogue, mais en même temps, il n'y a pas de système de suivi de bogues ouvert dans lequel je pourrais signaler un bogue que j'ai trouvé. La page d’accueil de suppression sécurisée indique également qu’elle peut ne pas effacer tous les blocs de données inutilisés, en fonction du système de fichiers que vous utilisez, ce qui est vrai.
user39559

12
Avec les disques durs modernes (plus gros que 20 Go environ), il est totalement inutile de faire plusieurs passes et d’attendre des siècles. Donc, installer des outils spécialisés est également devenu inutile (ce qui peut expliquer pourquoi la suppression sécurisée n'a plus de page d'accueil). Il suffit de le faire à partir de la partition appropriée: cat /dev/zero >nosuchfile; rm nosuchfile.
mardi

1
@mivk: Pourquoi est-il inutile de faire plus d'un passage? Et pourquoi utiliser / dev / zero au lieu de / dev / random? Est-ce dû à des problèmes de vitesse?
naught101

5
Utiliser / dev / zero est beaucoup plus rapide. Si vous écrivez de l'espace libre à partir de / dev / random, le noyau doit générer toutes ces données aléatoires à la volée. C’est une façon amusante de regarder votre charge moyenne monter au maximum ...
mercredi


71

Le moyen le plus rapide, si vous n'avez besoin que d'un seul passage et souhaitez simplement tout remplacer par des zéros, est le suivant:

cat /dev/zero > zero.file
sync
rm zero.file

(exécutez depuis un répertoire du système de fichiers que vous souhaitez effacer)
(la synccommande est une mesure de paranoïa qui garantit que toutes les données sont écrites sur le disque. Un gestionnaire de cache intelligent peut donc décider qu'il peut annuler les écritures de tous les blocs en attente lorsque le fichier n'est pas lié. )

Pendant cette opération, il y aura un temps pendant lequel il n'y aura plus aucun espace libre sur le système de fichiers, ce qui peut prendre des dizaines de secondes si le fichier résultant est volumineux et fragmenté, la suppression prend donc un certain temps. Pour réduire le temps où l'espace libre est complètement nul:

dd if=/dev/zero of=zero.small.file bs=1024 count=102400
cat /dev/zero > zero.file
sync
rm zero.small.file
rm zero.file

Cela devrait suffire à empêcher quelqu'un de lire le contenu de l'ancien fichier sans recourir à une opération judiciaire coûteuse. Pour une variante légèrement plus sûre, mais plus lente, remplacez /dev/zeropar /dev/urandom. Pour plus de paranoïa, exécutez plusieurs étapes avec /dev/urandom, bien que si vous avez besoin de tant d’effort, l’ shredutilitaire du paquet coreutils est la solution:

dd if=/dev/zero of=zero.small.file bs=1024 count=102400
shred -z zero.small.file
cat /dev/zero > zero.file
sync
rm zero.small.file
shred -z zero.file
sync
rm zero.file

Notez que dans ce qui précède, le petit fichier est déchiqueté avant de créer le plus grand. Il peut donc être supprimé dès que le plus gros est terminé au lieu d'attendre qu'il soit déchiqueté, ce qui laisse le système de fichiers avec zéro espace disponible pour le temps requis. Le processus de destruction prend beaucoup de temps sur un fichier volumineux et, à moins que vous n'essayiez de cacher quelque chose à la NSA, n'est pas vraiment nécessaire OMI.

Tout ce qui précède devrait fonctionner sur n'importe quel système de fichiers.

Taille limite du fichier:

Comme le souligne DanMoulding dans un commentaire ci-dessous, des problèmes de taille de fichier peuvent apparaître sur certains systèmes de fichiers.

Pour le format FAT32, le nombre maximal de fichiers de 2 Go serait certainement une source de préoccupation: la plupart des volumes sont plus importants que cela de nos jours (8TiB est la limite de taille de volume IIRC). Vous pouvez contourner ce problème en canalisant la cat /dev/zerosortie volumineuse splitpour générer plusieurs fichiers plus petits et ajuster les étapes de destruction et de suppression en conséquence.

Avec ext2 / 3/4, le problème est moins grave: avec le bloc 4K par défaut / commun, la taille maximale du fichier est de 2TiB. Vous devez donc disposer d’un volume énorme pour que cela soit un problème (taille maximale dans ces conditions). est 16TiB).

Avec le btrfs (encore expérimental), les tailles de fichier et de volume maximales sont de 16EiB.

Sous NTFS, la longueur maximale du fichier est parfois supérieure à la longueur maximale du volume.

Points de départ pour plus d’informations:
http://en.wikipedia.org/wiki/Ext3#Size_limits
http://en.wikipedia.org/wiki/Btrfs
http://en.wikipedia.org/wiki/Ntfs#Scalability

Dispositifs Virtuels

Comme mentionné dans les commentaires récemment, il existe des considérations supplémentaires pour les périphériques virtuels:

  • Pour les disques virtuels faiblement alloués, d'autres méthodes telles que celles utilisées par zerofreeseront plus rapides (bien catque ddce ne soit pas un outil standard sur lequel vous puissiez compter, il est disponible dans pratiquement tout système d'exploitation de type Unix-a-like).

  • Sachez que la remise à zéro d'un bloc sur un périphérique virtuel fragmenté peut ne pas effacer le bloc sur le périphérique physique sous-jacent ; en fait, j'irais même jusqu'à dire qu'il est peu probable que le gestionnaire de disque virtuel ne rende le bloc plus utilisé. afin qu'il puisse être attribué à autre chose plus tard.

  • Même pour les périphériques virtuels de taille fixe, il se peut que vous n’ayez aucun contrôle sur l’emplacement physique du périphérique. Il est donc possible de le déplacer à tout moment autour de son emplacement actuel ou sur un nouvel ensemble de disques physiques. les emplacements précédents du bloc peuvent avoir résidé dans le passé.

  • Pour les problèmes ci-dessus sur les périphériques virtuels: sauf si vous contrôlez le ou les hôtes et que vous pouvez effacer de manière sécurisée leur espace non alloué après avoir effacé les disques de la machine virtuelle ou déplacé le périphérique virtuel, vous ne pouvez plus rien y faire après la fait. Le seul recours consiste à utiliser le chiffrement intégral du disque dès le débutil n'y a donc rien de non chiffré qui soit écrit sur le support physique en premier lieu. Il se peut qu’il y ait toujours un appel pour un effacement d’espace libre dans la VM. Notez également que FDE peut rendre beaucoup moins utiles les périphériques virtuels clairsemés, car la couche de virtualisation ne peut pas vraiment voir quels blocs sont inutilisés. Si la couche du système de fichiers du système d’exploitation envoie des commandes de rognage au périphérique virtuel (comme s’il s’agit d’un disque SSD), et que le contrôleur virtuel les interprète, cela peut résoudre le problème, mais je ne connais aucune circonstance où cela se produit réellement et plus largement. la discussion à ce sujet relève d’ailleurs (nous sommes déjà sur le point de quitter le sujet de la question initiale, aussi, si cela suscite votre intérêt, des questions d’expérimentation et / ou de suivi pourraient être utiles).


4
La mise à zéro simple peut apparemment aussi être effectuée avec les secure-deleteoutils: l'utilisation sfill -llzréduit la procédure entière à un seul passage qui n'écrit que les 0.
Foraidt

Cela prend du temps. Est-ce vraiment le moyen le plus rapide? J'imagine que l'écriture de Go de données prendra toujours un certain temps ...
endolith

2
@endolith: si vous voulez effacer l'espace libre sur un système de fichiers actif, vous ne pouvez pas éviter le besoin d'écrire autant de données via la surcharge du système de fichiers. Les outils de suppression sécurisée suggérés par fnord_ix peuvent être plus rapides, car ils sont optimisés pour ce type de tâche.
David Spillett

2
@endolith: d'après la description de la page de manuel, la variante de zerofree n'est que plus rapide pour les disques virtuels peu alloués. En fait, elle peut être plus lente pour les disques réels ou virtuels à taille fixe si elle effectue une lecture avant écriture. pour confirmer que le bloc n'a pas de contenu. La montgolfière pour un disque virtuel ne devrait pas se produire non plus, car la plupart des pilotes de disque fragmentés considèrent que les zéros sont "Ne pas allouer ce bloc". En outre, catet ddsont disponibles sur à peu près tous les systèmes d'exploitation de type Unix, car ils sont considérés comme des outils standard et ne le sont zerofreeprobablement pas, à moins que cela ait été explicitement ajouté.
David Spillett

1
@endolith: cela dit, zerofreecela fonctionnerait bien sûr, la "totalité du système de fichiers temporairement pleine" mentionnée dans la page de manuel (presque, mais pas tout à fait atténuée par le pokery small.file jiggery dans mes exemples) est une préoccupation réelle. si vous le faites sur un système actuellement actif, et zerofreeserait en effet plus rapide dans le cas spécifique pour lequel il est optimisé: des périphériques de blocs virtuels faiblement alloués. Bien que vous ne puissiez vous fier à aucun nettoyage sur un périphérique virtuel à des fins de sécurité, la seule vraie solution dans ce cas est de chiffrer intégralement le périphérique dès le départ.
David Spillett

45

ATTENTION

J'ai été choqué par le nombre de fichiers que photorec pourrait récupérer sur mon disque, même après le nettoyage.

La question de savoir s'il est plus sûr de ne remplir qu'une "fois" l'espace libre "une seule fois avec 0x00 ou 38 fois avec différentes normes cabalistiques est plutôt une discussion académique. L'auteur du premier article de 1996 sur le déchiquetage a lui-même écrit un épilogue affirmant qu'il était obsolète et inutile pour le matériel moderne. Il n’existe aucun cas documenté de données physiquement remplacées par des zéros, puis récupérées.

Le véritable lien fragile dans cette procédure est le système de fichiers . Certains systèmes de fichiers réservent de l'espace pour une utilisation spéciale et ne sont pas rendus disponibles en tant qu '"espace libre". Mais vos données peuvent être là . Cela inclut les photos, les e-mails personnels en clair, peu importe. Je viens de googler réservé + espace + ext4 et appris que 5% de ma homepartition était réservé. Je suppose que c’est là photorecque l’on a trouvé une grande partie de mes affaires. Conclusion: la méthode de déchiquetage n'est pas la plus importante, même la méthode multi-passes laisse toujours les données en place .

Vous pouvez essayer # tune2fs -m 0 /dev/sdn0avant de le monter. (S'il s'agit de la partition racine après le redémarrage, assurez-vous de l'exécuter -m 5ou -m 1de la démonter).

Néanmoins, d’une manière ou d’une autre, il peut rester de l’espace.

Le seul moyen réellement sûr est d’effacer toute la partition, de créer à nouveau un système de fichiers, puis de restaurer vos fichiers à partir d’une sauvegarde.


Moyen rapide (recommandé)

Exécuter à partir d'un répertoire du système de fichiers que vous souhaitez nettoyer:

dd if=/dev/zero of=zero.small.file bs=1024 count=102400
dd if=/dev/zero of=zero.file bs=1024
sync ; sleep 60 ; sync
rm zero.small.file
rm zero.file

Remarques: le but du petit fichier est de réduire le temps pendant lequel l’espace libre est complètement nul; le but de la synchronisation est de s’assurer que les données sont réellement écrites.

Cela devrait suffire à la plupart des gens.

Façon lente (paranoïaque)

Il n'y a aucun cas documenté de récupération de données après le nettoyage ci-dessus. Ce serait coûteux et exigeant en ressources, si possible.

Cependant, si vous avez une raison de penser que des agences secrètes dépenseraient beaucoup de ressources pour récupérer vos fichiers, cela devrait suffire:

dd if=/dev/urandom of=random.small.file bs=1024 count=102400
dd if=/dev/urandom of=random.file bs=1024
sync ; sleep 60 ; sync
rm random.small.file
rm random.file

Cela prend beaucoup plus de temps.

Attention. Si vous avez choisi la méthode paranoïaque, vous voudrez toujours procéder au nettoyage rapide, et ce n'est pas de la paranoïa. La présence de données purement aléatoires est facile et peu coûteuse à détecter et laisse penser qu'il s'agit en réalité de données cryptées. Vous pouvez mourir sous la torture pour ne pas avoir révélé la clé de déchiffrement.

Façon très lente (paranoïaque fou)

Même l'auteur du document phare de 1996 sur le déchiquetage a écrit un épilogue affirmant qu'il était obsolète et inutile pour le matériel moderne.

Mais si vous avez encore beaucoup de temps libre et que vous n'avez pas peur de gaspiller votre disque avec beaucoup de réécriture, voici ce qui se passe:

dd if=/dev/zero of=zero.small.file bs=1024 count=102400
sync ; sleep 60 ; sync
shred -z zero.small.file
dd if=/dev/zero of=zero.file bs=1024
sync ; sleep 60 ; sync
rm zero.small.file
shred -z zero.file
sync ; sleep 60 ; sync
rm zero.file

Remarque: cela revient essentiellement à utiliser l'outil de suppression sécurisée.


Avant la modification, ce message était une réécriture de David Spillett. La commande "cat" génère un message d'erreur, mais je ne peux pas écrire de commentaires sur les publications d'autres personnes.


Vous pouvez commenter sous d'autres messages de personnes avec 50 points de réputation .
Gnoupi

1
La catcommande est supposée donner une erreur "aucun espace laissé" dans mes exemples, à la fin de son exécution. Vous pouvez le cacher en redirigeant stderr /dev/nullsi c'est un problème. J'utilise habituellement pvplutôt que catou ddpour ce genre de chose, afin d'obtenir l'indication de progrès utile.
David Spillett

4
...raises the suspicion that it is actually encrypted data. You may die under torture for not revealing the decryption key.Heh, c'est exactement ce que je pensais. Je suppose que cela signifie que je suis paranoïaque ...
Navin

2
Root est toujours capable d'utiliser l'espace réservé. Ainsi, si vous remplissez la partie zéro en tant que racine, vous pourrez également remplir les 5% d'espace réservé. le tunefs est inutile. Il est toujours concevable qu'il puisse y avoir des données dans d'autres parties du système de fichiers.
Nate Eldredge

1
@NateEldredge Avez-vous une source qui indiquerait qu'une ddexécution en tant que root donne accès à davantage de systèmes de fichiers qu'en l' ddabsence de root? Je veux croire que c'est vrai, mais je ne vois aucune raison de le faire pour le moment.
Hashim

27

Il y a un utilitaire zerofree au moins dans Ubuntu:

http://manpages.ubuntu.com/manpages/natty/man8/zerofree.8.html

   zerofree — zero free blocks from ext2/3 file-systems

   zerofree  finds  the  unallocated, non-zeroed blocks in an ext2 or ext3
   filesystem (e.g. /dev/hda1) and fills them with zeroes. This is  useful
   if  the  device  on  which this file-system resides is a disk image. In
   this case, depending on the type of disk image, a secondary utility may
   be  able  to  reduce the size of the disk image after zerofree has been
   run.

   The usual way to achieve  the  same  result  (zeroing  the  unallocated
   blocks)  is to run dd (1) to create a file full of zeroes that takes up
   the entire free space on the drive, and then delete this file. This has
   many disadvantages, which zerofree alleviates:

      ·  it is slow;

      ·  it makes the disk image (temporarily) grow to its maximal extent;

      ·  it  (temporarily)  uses  all  free  space  on  the disk, so other
         concurrent write actions may fail.

   filesystem has to be unmounted or mounted  read-only  for  zerofree  to
   work.  It  will exit with an error message if the filesystem is mounted
   writable. To remount the  root  file-system  readonly,  you  can  first
   switch to single user runlevel (telinit 1) then use mount -o remount,ro
   filesystem.

Vérifiez également ce lien sur zerofree: Garder les images de système de fichiers rares - c’est de son auteur - Ron Yorston (9 août 2012)


3
Il est important que le système de fichiers soit démonté ou monté en lecture seule pour que zerofree fonctionne.
AntonioK

1
Il serait bien d’inclure des informations sur la manière de procéder sur le système de fichiers racine. Mon sentiment est que cela ne fonctionnera pas, car il faudrait démonter le système de fichiers tout en exécutant l'outil à partir dudit système de fichiers.
Ant6n

Cela vient aussi avec CentOS
davidgo

3

Voici comment le faire avec une interface graphique.

  1. Installer BleachBit
  2. Exécutez en tant que root en cliquant sur Applications - Outils système - BleachBit en tant qu’administrateur.
  3. Dans les préférences, indiquez-lui les chemins que vous voulez. Généralement, il les devine bien. Vous souhaitez inclure un chemin d'accès en écriture pour chaque partition. Il s’agit généralement de / home / nom d’utilisateur et de / tmp, à moins qu’ils ne soient la même partition, auquel cas il suffit de choisir une.
  4. Cochez la case Système - Nettoyer l’espace disque disponible.
  5. Cliquez sur Supprimer.

L'avancée de BleachBit par rapport à dd (ce qui est par ailleurs très agréable) survient lorsque le disque est enfin plein. BleachBit crée de petits fichiers pour effacer les inodes (qui contiennent des métadonnées telles que les noms de fichiers, etc.).


Inspectez le code python opensource de Bleachbit afin d’effacer l’espace libre du lecteur pour vous-même.
shadowbq

2

J'utilise ddpour allouer un ou plusieurs gros fichiers afin de remplir l'espace libre, puis utiliser un utilitaire de suppression sécurisée.

Pour allouer des fichiers avec dd, essayez:

dd if=/dev/zero of=delete_me bs=1024 count=102400

Cela générera un fichier nommé d’une delete_metaille de 100 Mo. (Voici bsla "taille de bloc" définie sur 1k et countle nombre de blocs à allouer.)

Ensuite, utilisez votre utilitaire de suppression sécurisé préféré (que j’ai utilisé shred) sur les fichiers ainsi créés.

Mais NOTE CECI: la mise en mémoire tampon signifie que même si vous faites tout le disque, vous ne pouvez pas tout obtenir!


Ce lien recommande scrubde nettoyer l’espace libre. Je n'ai pas essayé.


Oh, si ma mémoire est bonne, j'ai essayé scrubune fois et cela a corrompu tout le système de fichiers. Heureusement, j'ai eu le bon sens d'expérimenter d'abord sur un système de fichiers de test, PAS sur mes données réelles.
landroni

2

Essuyez un lecteur à toute vitesse.

Les instructions habituelles pour chiffrer un lecteur vous diront d’abord d’essayer le lecteur.

La commande ci-dessous remplira votre lecteur avec le texte chiffré AES.

Utilisez un live CD si vous devez effacer votre lecteur de démarrage principal.

Ouvrez un terminal et élevez vos privilèges:

sudo bash

Laissez-nous la liste de tous les lecteurs sur le système pour être sûr:

cat /proc/partitions

REMARQUE: remplacez-le /dev/sd{x}par le périphérique que vous souhaitez nettoyer.

ATTENTION: Ce n'est pas pour les amateurs! Vous pourriez rendre votre système impossible à démarrer !!!

sudo openssl enc -aes-256-ctr -pass pass:"$(dd if=/dev/urandom bs=128 count=1 2>/dev/null | base64)" -nosalt < /dev/zero > /dev/sd{x}

Je suis abasourdi par la rapidité avec laquelle c'est.



2

Vous pouvez effacer votre espace libre en utilisant un package de suppression sécurisée.

Dans ce package , vous pouvez trouver l' sfilloutil, qui est conçu pour supprimer les données qui se trouve sur l' espace disque disponible sur des supports de manière sécurisée qui ne peut pas être recouvrées par thiefs, application de la loi ou d' autres menaces.

Pour installer le package de suppression sécurisée sous Linux (Ubuntu), installez-le à l'aide de la commande suivante:

$ sudo apt-get install secure-delete

Ensuite, pour effacer vos données sans espace disponible, essayez la commande suivante:

sfill -f -v -ll /YOUR_MOUNTPOINT/OR_DIRECTORY

Où / YOUR_MOUNTPOINT / OR_DIRECTORY est votre point de montage ( df -h, mount) ou votre répertoire pour nettoyer l'espace disponible.

Lisez le manuel sur http://manpages.ubuntu.com/manpages/hardy/man1/sfill.1.html


1

utilisez dd et mettez simplement à zéro l'espace libre. c'est un mythe que les données doivent être écrites plusieurs fois (il suffit de demander à Peter Guntmann) et les données aléatoires, par opposition à 1 puis 0 implique une activité non naturelle. alors le résultat final est un disque propre avec beaucoup moins de temps passé à écrire. En outre, les programmes de suppression sécurisés ne peuvent pas garantir qu'ils écrasent même le fichier réel sur les systèmes de fichiers modernes (journalisé). faites-vous une faveur et obtenez photorec, analysez votre lecteur pour voir le désordre, nettoyez-le avec des 1 et éventuellement avec des zéros pour le rendre intact. si photorec trouve toujours des éléments, rappelez-vous qu’il analyse tout ce qui est disponible. Répétez cette opération avec l’utilisateur root.

rappelez-vous, la cia / fbi / nsa ne dispose pas d’une machine sophistiquée capable de lire l’état réel de vos bits de support magnétique. ce n'était qu'un document écrit il y a longtemps. un "et si". il vous suffit d'essuyer 1 fois.


1
Vous avez dit peu de choses intéressantes, mais avez-vous des sources pour sauvegarder cette information? Il est difficile de croire que tout cet écrasement est inutile. Aussi, s'il vous plaît améliorer votre post, il est difficile de lire avec une ponctuation comme ça.
gronostaj

@gronostaj: Le « il est une donnée de mythe doit être sur plusieurs fois par écrit » de réclamation pour les lecteurs modernes au moins a été prouvé par plusieurs études. Tous les 30+ passages recommandés par Gutmann ne sont plus nécessaires, comme l'a reconnu l'auteur lui-même.
Karan

1

Plus facile est d'utiliser gommage :

scrub -X dump

Cela créera un dumpdossier à l’emplacement actuel et créera un fichier jusqu’à saturation du disque. Vous pouvez choisir un motif avec l' -poption ( nnsa|dod|bsi|old|fastold|gutmann).

Il n'est pas facile d'installer un scrub ( voir les forums Ubuntu à ce sujet ), mais une fois l'installation terminée, vous disposez d'un outil vraiment SIMPLE et efficace dans votre main.


Si ma mémoire est bonne, j'ai essayé scrubune fois et cela a corrompu tout le système de fichiers. Heureusement, j'ai eu le bon sens d'expérimenter d'abord sur un système de fichiers de test, PAS sur mes données réelles.
landroni

Je ne sais pas ce que vous avez fait ou ce qui s'est passé, mais vous pouvez créer un nouveau fichier jusqu'à ce qu'il remplisse le système de fichiers. Il ne joue pas avec le fichier existant, il n'en supprime aucun (du moins pas la commande que j'ai donnée) ...
FMaz008

1
En effet. Essayé scrub -X dump_diret cela semble avoir bien fonctionné. BTW, l' installation sur Ubuntu 14.04 est très simple: apt-get install scrub.
landroni

1

Voici le script "sdelete.sh" que j'utilise. Voir les commentaires pour plus de détails.

# Install the secure-delete package (sfill command).

# To see progress type in new terminal:
# watch -n 1 df -hm

# Assuming that there is one partition (/dev/sda1). sfill writes to /.
# The second pass writes in current directory and synchronizes data.
# If you have a swap partition then disable it by editing /etc/fstab
# and use "sswap" or similar to wipe it out.

# Some filesystems such as ext4 reserve 5% of disk space
# for special use, for example for the /home directory.
# In such case sfill won't wipe out that free space. You
# can remove that reserved space with the tune2fs command.
# See http://superuser.com/a/150757
# and https://www.google.com/search?q=reserved+space+ext4+sfill

sudo tune2fs -m 0 /dev/sda1
sudo tune2fs -l /dev/sda1 | grep 'Reserved block count'

sudo sfill -vfllz /

# sfill with the -f (fast) option won't synchronize the data to
# make sure that all was actually written. Without the fast option
# it is way too slow, so doing another pass in some other way with
# synchronization. Unfortunately this does not seem to be perfect,
# as I've watched free space by running the "watch -n 1 df -hm"
# command and I could see that there was still some available space
# left (tested on a SSD drive).

dd if=/dev/zero of=zero.small.file bs=1024 count=102400
dd if=/dev/zero of=zero.file bs=1024
sync ; sleep 60 ; sync
rm zero.small.file
rm zero.file

sudo tune2fs -m 5 /dev/sda1
sudo tune2fs -l /dev/sda1 | grep 'Reserved block count'

1

J'ai trouvé une solution simple qui fonctionne sous Linux et MacOS. Déplacez-vous dans le dossier racine de votre disque et lancez cette commande:

for i in $(seq 1 //DISKSPACE//); do dd if=/dev/zero of=emptyfile${i} bs=1024 count=1048576; done; rm emptyfile*;

où // DISKSPACE // est la taille en Go de votre disque dur.


0

J'utilise parfois ce bash one-liner:

while :; do cat /dev/zero > zero.$RANDOM; done

Quand il commence à dire que le disque est plein, appuyez simplement sur Ctrl+ Cet supprimez les zero.*fichiers créés .

Cela fonctionne sur n'importe quel système, quelles que soient les limites de taille de fichier.
Ignorer les cat: write error: File too largeerreurs.


0

Ce n'est pas une réponse! Juste un commentaire pour ceux qui souhaitent utiliser pv... alors ne vous inquiétez pas du vote.

Sous Linux Mint 17.3, vous pouvez utiliser pv( vue du canal ) pour obtenir l’avancement de l’écriture. Par exemple:

# Install pv (pipe view)
sudo apt-get install pv

# Write huge file of approximate size of /dev/sdb, using urandom data:
pv --timer --average-rate --progress --numeric --eta --interval 5 --size "$(blockdev --getsize64 /dev/sda )" /dev/urandom >rand.file

L'avantage ici est que vous obtenez une barre de progression, un ETA et un débit de données constamment mis à jour. L'inconvénient est que cela est écrit sur une ligne et que le disque est plein (retourne une erreur), il disparaît. Cela est dû au fait que la taille complète est approximative, car le système d'exploitation utilisera probablement le disque pendant cette opération très longue, en particulier sur le volume du système d'exploitation.

Sur un très vieux disque dur, je reçois un débit de données d’environ 13 Mo / s en utilisant /dev/urandom, et d’environ 70 Mo / s en utilisant /dev/zero. Cela s’améliorera probablement davantage lorsqu’on utilise un brut ddou catnon pv.


-13

Une fois que le fichier a disparu de l'enregistrement du système de fichiers, les données qui restent sur le disque dur sont une séquence sans signification de 1 et de 0. Si vous souhaitez remplacer cette séquence dépourvue de signification par une autre séquence dépourvue de sens, je peux conseiller certains produits commerciaux pour effacer des disques en toute sécurité, tels que arconis.


22
Des fragments contigus du contenu de l'ancien fichier restent toujours sur le disque et sont loin d'être dépourvus de sens si les données brutes du disque sont examinées directement.
Alex B
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.