最近USB接続のUSB HDDの熱が少し気になります.通常時は倉庫的に使っているのでアイドルです.アイドルが一定時間続いたらスリープするように設定できたよなと hdparm -S
を叩いてみましたがコントローラーが非対応のようでエラーとなりました.
$ sudo hdparm -S 60 /dev/sdb /dev/sdb: setting standby to 60 (5 minutes) SG_IO: bad/missing sense data, sb[]: 70 00 05 00 00 00 00 0a 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
hd-idle
を使うとスリープするように出来ました.
Debianパッケージで導入します.
$ sudo apt install hd-idle
/etc/default/hd-idle
を編集して設定します.ここでは対象のディスクの /dev/sdb
から sdb
を,タイムアウト時間を 300
(秒) を指定しました.
$ sudo git -C /etc diff /etc/default/hd-idle diff --git a/default/hd-idle b/default/hd-idle index 57eb964..1c1bedb 100644 --- a/default/hd-idle +++ b/default/hd-idle @@ -9,7 +9,7 @@ # and systemv scripts # properly update HD_IDLE_OPTS in order to star hd-idle -HD_IDLE_OPTS="-h" +HD_IDLE_OPTS="-i 0 -a sdb -i 300" # hd-idle command line options # Options are:
その後デバイス名(/dev/sdb)からuuidに変更しました.
$ lsblk -f /dev/sdb # sdbのuuidを確認 NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINT sdb crypto_LUKS 1 ac5b8484-4b26-4967-b336-f63c408bb17d └─luks-ac5b8484-4b26-4967-b336-f63c408bb17d ext4 1.0 export 95c61e04-e22b-4f0f-9af8-2c3d96b0b179 3.5G 100% /media/matoken/export$ sudo git -C /etc diff /etc/default/hd-idle diff --git a/default/hd-idle b/default/hd-idle index 1c1bedb..73dbc52 100644 --- a/default/hd-idle +++ b/default/hd-idle @@ -9,7 +9,7 @@ # and systemv scripts # properly update HD_IDLE_OPTS in order to star hd-idle -HD_IDLE_OPTS="-i 0 -a sdb -i 300" +HD_IDLE_OPTS="-i 0 -a 95c61e04-e22b-4f0f-9af8-2c3d96b0b179 -i 900" # hd-idle command line options # Options are:
起動します.
$ sudo service hd-idle start $ ps -ef| grep -i hd-i root 3468122 1 0 23:24 ? 00:00:00 /usr/sbin/hd-idle -i 0 -a sdb -i 300
これで5分対象のhddが利用されなかったらスリープ,そのご利用しようとしたら自動的にスピンアップしてきます.
環境
$ lsusb | grep ATA Bus 001 Device 008: ID 1bcf:0c31 Sunplus Innovation Technology Inc. SPIF30x Serial-ATA bridge $ dpkg-query -W hd-idle hd-idle 1.05+ds-2 $ lsb_release -dr Description: Debian GNU/Linux 11 (bullseye) Release: 11 $ arch x86_64