
Ubuntu 19.10に単純なudevルールがあります
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", RUN+="/sbin/hdparm -B 127 -S 120 /dev/%k"
この機能を適用できるドライブは2つあります。
# lsblk -d -o name,rota
NAME ROTA
loop0 0
loop1 0
loop2 0
loop3 0
sda 1
sdb 1
sdc 0
sdd 1
nvme0n1 0
起動後にディスクを確認してください
# hdparm -B /dev/sda
/dev/sda:
APM_level = 127
# hdparm -B /dev/sdd
/dev/sdd:
APM_level = 254
#
なぜこれを使用してはいけないのかわかりません/dev/sdd
。シェルからコマンドを実行でき、うまく/dev/sdd
動作します。
ルールは次のようにトリガーすることもできます。
udevadm trigger /dev/sdd
コマンドを正しく実行してください。
この問題をデバッグする方法についてのアイデアはありますか?
PS。/dev/sdb
APM属性はサポートされていません。 hdparmが失敗してudevの実行が停止しましたか?この場合、どのようにスキップできますか/dev/sdb
?
修正する:
かなり長い間試して出力を記録するシェルスクリプトを作成した後、出力はドライブが更新されたと言うようhdparm
です。hdparm
さてドライブ設定を確認してみると適用できませんね!
これで設定が完了しました。/etc/hdparm.conf
/dev/sda {
apm = 127
spindown_time = 120
}
/dev/sdb {
spindown_time = 120
}
/dev/sdd {
apm = 127
spindown_time = 120
}
これですべての設定が適用されました。
ルールを使うほどエレガントではありませんが、うまくいきudev
ます!