コマンドが成功した場合でも、一部のドライブはこの機能を実装していないことに注意してください。 Advanced Power Management を減らす必要がある場合もあります hdparm -B 127 /dev/sda
でレベル127以下 .マニュアルページから:
-B高度な電源管理機能を取得/設定...値 1 ~ 127 (スピンダウンを許可)、および値 128 ~ 254 (スピンダウンを許可しない)。
すべて失敗した場合は、/proc/diskstats
をポーリングする小さなスクリプトを作成できます。 または /sys/block/sda/stat
デバイスでの読み取り/書き込みの数を監視し、数分間変化しない場合はドライブを明示的にスタンバイにします。 hd-idle ユーティリティを参照してください。
実際の問題は smartd
でした 、デバイスがスタンバイ モードのときでも、デバイスの値を定期的にチェックしていました。
smartd
を無効にして解決しました smartctl
でテストを実行する 時々。
私はubuntu 18.04を実行していますが、これと同じ問題がありました。 @allo の回答のおかげで、smartd
が見つかりました
デフォルトでは /etc/smartd.conf
は次のように構成されています:
DEVICESCAN -d removable -n standby -m root -M exec /usr/share/smartmontools/martd-runner
これにより、すべてのドライブが自動スキャンされ、定期的にポーリングされます (この操作はディスクをスピンアップします) (デフォルトは 30 分、変更可能)。ただし、-n standby
一部の smartd はスピンダウンしたディスクをスキップしますが、問題は、smartd のポーリング間隔がディスクの「スピンダウン後の」時間よりも短い場合、smartd は常にスピンダウンする前にディスクをポーリングするため、ディスクがスタンバイ モードになることはありません。
ディスクの「スピンダウン タイムアウト」が smartd のポーリング間隔より短い場合、ディスクは smartd ポーリングの前にスピンダウンし、その後 smartd はこのディスクをスキップしてスピンアップしません。 hd-idle
のようなツール の場合、smartd もそれをスキップします。
smartd のポーリング間隔を長くする方法の 1 つは、/etc/default/smartmontools
のこの行を編集することです。 :
smartd_opts="--interval=1800"
1800 は 30 分です。たとえば、10800 (3 時間) で十分です。再起動することを忘れないでください:
systemctl restart smartd smartmontools