hdparmを使用したHDDアイドル設定(APM、一時停止)

hdparmを使用したHDDアイドル設定(APM、一時停止)

オペレーティングシステム: GNU/Linux Debian 9.2

30分間アイドル状態のときにHDDが一時停止するようにコンピュータの動作を変更したいと思います。

これまで私は変更が必要であることがわかりました。APMディスクを一時停止できるレベルを設定すると、次のようになります。

hdparm -B 127 /dev/sdX

ここで、127は実際にドライブを一時停止(遅く)できる最大値です。

その後、スタンバイ設定に入ります。

hdparm -S 241 /dev/sdX

そのうち241は30分後に待機を意味します。

hdparmこれを設定したときにエラーは報告されませんでした。

今私の質問は次のとおりです。

再起動するたびにこれらの設定は消えますか?それでは、これらのコマンドを永続化するにはどこに入れるべきですか?

次のデバイスにすぐに影響を与えたいと思います。

/dev/sda
/dev/sdb
/dev/sdd
/dev/sde

警告する:この質問は実験目的でのみ使用されました。 HDDのSMARTで起動/停止カウントサイクルを増やすと、HDDを実行し続けるよりも速くパフォーマンスが低下する可能性があります。

答え1

再起動するたびにこれらの設定は消えますか?

ソフト再起動時にドライブに電力が供給され続け、設定は失われません。電源を再起動すると、APMパラメータがリセットされます。 (少なくとも私のラップトップでは)

したがって、ほとんどのhdparmセッターは次のように簡単に確認できます。

# hdparm -B /dev/sdb

/dev/sdb:
APM_level      = 128

ただし、スタンバイタイマーオプションでは機能しません。ただし、論理的にはこれらの設定も失われます。

これらのコマンドを永続化するにはどこに配置する必要がありますか?

さまざまなオプション、カスタムudevルール、systemdサービス、cronタスク(@reboot)。あなたに最適なものは何ですか?

アーチスウィキより多くの情報を得るための素晴らしいリソースです。

私はWikiに触発され、systemdGentooシステム用のサービスファイルを作成しました。

[Unit]
Description=hdparm sleep
After=suspend.target

[Service]
Type=oneshot
ExecStart=/sbin/hdparm -S 12 -B 127 /dev/sdb

[Install]
WantedBy=multi-user.target suspend.target

次のように、設定によってすべてのデバイスに同時に影響を与えたい場合があります。

ExecStart=/sbin/hdparm -B 127 -S 241 /dev/sda /dev/sdb /dev/sdd /dev/sde

cmd /dev/sd[abde]すべてに絶対パスを使用する必要があることに注意してください。たとえば。バイナリの正確な位置はhdparmディストリビューションによって異なる場合があります。

通常呼び出される場所を見つけるには、次のコマンドを使用しますhdparm

which hdparm

その後、サービスを有効にしてオプションで開始できます。 100%動作していることを確認するためにコンピュータを再起動することをお勧めします。

# systemctl enable hdparm.service
# systemctl start hdparm.service
# systemctl status hdparm.service

hdparmArchの提案は出力を抑制しますが、成功したかどうかを確認するために最後に実行されたコマンドを使用することを好みます。

編集する

停止後、パラメータはもはや私のハードドライブに保存されなくなりました。これは、より多くのラップトップシステムに当てはまる可能性があります。だからサンプルユニットファイルを修正しました。感謝の言葉これunix.SOに回答しました。

関連情報