GNU/Linux >> Linux Esercitazione >  >> Linux

Azzerare il contenuto di un disco rigido senza distruggere il filesystem

Risposta facile:

mount /dev/your/disk /some/free/mountpoint
dd if=/dev/zero of=/some/free/mountpoint/zero bs=512
sync # See edit below
rm /some/free/mountpoint/zero
umount /some/free/mountpoint

Questo farà esattamente quello che hai chiesto:sovrascrive tutto lo spazio, che è disponibile per i file nel file system, con zeri.

Risposta più complessa:

  • Senza bombardare l'MBR non puoi essere sicuro di non avere un virus MBR
  • un file system vuoto non ha valore

Quindi ti consiglio di eseguire il nuke del dispositivo (ovvero azzerare il dispositivo, inclusi MBR e file system) e quindi ricreare la tabella delle partizioni e mkfs.ntfs -f -L LABEL -I

MODIFICA

Come ha sottolineato @Nyos nei commenti, se il driver NTFS non monta la sincronizzazione (non conosco le impostazioni predefinite), è una buona idea inserire un ulteriore sync prima del rm . La versione attuale (a partire da Ubuntu 18.04 completamente aggiornata al 2020-05-02) non assegna blocchi ritardati, quindi il sync non è strettamente necessario, poiché tutti i blocchi allocati verranno scritti su umount , ma non conosciamo il futuro né ho letto l'intero codice sorgente.

Sulla stessa nota:se il driver NTFS una volta ottiene il supporto per i file sparsi, potrebbe essere necessario utilizzare /dev/urandom invece di /dev/zero per evitare una scrittura (quasi) infinita.


Anche se questo non risponde affatto alla tua domanda... tuttavia:

Innanzitutto, è davvero una pessima idea azzerare un disco. Questo è vero per i dischi "tradizionali", e ancora di più per i dischi a stato solido. L'azzeramento di un disco è banale (basta creare un file e riempirlo, Eugen Rieck fornisce la ricetta esatta) ma richiede molto tempo e logora il disco. I cicli di scrittura non sono infiniti, su qualsiasi tipo di hard disk.
Inoltre, tieni presente che non hai nemmeno la garanzia che la sovrascrittura funzioni effettivamente come previsto. Per il tuo scopo, la differenza non sarà evidente, ma per altri scopi (si pensi alla cancellazione sicura di dati riservati) l'approccio è del tutto inaffidabile. Questo perché non hai assolutamente modo di sapere cosa succede quando sovrascrivi qualcosa grazie al livellamento dell'usura e alla riallocazione. Le unità fanno un sacco di cose senza che nessuno (incluso il sistema operativo!) lo sappia o abbia un modo per dirlo, figuriamoci cambiare. Se, ad esempio, un settore è stato riallocato perché il controller non era soddisfatto del numero di tentativi, o del CRC o altro, puoi fare quello che vuoi in futuro, semplicemente non avrai più accesso a quel settore. Mai più. Tuttavia, i dati, o ciò che ne resta (e non puoi saperlo), rimangono lì e un potenziale ladro potrebbe leggerli.

In secondo luogo, quando si opera in modalità paranoia completa, è davvero una cattiva idea mantenere il filesystem (e l'MBR) in giro, specialmente quando il disco è "vuoto". A parte l'UUID del filesystem, non perderai nulla semplicemente creando un nuovo filesystem (che probabilmente può essere un po' fastidioso in alcune situazioni, ma anche questo è facile da risolvere). Tuttavia, ottieni la certezza che non è rimasto nulla nei posti in cui non te l'aspetti (MBR, per esempio).

Terzo, è una cattiva idea azzerare e riutilizzare un filesystem "vuoto" che in realtà non è affatto vuoto. È pessimo in termini di prestazioni quando invece puoi semplicemente creare un nuovo FS (senza voci di diario di modifiche obsolete, elementi invisibili, flussi dimenticati, attributi, MFT frammentati...) da zero. Non solo ricreare tutto da zero è molto più sicuro, è anche molto più veloce e probabilmente si tradurrà in prestazioni complessive migliori in futuro.

tl;dr

La maggior parte dei dispositivi dispone di un'opzione dedicata di cancellazione sicura o "ripristino impostazioni di fabbrica" ​​(che è la stessa) supportata dallo strumento di gestione in dotazione o con qualche altro strumento tramite un comando ATA standard. L'unità utilizzerà il metodo più efficiente e meno distruttivo (alcune unità in effetti sovrascrivono l'intero disco in mancanza di un vero supporto per la funzione, ma la maggior parte scaricherà semplicemente la crittografia o la chiave di bit scrambling, che funziona quasi istantaneamente indipendentemente dalle dimensioni del disco). /P>

hdparm che è disponibile praticamente su ogni distribuzione Linux pronta all'uso ha un'opzione --security-erase proprio per quello scopo.

Questo ti darà un disco "come se fosse appena stato comprato" con l'eccezione di essere stato utilizzato per un po '. Lo farà nel modo più veloce (entro ciò che è tecnicamente possibile) e meno distruttivo del disco. Successivamente, partizionalo e crea un filesystem, fatto.


Linux
  1. I pregi di un filesystem senza partizioni?

  2. Informazioni sul disco rigido dietro il controller raid hardware?

  3. Stampa il contenuto del file senza la prima e l'ultima riga?

  4. Recuperare dati da un disco rigido Fat32?

  5. Come montare automaticamente il disco rigido esterno?

Come trovare i dettagli del disco rigido in Linux

Aggiornamento a Solid State Drive in Linux:il modo più semplice e quello più difficile

Qual è il modo più semplice per liberare spazio su un disco rigido?

Scopri quali processi stanno scrivendo sul disco rigido

Il sistema si blocca. Non riesco a trovare nulla nei log

Smontaggio del filesystem root senza riavviare il server