Configurações de HDD inativas usando hdparm (APM, Suspender)

2

SO: GNU / Linux Debian 9.2

Desejo alterar o comportamento de meus computadores para suspender os HDDs quando estiver inativo por 30 minutos.

Até agora, descobri que preciso alterar o nível de APM para permitir a suspensão de discos definindo:

hdparm -B 127 /dev/sdX

Onde 127 é realmente o valor máximo que permite suspender as unidades (spindown).

Então eu fui para a configuração de espera:

hdparm -S 241 /dev/sdX

Onde 241 significa que deve aguardar após 30 minutos.

Nenhum erro foi reportado por hdparm durante a configuração.

Agora, minha pergunta:

Essas configurações desaparecem após cada reinicialização? Se sim, onde devo colocar esses comandos para que seja persistente?

Só para observar que eu quero afetar os seguintes dispositivos de uma só vez:

/dev/sda
/dev/sdb
/dev/sdd
/dev/sde
    
por Vlastimil 11.12.2017 / 19:51

1 resposta

1

Essas configurações desaparecem após cada reinicialização?

No caso de uma reinicialização suave, onde a unidade permanece ligada, as configurações não desaparecem. O ciclo de energia reinicializa o parâmetro APM. (Pelo menos, no meu laptop)

A maioria dos setters também são opções de getter em hdparm . A configuração do APM pode ser facilmente verificada por:

# hdparm -B /dev/sdb

/dev/sdb:
APM_level      = 128

Isso não funciona para a opção de temporizador de espera. Mas logicamente, essas configurações também são perdidas.

Onde devo colocar esses comandos para que seja persistente?

Todo o tipo de opções, regra% udev personalizada, systemd service, cron job ( @reboot ). O que mais combina com você?

Wiki do Arch é um bom recurso para mais informações.

Inspirado no wiki acima, criei um arquivo systemd service para meu sistema Gentoo:

[Unit]
Description=hdparm sleep
After=suspend.target

[Service]
Type=oneshot
ExecStart=/sbin/hdparm -S 12 -B 127 /dev/sdb

[Install]
WantedBy=multi-user.target suspend.target

Você pode querer afetar todos os seus dispositivos com as configurações de uma só vez da seguinte forma:

ExecStart=/sbin/hdparm -B 127 -S 241 /dev/sda /dev/sdb /dev/sdd /dev/sde

Note que você tem que usar caminhos absolutos para tudo, você não pode fazer, e. %código%. A localização exata do binário cmd /dev/sd[abde] pode ser diferente na sua distribuição.

Use o seguinte comando para saber a localização do seu hdparm , que normalmente seria chamado:

which hdparm

Então, você pode ativar o serviço e, opcionalmente, iniciá-lo, você pode simplesmente querer reinicializar a máquina para ter 100% de certeza de que ela funciona.

# systemctl enable hdparm.service
# systemctl start hdparm.service
# systemctl status hdparm.service

A proposta do Arch suprime a saída, mas eu prefiro verificar o sucesso de hdparm com o último comando emitido.

Editar

Eu descobri que após a suspensão, os parâmetros não são mantidos pelo meu disco rígido. Este pode ser o caso de mais sistemas portáteis. Portanto, modifiquei o arquivo da unidade de exemplo. Cortesia para esta resposta no unix.SO.

    
por 16.04.2018 / 20:49