UbuntuでHDDが一定時間アイドルだったらスリープさせる

ALL
スポンサーリンク

UbuntuでHDDが一定時間アイドル状態の場合に、HDDをスリープさせる hd-idle コマンドがあります。

インストールです。

apt install hd-idle

実行は、次のようにします。
-i 0 はデフォルト設定で、すべてのHDDはスリープ無しとしています。
-a sdb -i 3600 で、 /dev/sdb が 3600秒アイドル状態だったらスリープするように指定しています。

hd-idle -i 0 -a sdb -i 3600

複数のHDDも指定できます。
次の例では、/dev/sdb が 600秒、/dev/sdc が 3600秒アイドル状態だったらスリープするように指定しています。

hd-idle -i 0 -a sdb -i 600 -a sdc -i 3600

システム起動時から実行させるには、cronから実行できます。
例えば sdb,sdc がUSB-HDDの場合、例のように sleep 60 等で USB-HDDの起動待ちをします。

@reboot sleep 60;hd-idle -i 0 -a sdb -i 3600 -a sdc -i 3600

Ubuntu24.04 ではスリープさせたHDDがいつの間にかスリープから復帰していました。
smartd、pool-udisksd、fwupd がHDDにアクセスし、スリープから復帰させてしまいます。これらを停止すると、意図しない復帰は無くなりました

smartd はハードディスクの状態を監視するデーモンです。設定で異常を検出するとメール通知できます。
停止する場合です。

systemctl stop smartd
systemctl disable smartd

pool-udisksd は、USBストレージの接続時に自動マウントなどを実行します。自動マウントせずに手動マウントでいい場合は停止させます。
udisks2サービスの停止で、pool-udisksd は停止します。

systemctl mask udisks2.service
systemctl disable udisks2.service

fwupd はファームウェアの更新の自動チェックです。
停止する場合です。

systemctl stop fwupd.service
systemctl disable fwupd.service
systemctl stop fwupd-refresh.timer
systemctl disable fwupd-refresh.timer

コメント