OS: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
これらの設定は、再起動するたびに消えますか?
ドライブの電源が入ったままのソフトリブートの場合、設定は消えません。電源を入れ直すと、APMパラメータがリセットされます。 (少なくとも、私のラップトップでは)
ほとんどのセッターは、hdparm
のゲッターオプションでもあります。 APM設定は、次の方法で簡単に確認できます。
# hdparm -B /dev/sdb
/dev/sdb:
APM_level = 128
ただし、これはスタンバイタイマーオプションでは機能しません。しかし、論理的には、これらの設定も失われます。
永続化するためにこれらのコマンドをどこに置くべきですか?
あらゆる種類のオプション、カスタムudev
ルール、systemd
サービス、cron
ジョブ(@reboot
)。あなたに一番合うもの。
Arch wiki 詳細については非常に優れたリソースです。
上記のウィキに触発されて、Gentooシステム用にsystemd
サービスファイルを作成しました。
[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
Archの提案は出力を抑制しますが、私は最後に発行されたコマンドでhdparm
の成功を確認することを好みます。
編集
サスペンド後、パラメータがハードドライブに保持されないことがわかりました。これは、より多くのラップトップシステムに当てはまる可能性があります。そのため、サンプルユニットファイルを変更しました。 this への礼儀unix.SOでの回答。