HDPARM

Hdparm serve a interagire con i dischi, e permette di fare anche cose distruttive. Attenzione, quindi.

Questi che seguono sono esempi pratici di funzioni che mi e` capitato di usare. Consiglio di leggere la man page di hdparm relativamente alle funzioni che intendete usare.

Power management

I dischi SATA (e non solo) possono essere configurati per gestire l'alimentazione spegnendosi in caso di inattivita`. Questo puo` essere un bene o un male a seconda dei punti di vista.

Con hdparm e` possibile agire (sempre se il disco accetta i comandi) sulle regole di gestione della alimentazione.

Per vedere lo stato attuale di un disco SATA, si usa

hdparm -C  /dev/sdX

Per alterare il timer interno al disco che determina il passare in stato di basso consumo, si puo` usare

hdparm  -S NN /dev/sdX

dove "NN" e` un numero da 0 a 255, nel quale ogni unita` rappresenta 5 secondi di tempo (12 = un minuto).

Volendo impostare al boot alcuni parametri del disco, fra i quali per esempio il power mangement, e` possibile (in Debian, almeno) inserire delle righe dentro a /etc/hdparm.conf. Un esempio che fa la stessa cosa del comando "-S" indicato prima e` questo:

/dev/disk/by-label/Secondario {
        spindown_time=12
}

Uso "/dev/disk/by-label/Secondario" anziche` "/dev/sdb" cosi` questo comando agisce solo se e` installato un disco con quel nome, e non genericamente su qualsiasi disco si trovi nella posizione "/dev/sdb".

Secure Erase

La procedura di secure erase dovrebbe distruggere tutti i dati nel disco. A seconda del modello di disco potrebbe fisicamente sovrascrivere con zero, sovrascrivere con un pattern particolare, o semplicemente cancellare e ricreare una chiave crittografica dentro al disco che invalida tutti i dati, senza tuttavia sovrascrivere nulla.

Il secure erase funziona tipicamente solo da interfaccia SATA o SAS e non tramite USB. In realtà esistono alcuni modelli di chipset USB che supportano correttamente sia tutti i comandi possibili dello SMART che quelli del secure erase.

Per eseguire il secure erase la procedura è questa:

Notare che durante il secure erase il processo di hdparm resta "appeso" ma io ho piu` volte disconnesso il disco (lasciandolo alimentato) e il secure erase e` continuato in autonomia senza tenere bloccato il PC e l'interfaccia. Una volta avviato il secure erase il disco rimane acceso e non va in stand-by fino alla fine dell'erase.

HPA e DCO

I dischi moderni hanno un meccanismo di remapping dei settori tale per cui ci sono aree del disco che sono "nascoste", che noi utenti non vediamo e che non possono essere accedute normalmente semplicemente usando "dd" o qualsiasi altro mezzo che legga o scriva settori del disco. Queste aree sono usate come "scorta" per rimappare i settori danneggiati, per esempio. Durante l'uso può succedere che dei dati utente vengano rimappati in queste aree e che alcuni dati utente rimangano in queste aree. In teoria un secure erase (meglio di un DD if=/dev/zero, il quale non le vede) dovrebbe cancellare TUTTO, anche queste aree. Tuttavia la realtà dipende dal firmware del disco e non abbiamo alcun modo per esserne sicuri.

Un disco con HPA attivo ci dovrebbe dire quanti settori sono "riservati" per la HPA, o meglio quanti settori ci sono sul disco e quanti ne possiamo vedere, la differenza sono quelli riservati:

Disattivando la HPA possiamo vedere in teoria tutti i settori, e a questo punto un "dd" dovrebbe in effetti agire su tutti i settori. Vale la pena di notare che se ci sono settori difettosi che erano stati nascosti dal firmware del disco ora dovremmo vederli tutti e quindi incappare in potenziali errori di I/O su detti settori. (nel comando che segue, il numero è il numero dei settori TOTALI del disco, letto prima)

Non ho provato, ma immagino che dando lo stesso comando con il numero di settori ridotto (lo stesso che abbiamo visto all'inizio) si riattivi l' HPA con le stesse impostazioni. Va da sè che è probabile che dando questi comandi possiamo in qualche modo danneggiare la mappatura logica dei settori e quindi corrompere i dati contenuti nel disco. Ma se li vogliamo cancellare non vedo problemi.

A riguardo del DCO, si tratta di un'area dove sono tenute configurazioni del controller stesso, e non dovrebbe contenere dati utente. Resettare il DCO è potenzialmente distruttivo ed è super-sconsigliato. Se volete farlo, comunque...

LinuxDebian/HdParm (last edited 2022-09-26 09:49:52 by Kurgan)