Il modo più veloce per cancellare un SSD da tutte le sue partizioni per ripartizionare in Linux?


21

Voglio cancellare un SSD da tutte le sue partizioni e dati, quindi posso ripartizionarlo (questo non è per motivi di sicurezza).

Ho guardato sudo dd if=/dev/zero of=/dev/sdb bs=1Mma se questo riempie solo ogni partizione di zeri, non sono sicuro di ciò che voglio fare.

Ho intenzione di eseguire questo comando abbastanza spesso e non voglio esaurire le scritture del mio SSD. Qualcuno potrebbe darmi consigli su come affrontare questo problema?


1
Studia questo: ATA Secure Erase . Non ho esperienza con il processo, quindi questa non è una risposta, solo un suggerimento. Chiunque si senta libero di scrivere la propria risposta su questo se si sa che questo è il modo giusto.
Kamil Maciorowski l'

18
Per motivi di sicurezza o semplicemente perché è necessario ripartizionare?
user1686

principalmente solo per ripartizione
IgDV

14
Pompa a 12 calibri. E sapevi che qualcuno lo avrebbe detto prima o poi!
ssimm,

1
@ssimm - La mia preferenza è un barbecue a carbone.
Daniel R Hicks,

Risposte:


41

Su un SSD: puoi TRIM interi dischi o partizioni usando blkdiscard. Non è molto sicuro, ma praticamente istantaneo (il disco segna semplicemente tutte le celle come inutilizzate).

Per motivi di sicurezza: utilizzare la crittografia dell'intero disco. Non preoccuparti di cancellare l'intero disco se è crittografato, devi solo cancellare l'area contenente le tue chiavi (ad esempio i primi 1–2 MiB di ogni partizione crittografata).

Per ripartizionare: Ancora una volta, non preoccuparti di cancellare tutti i dati. Devi solo distruggere i filesystem usando wipefs, quindi cancellare i primi 1 MiB del tuo disco per eliminare i bootloader rimanenti. Dopo aver formattato una partizione utilizzando mkfs, il sistema operativo supporrà semplicemente che sia completamente vuoto.

(In effetti, su Linux, mkfs.ext4 taglierà automaticamente l'intera partizione prima di formattarla.)


6
Per ripartizionare, perché non eliminare semplicemente le vecchie partizioni e crearne di nuove?
el.pescado,

5
Perché se crei nuove partizioni nella stessa posizione (posizione iniziale), troverai solo gli stessi vecchi dati in esse! (Naturalmente questo è di solito non è un problema, perché la riformattazione con mkfssi rovinerà lo stesso Ma diverse situazioni strane. Do accadere - wipefsesiste perché è stato necessario.)
user1686

4
@IgDV - cosa man wipefsdice? (Suggerimento: guarda il primo esempio nella sezione degli esempi della pagina man)
Timo,

2
"devi solo cancellare l'area contenente le tue chiavi" - su SSD è probabile che anche le chiavi siano recuperabili. TPM o chiavi di protezione password complesse potrebbero essere l'opzione migliore. blkdiscardsarebbe bello anche perché creerebbe un puzzle dal resto del disco anche se l'attaccante conosceva la chiave (supponendo che anche la vecchia mappatura non possa essere recuperata). "quindi strofina i primi 1 MiB del tuo disco per eliminare i bootloader rimanenti": la sezione aggiuntiva viene utilizzata solo come overflow dei primi 512B. Se si cancella prima 512B non si viene danneggiati dal resto di 1M.
Maciej Piechotka,

1
@MaciejPiechotka: Sfortunatamente, alcuni bootloader (grub in particolare) usano anche lo spazio dopo l'MBR.
user1686

14

Come menziona Kamil Maciorowski , il modo migliore, con il minimo consumo di scrittura, di eliminare un intero disco, è usare il comando ATA 'secure erase'. Questo indicherà all'hardware di eseguire una sola cancellazione completa, anziché sovrascrivere ripetutamente le celle come con strumenti come shred. Questo può essere fatto solo per l'intero disco, se è necessario cancellare selettivamente le partizioni, vedere la risposta di grawity ( blkdiscard)

L'implementazione esatta del comando dipende dall'hardware.

  • La maggior parte degli SSD utilizzerà un segnale elettrico di massa per cancellare interi chip in modo del tutto o niente. Ciò comporta un'usura (normale) in scrittura, ma solo nella misura minima possibile (~ ciclo di scrittura singolo).

  • Gli SSD con crittografia automatica in genere cancellano la chiave di crittografia all'interno del chip del controller (in modo istantaneo). Le unità con crittografia automatica vengono sempre crittografate, anche pronte all'uso (con una chiave predefinita di fabbrica). Quindi, la pulizia della chiave lascia solo jumble indecifrabili sui chip flash, anche se non è stata impostata alcuna chiave utente.

  • I dischi rigidi Spinning-Rust eseguiranno una scrittura zero basata su hardware di tutti i settori, il che è equivalente (e richiede molto tempo) dd if=/dev/zero.

Il processo è documentato abbastanza bene qui: https://www.thomas-krenn.com/en/wiki/SSD_Secure_Erase (ho personalmente usato questo processo ripetutamente sui miei SSD durante la reinstallazione dei sistemi operativi)

Modifica: se sei interessato alle implicazioni sulla sicurezza: controlla questa domanda di Security.SE


Secure Erase è supportato dalla maggior parte dei dischi ATA? Avevo l'impressione che il suo supporto sia raro.
Ruslan,

1
Non ho ancora trovato un disco (moderno, SATA) che non lo supportasse, ma ammetto che la mia esperienza è limitata ai dischi rigidi che ho posseduto personalmente. Sembra anche che ci sia una differenza tra "cancellazione sicura" e "cancellazione sicura avanzata", con quest'ultima meno supportata.
Jules Kerssemakers,

3
@Ruslan Non ho mai visto (o sentito parlare) di un disco con specifiche SATA-2 che non lo supportasse. Quasi ogni disco SATA realizzato negli ultimi 10 anni circa dovrebbe averlo.
Tonny,

Questo significa anche che su SSD con crittografia automatica il comando TRIM è no-op? (Altrimenti non è sempre crittografato, giusto?)
Mehrdad,

1
@Mehrdad: Sì, l'utilizzo di TRIM su un SSD crittografato perde informazioni su quali blocchi sono gratuiti. L'accettabilità dipende dalle esigenze di sicurezza. Vedi ad esempio askubuntu.com/questions/399211/… per una discussione.
sleske,

4

Tenendo presente che hai chiesto una soluzione su come cancellare rapidamente i dischi Sostituisci / dev / sdx con il tuo disco, molto probabilmente / dev / sda

Questo cancellerà la tabella delle partizioni.

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

Questo cancellerà l'intero disco, ci vorrà del tempo.

cat /dev/zero > /dev/sdx

4
Non usare cat. Utilizzare ddper migliorare le prestazioni.
Micheal Johnson,

6
@Micheal Lo dici tu, ma per impostazione predefinita ddusa buffer a 512 byte, il che rovinerà le prestazioni ... I coreutils ( cpe presumibilmente anche cat) hanno una dimensione del buffer più sensibile. Non c'è nulla ddche lo rende in qualche modo intrinsecamente più veloce, comunque.
user1686

3
@grawity È possibile modificare la dimensione del buffer con dd. L'ultima volta che ho provato a utilizzare catper scrivere un'immagine su un disco, è stato significativamente più lento rispetto all'uso ddcon una dimensione del buffer appropriata.
Micheal Johnson,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.