
Eu tenho um disco rígido que deve entrar em modo de espera automaticamente após 30 ou 60 minutos.
Eu tentei (3 minutos para teste):
# hdparm -S 36 /dev/sda
/dev/sda:
setting standby to 36 (3 minutes)
E não funcionou, mesmo quando não houve acesso por mais de 5 minutos. Agora pensei em algum processo de acesso a dados, então testei
# hdparm -y /dev/sda
/dev/sda:
issuing standby command
O Drive entrou em modo de espera e continuou dormindo, como você pode pesquisar com
# hdparm -C /dev/sda;date
/dev/sda:
drive state is: standby
Tocar em algum arquivo no ponto de montagem o despertou como seria de esperar.
Por que a suspensão automática não está funcionando? Pelo que entendi deveria até desligar o disco rígido independente do SO, desde que não haja acesso.
Responder1
estou executando o Ubuntu 18.04 e tive o mesmo problema. graças à resposta de @allo, descobri que essa smartd
é realmente a causa.
por padrão o /etc/smartd.conf
é configurado assim:
DEVICESCAN -d removable -n standby -m root -M exec /usr/share/smartmontools/martd-runner
que fará a varredura automática de todas as unidades e as pesquisará (esta operação acelera o disco) periodicamente (padrão 30 minutos, alterável). embora com a -n standby
parte o smartd irá pular os discos girados, mas o problema é: se o intervalo de pesquisa do smartd for menor que o tempo de "desativação após" do disco, então o smartd sempre pesquisará o disco ANTES que ele tenha a oportunidade de girar. desativado, portanto o disco nunca entrará no modo de espera.
se o "tempo limite de rotação" do disco for menor que o intervalo de pesquisa do smartd, o disco diminuirá a rotação antes da pesquisa do smartd, após o qual o smartd irá ignorar este disco e não aumentá-lo. se o disco for (manualmente) desmembrado por outras ferramentas como hd-idle
, o smartd também irá ignorá-lo.
uma maneira de aumentar o intervalo de pesquisa do smartd é editar esta linha em /etc/default/smartmontools
:
smartd_opts="--interval=1800"
1800 mede 30 min, faça 10800 (3 horas) é tempo suficiente, por exemplo. e não se esqueça de reiniciá-los:
systemctl restart smartd smartmontools
Responder2
O verdadeiro problema era o smartd
, que verificava regularmente os valores do aparelho, mesmo quando ele estava no modo standby.
Eu resolvi isso desativando smartd
e executando testes de smartctl
vez em quando.
Responder3
Observe que algumas unidades não implementam esse recurso, mesmo que o comando seja aprovado. Você também pode precisar reduzir oGerenciamento avançado de energianível para 127 ou menos com hdparm -B 127 /dev/sda
. Na página de manual:
-B Obter/definir recurso de gerenciamento avançado de energia... valores de 1 a 127 (que permitem redução de rotação) e valores de 128 a 254 (que não permitem redução de rotação).
Se tudo falhar, você pode escrever um pequeno script que pesquise /proc/diskstats
o /sys/block/sda/stat
número de leituras/gravações no dispositivo e coloque explicitamente a unidade em espera se elas não mudarem ao longo de vários minutos. Veja ohd-ociosoUtilitário.