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 3600Ubuntu24.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
コメント