Prima di rivendere o regalare il proprio PC o un hard disk / SSD che non usiamo più è importante cancellare i dati in modo sicuro, per evitare che, tramite un semplice tool di recupero dati, il nuovo proprietario possa facilmente carpire tutti i nostri file. Sebbene vi siano vari modi di procedere, il comando hdparm consente di inviare i comandi ATA e far svolgere l'operazione dal firmware del drive stesso (in hardware): la pulizia avviene così nel modo più sicuro e veloce possibile. Vediamo dunque come azzerare definitivamente un hard disk / SSD con hdparm
In questa guida parleremo specificatamente della procedura per eliminare permanentemente tutti i dati da un hard disk / SSD tramite il comando hdparm. Per una lista di programmi alternativi:
» Vedi: tag "cancellazione dati"
Passo 1: Collegare il disco direttamente (no USB)
Il comando che utilizzeremo fra poco deve essere utilizzato solo su dischi materialmente connessi alla porta nativa del PC (SATA, generalmente), non verso device connessi via USB
Sono apparse in rete molteplici testimonianze che lo confermano: ignorare questa regola danneggia fisicamente il disco USB, siatene consci.
Se invece usate la porta SATA nativa, non ci sono problemi.
Passo 2: Scollegare gli altri dischi
Onde evitare di cancellare definitivamente tutti i file dal disco / SSD sbagliato, è opportuno scollegare fisicamente ogni altra memoria di massa dal PC di lavoro, chiavette USB incluse.
Lasciate collegato solo il disco / SSD che volete ripulire, precauzione che faciliterà anche il suo riconoscimento.
Passo 3: Avviare da Live CD/USB Linux
Il comando hdparm che utilizzeremo fa parte della dotazione standard di molte distribuzioni Linux, fra le quali Ubuntu e derivate. Per sfruttarlo anche se non abbiamo Linux installato su PC, lavoriamo da Live CD/USB. Personalmente, ho preparato la chiavetta USB bootabile con Lubuntu e avviato il PC con quella:
» Leggi: Guida: come installare Ubuntu da chiavetta USB (Linux facile)
In alternativa possiamo usare uno strumento dedicato come questo:
» Leggi: Crea la tua pendrive avviabile con Linux Live Usb Creator
Passo 4: Terminale e root
hdparm funziona da linea di comando. Apriamo dunque il Terminale (combinazione da tastiera: Ctrl+Alt+T
)
» Leggi anche: Come aprire il terminale di Ubuntu
Otteniamo subito i privilegi di root: sudo -s
.
Passo 5: Scoprire il nome del disco
Procediamo ora scoprendo il "nome Linux" del disco che desideriamo formattare. Dato che abbiamo staccato tutte le altre memorie, dovrebbe essere /dev/sda
, ma dobbiamo verificarlo.
Impartiamo quanto segue:
fdisk -l | grep sd
Ora controlliamo quale sia il nome del disco e prendiamone nota. Nello screenshot seguente, era appunto /dev/sda
(come previsto)
Da notare che potrebbero essere visualizzate anche le singole partizioni: si riconoscono per la presenza di un numero progressivo in coda al nome (/dev/sda1
, /dev/sda2
ecc). Per i nostri scopi attuali dobbiamo ignorare e prendere il nome del disco, ovvero quello senza numero in fondo.
In caso il comando precedente non mostri nulla, significa che il disco ha un nome diverso da sda
, sdb
, sdc
ecc. Riproviamo quindi con il solo fdisk -l
.
Nel seguito della guida utilizzerò dunque /dev/sda
. In caso il nome fosse diverso sul PC che avete davanti, dovrete sostituirlo a /dev/sda
in tutti i comandi.
Passo 6: Smontare tutte le partizioni
Procediamo a smontare tutte le partizioni del disco / SSD dal quale eliminare definitivamente i dati:
for n in /dev/sda* ; do umount $n ; done
Passo 7: Scoprire quanto tempo servirà
Trattandosi di un'operazione completamente hardware che dipende unicamente dalle caratteristiche fisiche del disco, è possibile sapere in anticipo con precisione quanto tempo sarà necessario:
hdparm -I /dev/sda | grep -i 'SECURITY ERASE UNIT'
Il tempo necessario per la cancellazione totale è espresso in minuti, con una dicitura simile alla seguente:
954min for SECURITY ERASE UNIT. 954min for ENHANCED SECURITY ERASE UNIT
Nel caso in esempio, saranno necessari dunque 954 minuti (circa 16 ore). Il dato è riferito ad un grosso hard disk meccanico da 10 TB: con gli SSD e hard disk meno capienti servirà molto meno.
Sono presenti due numeri perché il secondo indica il tempo necessario per l'operazione di cancellazione avanzata (vedi seguito)
In caso non dovesse uscire nulla, riprovate con il solo hdparm -I /dev/sda
: l'informazione che cerchiamo dovrebbe essere in fondo.
E' importante sapere a priori quanto durerà l'operazione perché, durante l'esecuzione vera e propria, non verrà mostrato alcun indicatore di progressione che indichi il tempo residuo.
Passo 8: Verificare che il disco non sia "frozen"
Prima di impartire il comando di pulizia dobbiamo verificare che il disco non sia "protetto" contro questo tipo di operazioni:
hdparm -I /dev/sda | grep frozen
In caso il comando restituisca la dicitura not frozen
, siamo già pronti. Saltate al Passo successivo.
Se invece appare solo frozen
, il disco non può essere ancora ripulito e dobbiamo prima "scongelarlo"
Allo scopo, basta generalmente porre il PC in sospensione (sleep) tramite questo comando:
echo -n mem > /sys/power/state
Trascorsi una decina di secondi, risvegliare il sistema e impartire di nuovo hdparm -I /dev/sda | grep frozen
per assicurarsi che esca la stato not frozen
Se però lo sleep non è abilitato oppure il disco rimane frozen
, proviamo a scollegarlo fisicamente dall'alimentazione e dal connettore dati, attendere 30 secondi, poi ricollegarlo e riprovare. Questa tecnica un po' bislacca nelle mie prove ha sempre funzionato alla perfezione.
Passo 9: Impostare la password al disco
Siamo quasi pronti a ripulire il disco, ma prima dobbiamo impostare una password (verrà poi rimossa dalla procedura di cancellazione totale). Senza tanto impazzire, usate esattamente questo comando:
hdparm --security-set-pass MIAPASSW /dev/sda
Fate attenzione! D'ora in avanti il disco sarà totalmente inutilizzabile fino a quando non verrà ripulito con il comando di cancellazione (v. seguito) oppure tramite la speculare chiamata con argomento --disable-security
.
Alcune guide che ho consultato raccomandano di usare NULL
come password. La documentazione ufficiale raccomanda però caldamente di non farlo perché, in talune circostanze, può rendere i dischi inutilizzabili. Come si vede dallo screenshot precedente, io ho commesso questo grave errore senza osservare effetti nefasti, ma è bene evitarlo.
Passo 10: Cancellazione dati permanente
Finalmente ci siamo! Per cancellare in modo permanente tutti i dati dal disco, impartire quanto segue:
hdparm --security-erase-enhanced MIAPASSW /dev/sda
Come unica conferma che l'operazione è stata avviata correttamente riceveremo il messaggio Issuing SECURITY_ERASE command
. Come dicevamo, non verrà mostrato alcun indicatore di progressione. Per sapere quanto manca alla fine dovete sottrarre dal numero di minuti previsti (recuperati al Passo 7
) il tempo trascorso.
Al termine, verrà stampato a video un rapportino riassuntivo, e il Terminale tornerà al prompt di comando. Fino ad allora, l'operazione non può essere interrotta. In caso dovesse saltare la luce o crashare il PC, il disco rimarrà bloccato dalla password impostata e, dunque, sarà inutilizzabile. Impartite di nuovo il comando di cancellazione per tentare di nuovo o, in caso di emergenza, le seguenti istruzione per sbloccare il disco e tornare alla situazione di partenza:
hdparm --security-unlock MIAPASSW /dev/sda
hdparm --security-disable MIAPASSW /dev/sda
Conclusioni
In questa guida abbiamo visto come eliminare dati in modo permanente da un disco fisso / SSD sfruttando le funzioni di cancellazione proprie della specifica ATA. L'operazione è indubbiamente delicata, ma è anche quella che garantisce i migliori risultati, sia come rapidità, sia come sicurezza.
La fonte principale che ho consultato è questa pagina sul sito ufficiale degli sviluppatori del kernel Linux. Nella stessa sono presenti anche altri dettagli e raccomandazioni per affrontare alcuni problemi meno comuni. Ho poi trovato alcune info interessanti anche sulla wiki di Archlinux.
E tu, caro visitatore, hai incontrato qualche problema oppure è filato tutto liscio al primo colpo? Cosa ne pensi di questa procedura? Preferisci gli approcci software tradizionali, come DBAN? I commenti qui sotto sono a disposizione per scambiarci suggerimenti ed esperienze.