Como posso controlar o tempo de desaceleração do HDD?

65

Eu tenho 2 HDDs no meu PC. O Ubuntu está desligando o disco rígido secundário muito rapidamente após cerca de 15 minutos, o que é curto para mim. Eu preciso controlar desta vez. Como posso fazer isso?

Eu tentei o gerenciamento de energia do GNOME, mas não achei útil.

    
por user16295 03.05.2011 / 19:43

10 respostas

58

Dê uma olhada em hdparm .

De o manual ( man hdparm na linha de comando):

% bl0ck_qu0te%

Portanto, sudo hdparm -I /dev/sdb | grep level mostrará o valor atual de spindown, por exemplo:

Advanced power management level: 254

Do manual: 254 é reservado, então eu espero que seja o padrão do Ubuntu (alguém pode confirmar / expandir isso, por favor?)

Exemplo:

sudo hdparm -S 25 /dev/sdb = spindown após 25 * 5 segundos.

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

    
por Rinzwind 03.05.2011 / 19:53
42

Utilitário de disco - > selecione HDD drive - > clique no ícone "Mais ações ..." no canto superior direito - > Configurações da unidade ...

O meu é parecido com isto:

    
por Ray 08.12.2013 / 14:26
26

Se você estiver interessado em fazer a configuração do hdparm persistente entre as reinicializações, em vez de adicioná-lo ao crontab, você pode usar o /etc/hdparm.conf . Eu tenho o seguinte, observe o uso do capital S, não em minúsculas:

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

Adicione essa linha substituindo o UUID pelo seu ou você também pode especificar o dispositivo usando o formato /dev/sdX . Você pode descobrir o UUID do seu disco com o comando sudo blkid .

    
por sergio.hs84 03.12.2012 / 12:04
8
  1. Encontre o UUID do seu disco .

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

    sudo -H gedit /etc/hdparm.conf  # Be careful from now on
    
  3. Procure spindown-time ou sua seção de configurações de disco.

    /dev/disk/by-label/4TB {
        spindown_time = 1200
    }
    
  4. Eu prefiro se referir ao disco pelo UUID, que permanece o mesmo em diferentes instalações (a menos que você o altere no próprio HW).

    /dev/disk/by-uuid/91e32677-0656-45b8-bcf5-14acce39d9c2 {
        spindown_time = 1200
    }
    
  5. Se o script de inicialização causar problemas de inicialização, você poderá transmitir nohdparm na linha de comando do kernel, e o script não será executado.

por Ondra Žižka 04.05.2016 / 19:10
6

Depois de passar horas e horas, descobri que minha unidade WDC não suporta o comando hdparm -S, independentemente do valor do atributo idle3 (google: idle3ctl). E isso é problema comum com unidades WD. Mas tenho o prazer de anunciar que o hd-idle ( link ) funciona perfeitamente. Se instalado a partir do pacote dpkg-builded (veja as notas de instalação), ele cria o daemon no Ubuntu e no Debian (a configuração está em / etc / default / hd-idle). Funciona bem depois de retomar da hibernação também.

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

    
por user306935 15.02.2015 / 14:42
5

Eu descobri que o comportamento de spindown do Samsung HD204UI depende do nível de APM ( hdparm -B ). Se o nível de APM for 127, o tempo limite de spindown é de 10 s. Se o nível de APM for 150, o tempo limite de spindown é definido pela opção -S .

    
por beroal 13.02.2016 / 18:40
5

Eu adiciono algo como:

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

para o crontab do root. Usar uuid é melhor, porque acho que sda / sdb etc. parece mudar a cada reinicialização

    
por vidar uslingsen 28.08.2011 / 22:15
3

No Ubuntu 14.04

Discos > destaque drive > clique na engrenagem no canto superior direito > Configurações da unidade > agora você tem as configurações de Espera, APM, AAM e Cache de Gravação em uma GUI fácil de usar!

    
por user245219 24.04.2014 / 23:37
1

No Debian, com unidades WD, acho que a configuração de qualquer nível com hdparm -S resulta na unidade retornando um nível 254 no hdparm -I subseqüente. Então, eu realmente não tenho certeza se eles estão girando ou não. Eu acho que eles ainda estão girando.

Essas unidades estão em uma matriz de servidores, e eu realmente não quero que elas sejam desativadas. No passado, eu alterei isso definindo um cron job para atualizar um arquivo a cada poucos minutos.

    
por dwasifar 01.05.2015 / 17:15
1

Eu não tive sorte com hdparm em um disco rígido externo montado em um gabinete USB, que eu uso para servir mídia com minidlna.

Me deparei com uma ideia daqui: link

Os melhores resultados vêm do uso do uuid do disco, que você pode encontrar com:

sudo blkid

O método a seguir requer acesso root, mas o hdparm também. Isso usa crontab para ler um bloco aleatório da unidade a cada 5 minutos e ignora todas as mensagens. Para ter certeza de que você tem o UUID correto, teste-o na linha de comando assim (certifique-se de usar o UUID desejado, não este):

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

Você deve ver a saída assim:

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

Para suprimir esta mensagem, que pode acabar sendo escrita em algum lugar, potencialmente o / filesystem (que está em um SSD no meu caso), abaixo está o que eu estou usando no crontab raiz. Você chega lá com

sudo crontab -e

Em seguida, sob os comentários:

*/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 isso ajude alguém com problemas semelhantes. Infelizmente, isso ainda é gravado no syslog, mas existem maneiras de suprimir isso; veja esta postagem ServerFault .

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

Consegui suprimir essas mensagens editando o /etc/rsyslog.d/50-default.conf para alterar essa linha:

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

para isso:

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

Infelizmente, isso suprime todas as mensagens do cron; Não consegui fazer com que o cron redirecionasse o log do sistema de arquivos raiz (que está em um SSD antigo no meu caso, portanto, quero limitar as gravações), mas como isso é apenas um servidor doméstico, provavelmente não estou perdendo muito. Definitivamente, não recomendaria essa estratégia para uma máquina de produção.

    
por LawyerOnLinux 06.01.2017 / 12:03