Udevルールは適用されませんでした。

Udevルールは適用されませんでした。

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/sdbAPM属性はサポートされていません。 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ます!

ベストアンサー1

おすすめ記事