Differences between revisions 1 and 2
Revision 1 as of 2012-07-14 13:59:05
Size: 1514
Editor: Kurgan
Comment:
Revision 2 as of 2022-09-26 09:34:49
Size: 5553
Editor: Kurgan
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
== HDPARM == = HDPARM =
Line 9: Line 9:
=== Power management === == Power management ==
Line 33: Line 33:


== 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:

 * Verificare se è possibile fare il secure erase. In questo esempio è supportato e il disco si trova in uno stato di normale funzionamento.
 {{{
hdparm -I /dev/sdx
...
Security:
 Master password revision code = 65534
  supported
 not enabled
 not locked
 not frozen
 not expired: security count
  supported: enhanced erase
 98min for SECURITY ERASE UNIT. 98min for ENHANCED SECURITY ERASE UNIT.
...
}}}
 * Impostare una password di sicurezza (è necessario, poi la toglieremo). In questo esempio diamo la password "p" all'utente "u".
 {{{
hdparm --user-master u --security-set-pass p /dev/sdX security_password="p"

/dev/sdx:
 Issuing SECURITY_SET_PASS command, password="p", user=user, mode=high
}}}
 * Verifichiamo se ha preso la password
 {{{
hdparm -I /dev/sdx
...
Security:
 Master password revision code = 65534
  supported
  enabled
 not locked
 not frozen
 not expired: security count
  supported: enhanced erase
 Security level high
...
}}}
 * Eseguire il secure erase (ora hdparm si appenderà e rimarrà appeso fino alla fine del secure erase)
 {{{
hdparm --user-master u --security-erase p /dev/sdX security_password="p"

/dev/sdx:
 Issuing SECURITY_ERASE command, password="p", user=user
}}}

 * Verificare se alla fine il disco è ancora lockato. Non dovrebbe esserlo, ma se lo è lo sbloccheremo.
  * Verifica del lock: se riporta {{{enabled}}} e {{{locked}}} come sotto, dobbiamo sbloccarlo
  {{{
hdparm -I /dev/sdx
...
Security:
 Master password revision code = 65534
  supported
  enabled
  locked
 not frozen
 not expired: security count
  supported: enhanced erase
 Security level high
...
}}}
  * Sblocco e disattivazione della sicurezza:
  {{{
hdparm --user-master u --security-unlock p /dev/sdX security_password="p"

/dev/sdx:
 Issuing SECURITY_UNLOCK command, password="p", user=user


hdparm --user-master u --security-disable p /dev/sdX security_password="p"

/dev/sdx:
 Issuing SECURITY_DISABLE command, password="p", user=user
}}}
  * Verifichiamo se è sbloccato come dovrebbe:
  {{{
 hdparm -I /dev/sdx
...
Security:
 Master password revision code = 65534
  supported
 not enabled
 not locked
 not frozen
...
}}}

 * Verifichiamo, se vogliamo, se è pulito. Se e solo se il secure erase consiste nello scrivere zeri su tutto il disco, possiamo usare questo comando per verificare se è vero che ci sono solo zeri. Alcuni SSD potrebbero portarsi a leggere solo "FF" invece di solo zeri, in quel caso il concetto non cambia. Usando hexdump possiamo verificare che il disco sia pieno di byte tutti uguali in quanto hexdump mostra la prima riga e poi smette di mostrare output se tutto cio` che legge è sempre uguale.
 {{{
dd if=/dev/sdX bs=8192 status=progress | hexdump

0000000 0000 0000 0000 0000 0000 0000 0000 0000
*
1000157208576 bytes (1.0 TB, 931 GiB) copied, 5708 s, 175 MB/s
122095323+0 records in
122095323+0 records out
1000204886016 bytes (1.0 TB, 932 GiB) copied, 5710.29 s, 175 MB/s
e8e0db6000
}}}

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.

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:

  • Verificare se è possibile fare il secure erase. In questo esempio è supportato e il disco si trova in uno stato di normale funzionamento.
    hdparm -I /dev/sdx
    ...
    Security: 
            Master password revision code = 65534
                    supported
            not     enabled
            not     locked
            not     frozen
            not     expired: security count
                    supported: enhanced erase
            98min for SECURITY ERASE UNIT. 98min for ENHANCED SECURITY ERASE UNIT.
    ...
  • Impostare una password di sicurezza (è necessario, poi la toglieremo). In questo esempio diamo la password "p" all'utente "u".
    hdparm --user-master u --security-set-pass p /dev/sdX security_password="p"
    
    /dev/sdx:
     Issuing SECURITY_SET_PASS command, password="p", user=user, mode=high
  • Verifichiamo se ha preso la password
    hdparm -I /dev/sdx
    ...
    Security:
            Master password revision code = 65534
                    supported
                    enabled
            not     locked
            not     frozen
            not     expired: security count
                    supported: enhanced erase
            Security level high
    ...
  • Eseguire il secure erase (ora hdparm si appenderà e rimarrà appeso fino alla fine del secure erase)
    hdparm --user-master u --security-erase p /dev/sdX security_password="p"
    
    /dev/sdx:
     Issuing SECURITY_ERASE command, password="p", user=user
  • Verificare se alla fine il disco è ancora lockato. Non dovrebbe esserlo, ma se lo è lo sbloccheremo.
    • Verifica del lock: se riporta enabled e locked come sotto, dobbiamo sbloccarlo

      hdparm -I /dev/sdx
      ...
      Security:
              Master password revision code = 65534
                      supported
                      enabled
                      locked
              not     frozen
              not     expired: security count
                      supported: enhanced erase
              Security level high
      ...
    • Sblocco e disattivazione della sicurezza:
      hdparm --user-master u --security-unlock p /dev/sdX security_password="p"
      
      /dev/sdx:
       Issuing SECURITY_UNLOCK command, password="p", user=user
      
      
      hdparm --user-master u --security-disable p /dev/sdX security_password="p"
      
      /dev/sdx:
       Issuing SECURITY_DISABLE command, password="p", user=user
    • Verifichiamo se è sbloccato come dovrebbe:
       hdparm -I /dev/sdx
      ...
      Security:
              Master password revision code = 65534
                      supported
              not     enabled
              not     locked
              not     frozen
      ...
  • Verifichiamo, se vogliamo, se è pulito. Se e solo se il secure erase consiste nello scrivere zeri su tutto il disco, possiamo usare questo comando per verificare se è vero che ci sono solo zeri. Alcuni SSD potrebbero portarsi a leggere solo "FF" invece di solo zeri, in quel caso il concetto non cambia. Usando hexdump possiamo verificare che il disco sia pieno di byte tutti uguali in quanto hexdump mostra la prima riga e poi smette di mostrare output se tutto cio` che legge è sempre uguale.
    dd if=/dev/sdX bs=8192 status=progress | hexdump
    
    0000000 0000 0000 0000 0000 0000 0000 0000 0000
    *
    1000157208576 bytes (1.0 TB, 931 GiB) copied, 5708 s, 175 MB/s  
    122095323+0 records in
    122095323+0 records out
    1000204886016 bytes (1.0 TB, 932 GiB) copied, 5710.29 s, 175 MB/s
    e8e0db6000

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.

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