¿Cómo puedo controlar el tiempo de giro del HDD?

63

Tengo 2 discos duros en mi PC. Ubuntu está apagando el HDD secundario muy rápidamente después de unos 15 minutos, lo cual es corto para mí. Necesito controlar esta vez. ¿Cómo puedo hacerlo?

Probé la administración de energía de GNOME pero no me pareció útil.

    
pregunta user16295 03.05.2011 - 19:43

10 respuestas

57

Eche un vistazo a hdparm .

De el manual ( man hdparm en la línea de comandos):

  

-S Configura el tiempo de espera (spindown) para el disco. Este valor es utilizado por el variador para determinar cuánto tiempo esperar (sin actividad de disco) antes de apagar el motor del rotor para ahorrar energía. En tales circunstancias, la unidad puede tardar hasta 30 segundos para responder a un acceso de disco posterior, aunque la mayoría de las unidades son mucho más rápidas.

     

La codificación del valor de tiempo de espera es algo peculiar. Un valor de cero significa que "los tiempos de espera están desactivados": el dispositivo no entrará automáticamente en el modo de espera. Los valores de 1 a 240 especifican múltiplos de 5 segundos, produciendo tiempos de espera de 5 segundos a 20 minutos. Los valores de 241 a 251 especifican de 1 a 11 unidades de 30 minutos, lo que da tiempos de espera de 30 minutos a 5.5 horas. Un valor de 252 significa un tiempo de espera de 21 minutos. Un valor de 253 establece un período de tiempo de espera definido por el proveedor entre 8 y 12 horas, y el valor 254 está reservado. 255 se interpreta como 21 minutos más 15 segundos. Tenga en cuenta que algunas unidades anteriores pueden tener interpretaciones muy diferentes de estos valores.

Entonces sudo hdparm -I /dev/sdb | grep level mostrará el valor de spindown actual, por ejemplo:

Advanced power management level: 254

Del manual: 254 está reservado, así que espero que sea el predeterminado de Ubuntu (¿alguien puede confirmarlo / ampliarlo por favor?)

Ejemplo:

sudo hdparm -S 25 /dev/sdb = spindown después de 25 * 5 segundos.

sudo hdparm -S 245 /dev/sdb = spindown después (245-240) * 30 minutos.

    
respondido por el Rinzwind 03.05.2011 - 19:53
42

Utilidad de disco - & gt; seleccione unidad de disco duro - & gt; haga clic en el icono "Más acciones ..." en la esquina superior derecha - & gt; Configuración de la unidad ...

El mío es así:

    
respondido por el Ray 08.12.2013 - 14:26
26

Si le interesa hacer la configuración de hdparm persistente entre reinicios, en lugar de agregarla al crontab, puede usar el /etc/hdparm.conf . Tengo lo siguiente, tenga en cuenta el uso de mayúscula S, no minúscula:

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

Agregue esa línea reemplazando el UUID por la suya, o también puede especificar el dispositivo usando el formato /dev/sdX . Puede averiguar el UUID de su disco con el comando sudo blkid .

    
respondido por el sergio.hs84 03.12.2012 - 12:04
6
  1. Encuentre el UUID de su disco .

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

    sudo -H gedit /etc/hdparm.conf  # Be careful from now on
    
  3. Busque spindown-time o la sección de configuración del disco.

    /dev/disk/by-label/4TB {
        spindown_time = 1200
    }
    
  4. Prefiero hacer referencia al disco por UUID, que sigue siendo el mismo en diferentes instalaciones (a menos que lo modifiques en el propio HW).

    /dev/disk/by-uuid/91e32677-0656-45b8-bcf5-14acce39d9c2 {
        spindown_time = 1200
    }
    
  5. Si el script de inicio causa problemas de arranque, puede pasar nohdparm en la línea de comandos del kernel, y el script no se ejecutará.

respondido por el Ondra Žižka 04.05.2016 - 19:10
5

Después de pasar horas y horas, descubrí que mi unidad WDC no es compatible con el comando hdparm -S, sin importar el valor del atributo idle3 (google: idle3ctl). Y ese es un problema común con las unidades WD. Pero me complace anunciar que hd-idle ( enlace ) funciona a la perfección. Si se instala desde el paquete dpkg-builded (consulte las notas de instalación), crea daemon en ubuntu y debian (la configuración está en / etc / default / hd-idle). Funciona bien después de reanudar también desde la hibernación.

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

    
respondido por el user306935 15.02.2015 - 14:42
5

Descubrí que el comportamiento de Spindown de Samsung HD204UI depende del nivel de APM ( hdparm -B ). Si el nivel de APM es 127, el tiempo de espera de spindown es de 10 s. Si el nivel de APM es 150, el tiempo de espera de spindown se define mediante la opción -S .

    
respondido por el beroal 13.02.2016 - 18:40
5

Agrego algo como:

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

al crontab de la raíz. Usar uuid es mejor, creo que porque sda / sdb etc. parece cambiar con cada reinicio

    
respondido por el vidar uslingsen 28.08.2011 - 22:15
3

En Ubuntu 14.04

Discos & gt; resaltar unidad & gt; haga clic en el engranaje en la esquina superior derecha & gt; Configuración de la unidad & gt; ¡ahora tiene las configuraciones de Standby, APM, AAM y Write Cache en una GUI fácil de usar!

    
respondido por el user245219 24.04.2014 - 23:37
1

En Debian, con unidades WD, encuentro que establecer cualquier nivel con hdparm -S hace que la unidad devuelva un nivel 254 en la siguiente hdparm -I . Así que no estoy seguro de si están girando o no. Creo que todavía están girando.

Estas unidades están en una matriz de servidores, y realmente no quiero que se desconecten. En el pasado lo he evitado configurando un trabajo cron para actualizar un archivo cada pocos minutos.

    
respondido por el dwasifar 01.05.2015 - 17:15
1

No tuve suerte con hdparm en una unidad de disco duro externa montada en un receptáculo USB, que utilizo para servir multimedia con minidlna.

Me encontré con una idea desde aquí: enlace

Los mejores resultados provienen del uso del disco uuid, que puede encontrar con:

sudo blkid

El siguiente método requiere acceso de root, pero también lo hace hdparm. Esto utiliza crontab para leer un bloque aleatorio de la unidad cada 5 minutos e ignora todos los mensajes. Para asegurarse de tener el UUID correcto, pruébelo en la línea de comandos de esta manera (asegúrese de usar el UUID deseado, no este):

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

Debería ver resultados como este:

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

Para suprimir este mensaje, que podría terminar siendo escrito en alguna parte, potencialmente el / filesystem (que está en una SSD en mi caso), a continuación se muestra lo que estoy usando en el crontab raíz. Llegas allí con

sudo crontab -e

Luego, bajo los comentarios:

*/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

Espero que esto ayude a alguien más con problemas similares. Desafortunadamente, esto todavía se escribe en el registro del sistema, pero hay formas posibles de suprimir eso; consulta esta publicación de ServerFault .

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

Pude suprimir estos mensajes editando /etc/rsyslog.d/50-default.conf para cambiar esta línea:

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

a esto:

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

Desafortunadamente, esto suprime todos los mensajes cron; No pude hacer que cron redireccione el registro del sistema de archivos raíz (que está en una SSD que está envejeciendo en mi caso, así que quiero limitar las escrituras), pero como esto es solo un servidor doméstico, probablemente no estoy perdiendo mucho. Definitivamente no recomendaría esta estrategia para una máquina de producción.

    
respondido por el LawyerOnLinux 06.01.2017 - 12:03

Lea otras preguntas en las etiquetas