Come posso controllare il tempo di rotazione dell'HDD?

63

Ho 2 HDD nel mio PC. Ubuntu sta spegnendo l'HDD secondario molto velocemente dopo circa 15 minuti, che per me è breve. Devo controllare questa volta. Come posso farlo?

Ho provato GNOME power management ma non l'ho trovato utile.

    
posta user16295 03.05.2011 - 19:43

10 risposte

57

Dai un'occhiata a hdparm .

Da il manuale ( man hdparm sulla riga di comando):

  

-S Imposta il timeout standby (spindown) per il convertitore. Questo valore viene utilizzato dall'unità per determinare il tempo di attesa (senza attività del disco) prima di spegnere il motore del mandrino per risparmiare energia. In tali circostanze, l'unità può impiegare fino a 30 secondi per rispondere a un successivo accesso al disco, sebbene la maggior parte delle unità sia molto più veloce.

     

La codifica del valore di timeout è alquanto peculiare. Un valore pari a zero significa "timeout disabilitati": il dispositivo non entrerà automaticamente in modalità standby. I valori da 1 a 240 specificano multipli di 5 secondi, restituendo timeout da 5 secondi a 20 minuti. I valori da 241 a 251 specificano da 1 a 11 unità di 30 minuti, con timeout compresi tra 30 minuti e 5,5 ore. Un valore di 252 indica un timeout di 21 minuti. Un valore di 253 imposta un periodo di timeout definito dal fornitore tra 8 e 12 ore e il valore 254 è riservato. 255 viene interpretato come 21 minuti più 15 secondi. Si noti che alcune unità meno recenti potrebbero avere interpretazioni molto diverse di questi valori.

Quindi sudo hdparm -I /dev/sdb | grep level mostrerà il valore corrente dello spindown, ad esempio:

Advanced power management level: 254

Dal manuale: 254 è riservato quindi mi aspetto che sia l'impostazione predefinita di Ubuntu (qualcuno può confermarlo / espanderlo per favore?)

Esempio:

sudo hdparm -S 25 /dev/sdb = spindown dopo 25 * 5 secondi.

sudo hdparm -S 245 /dev/sdb = spindown dopo (245-240) * 30 minuti.

    
risposta data Rinzwind 03.05.2011 - 19:53
42

Utility Disco - & gt; seleziona unità HDD - & gt; fai clic sull'icona "Altre azioni ..." nell'angolo in alto a destra - & gt; Impostazioni dell'unità ...

Il mio è simile a questo:

    
risposta data Ray 08.12.2013 - 14:26
26

Se sei interessato a mantenere persistente l'impostazione di hdparm tra i riavvii, invece di aggiungerla a crontab, puoi usare /etc/hdparm.conf . Ho il seguente, si noti l'uso del capitale S, non in lettere minuscole:

command_line {
    hdparm -S 25 /dev/disk/by-uuid/f6c52265-d89f-43a4-b03b-302c3dadb215 
}

Aggiungi la linea che sostituisce l'UUID con la tua oppure puoi specificare il dispositivo utilizzando il formato /dev/sdX . Puoi scoprire l'UUID del tuo disco con il comando sudo blkid .

    
risposta data sergio.hs84 03.12.2012 - 12:04
5

Dopo aver trascorso ore e ore ho scoperto che il mio drive WDC non supporta il comando hdparm -S, indipendentemente dal valore di attributo idle3 (google: idle3ctl). E questo è un problema comune con le unità WD. Ma sono lieto di annunciare che hd-idle ( link ) funziona in modo impeccabile. Se installato dal pacchetto dpkg-builded (vedi Note di installazione), crea daemon sia su ubuntu che su debian (config è in / etc / default / hd-idle). Funziona bene anche dopo il riavvio dal letargo.

mc default # ps aux | grep hd-idle | grep -v grep | cut -c 66- ; for f in [a-d] ; do hdparm -C /dev/sd$f | grep -v "^$" ; done
/usr/sbin/hd-idle -i 1800 -a sdc -i 600 -a sdd -i 60 -l /var/log/hd-idle.log
/dev/sda:
 drive state is:  active/idle
/dev/sdb:
 drive state is:  standby
/dev/sdc:
 drive state is:  standby
/dev/sdd:
 drive state is:  standby

    
risposta data user306935 15.02.2015 - 14:42
5

Ho scoperto che il comportamento spindown di Samsung HD204UI dipende dal livello di APM ( hdparm -B ). Se il livello APM è 127, il timeout dello spindown è 10 s. Se il livello APM è 150, il timeout dello spindown è definito dall'opzione -S .

    
risposta data beroal 13.02.2016 - 18:40
5

Aggiungo qualcosa come:

@reboot sudo hdparm -S244 /dev/disk/by-uuid/71492809-e463-41fa-99e2-c09e9ca90c8e  > /dev/null 2> /dev/null

al crontab di root. Usare uuid è meglio, credo perché sda / sdb ecc sembra cambiare ad ogni riavvio

    
risposta data vidar uslingsen 28.08.2011 - 22:15
4
  1. Trova l'UUID del tuo disco .

    sudo lsblk --output NAME,FSTYPE,LABEL,UUID,MODE
    
  2. Modifica /etc/hdparm.conf

    sudo -H gedit /etc/hdparm.conf  # Be careful from now on
    
  3. Cerca spindown-time o la sezione delle impostazioni del tuo disco.

    /dev/disk/by-label/4TB {
        spindown_time = 1200
    }
    
  4. Preferisco fare riferimento al disco tramite UUID che rimane lo stesso su diverse installazioni (a meno che non lo si cambi nel HW stesso).

    /dev/disk/by-uuid/91e32677-0656-45b8-bcf5-14acce39d9c2 {
        spindown_time = 1200
    }
    
  5. Se lo script di init causa problemi di avvio, puoi passare nohdparm sulla riga di comando del kernel e lo script non verrà eseguito.

risposta data Ondra Žižka 04.05.2016 - 19:10
3

In Ubuntu 14.04

Dischi & gt; evidenzia drive & gt; fai clic sull'ingranaggio nell'angolo in alto a destra & gt; Impostazioni Drive & gt; ora hai le impostazioni di Standby, APM, AAM e Write Cache in una GUI facile da usare!

    
risposta data user245219 24.04.2014 - 23:37
1

Su Debian, con le unità WD, trovo che l'impostazione di qualsiasi livello con hdparm -S risulti nell'unità che restituisce un livello 254 al successivo hdparm -I . Quindi non sono sicuro se gireranno o no. Penso che stiano ancora girando verso il basso.

Queste unità sono su un array di server, e davvero non voglio che si blocchino mai. In passato mi sono arrischiato impostando un cron job per aggiornare un file ogni pochi minuti.

    
risposta data dwasifar 01.05.2015 - 17:15
1

Non ho avuto fortuna con hdparm su un HDD esterno montato in un enclosure USB, che uso per servire i media con minidlna.

Ho trovato un'idea da qui: link

I migliori risultati derivano dall'uso del uuid del disco, che puoi trovare con:

sudo blkid

Il seguente metodo richiede l'accesso come root, ma anche hdparm. Questo usa crontab per leggere un blocco casuale dall'unità ogni 5 minuti e ignora tutti i messaggi. Per assicurarti di avere l'UUID corretto, testalo sulla riga di comando in questo modo (assicurati di utilizzare l'UUID desiderato, non questo):

sudo dd if=/dev/disk/by-uuid/f01df4b5-6865-476a-8d3b-597cbd886d41 of=/dev/null count=1 skip=$RANDOM

Dovresti vedere un output come questo:

1+0 records in
1+0 records out
512 bytes copied, 0.000738308 s, 693 kB/s'

Per sopprimere questo messaggio, che potrebbe finire per essere scritto da qualche parte, potenzialmente il / filesystem (che è su un SSD nel mio caso), di seguito è quello che sto usando nel root crontab. Ci arrivi con

sudo crontab -e

Quindi, sotto i commenti:

*/5 * * * * bash -c 'dd if=/dev/disk/by-uuid/f01df4b5-6865-476a-8d3b-597cbd886d41 of=/dev/null count=1 skip=$RANDOM' >/dev/null 2>&1

Spero che questo aiuti qualcun altro con problemi simili. Sfortunatamente, questo viene ancora scritto nel syslog, ma ci sono potenzialmente modi per sopprimerlo; vedi questo post ServerFault .

[modifica] 2017-01-07 09:02:

Sono stato in grado di sopprimere questi messaggi modificando /etc/rsyslog.d/50-default.conf per modificare questa riga:

*.*;auth,authpriv.none -/var/log/syslog

a questo:

*.*;cron,auth,authpriv.none -/var/log/syslog

Purtroppo questo sopprime tutti i messaggi cron; Non sono riuscito a far sì che cron reindirizzasse la disconnessione dal filesystem di root (che è su un vecchio SSD nel mio caso, quindi voglio limitare le scritture), ma dato che questo è solo un server di casa, probabilmente non mi sto perdendo molto. Sicuramente non consiglia questa strategia per una macchina di produzione.

    
risposta data LawyerOnLinux 06.01.2017 - 12:03

Leggi altre domande sui tag