HDDのスピンダウン時間を制御するにはどうすればよいですか?


71

PCに2台のHDDがあります。Ubuntuは約15分後にセカンダリHDDを非常にすばやくオフにしますが、これは私にとっては短いです。この時間を制御する必要があります。どうすればいいですか?

GNOMEの電源管理を試しましたが、有用ではありませんでした。

回答:


67

をご覧くださいhdparm

マニュアルから(man hdparmコマンドラインで):

-Sドライブのスタンバイ(スピンダウン)タイムアウトを設定します。ドライブはこの値を使用して、スピンドルモーターをオフにして電力を節約するまでの待機時間(ディスクアクティビティなし)を決定します。このような状況では、ドライブは後続のディスクアクセスに応答するのに30秒かかる場合がありますが、ほとんどのドライブははるかに高速です。

タイムアウト値のエンコードはやや独特です。値ゼロは、「タイムアウトが無効になっている」ことを意味します。デバイスは自動的にスタンバイモードに入りません。1から240の値は5秒の倍数を指定し、5秒から20分のタイムアウトをもたらします。241〜251の値は、1〜11単位の30分を指定し、30分〜5.5時間のタイムアウトを生成します。値252は、21分のタイムアウトを意味します。値253は、ベンダー定義のタイムアウト期間を8〜12時間に設定し、値254は予約されています。255は21分+ 15秒と解釈されます。古いドライブの中には、これらの値の解釈がまったく異なる場合があることに注意してください。

したがってsudo hdparm -I /dev/sdb | grep level、現在のスピンダウン値が表示されます。例:

Advanced power management level: 254

マニュアルから:254は予約されているため、Ubuntuのデフォルトになると思われます(これについて確認/拡張してください)。

例:

sudo hdparm -S 25 /dev/sdb = 25 * 5秒後のスピンダウン。

sudo hdparm -S 245 /dev/sdb =(245-240)* 30分後のスピンダウン。


おかげRinzwindヒントについては、たくさん私を助けてくれたが、私はUbuntuの次のリリースでは、このためのGUIまたはそれは、GNOME電源マネージャに統合することができ見たい
user16295

4
lzapの答えについてはgrep、APM(-Bparm)のようですが、スピンダウンについて話-Sします。APMについて何か知っていますか?
ターボ

3
現在の-B設定は上記のように表示されます。現在の-S設定を確認するにはどうすればよいですか?
SabreWolfy

5
sudo hdparm -y /dev/sdbすぐに獣を殺す
siamii


46

ディスクユーティリティ-> HDDドライブの選択->右上隅の[その他のアクション...]アイコンをクリック->ドライブ設定...

私はこのように見えます: スクリーンショット


6
一番簡単、ありがとう!あなたはこれが持っていない場合はインストールする必要があります(ところでパッケージgnome-disk-utility
ゲルハルト・バーガー

Linuxへの道!+1
ノイラー

はい、非常に簡単です-これがここにあることを嬉しく思います。
ズザッハ...

@Ray君、素晴らしい!私はそれが外付けHDDで動作するという希望は基本的にありませんでしたが、うまくいきました!
UTF-8

1
このようなユーザーフレンドリーなツールはすでに終了しているのに、なぜほとんどのヒントにエラーが発生しやすいファイル編集やコンソール操作が含まれているのか!
WooYek

30

hdparmの設定をcrontabに追加する代わりに、リブート間で永続的に行うことに興味がある場合は、を使用できます/etc/hdparm.conf。私は以下を持っています、小文字ではなく大文字のSの使用に注意してください:

command_line {
    hdparm -S 25 /dev/disk/by-uuid/f6c52265-d89f-43a4-b03b-302c3dadb215 
}

UUIDを置き換える行を追加するか、/dev/sdXフォーマットを使用してデバイスを指定することもできます。コマンドを使用して、ディスクのUUIDを確認できますsudo blkid


3
command_line最近使用するのは正しいですか?私の異なる例があります/etc/hdparmか?
減光14年

1
OndraŽižkaの答えはより最新のようです。
ラファエル

9
  1. ディスクのUUIDを見つけます

    sudo lsblk --output NAME,FSTYPE,LABEL,UUID,MODE
    
  2. 編集 /etc/hdparm.conf

    sudo -H gedit /etc/hdparm.conf  # Be careful from now on
    
  3. spindown-timeまたはディスク設定セクションを探します。

    /dev/disk/by-label/4TB {
        spindown_time = 1200
    }
    
  4. 異なるインストール間で同じままであるUUIDでディスクを参照することを好みます(HW自体で変更しない限り)。

    /dev/disk/by-uuid/91e32677-0656-45b8-bcf5-14acce39d9c2 {
        spindown_time = 1200
    }
    
  5. initスクリプトがブートの問題を引き起こす場合、nohdparm カーネルコマンドラインを渡すことができ、スクリプトは実行されません。


そのパラメーターの単位は何ですか?
確実に

IIRC、それは秒です。または、これは「10未満の場合は数十秒、100未満の場合は数分」などのワイルドルールを持つパラメーターかもしれません。見つける必要があります。
オンドラジージュカ

2
:それは単位ではありません、このチェックwiki.archlinux.org/index.php/Hdparm
Ondraジシュカ

乾杯、何らかの理由で私はそれを見つけることができませんでしたman hdparm.conf
確実に

man hdparm.conf間接値に渡されること読み出し-S内のルールと適合性でなければならない値<255のために、したがってトップ答え。さらに情報があれば歓迎します。
dma_k

8

何時間も費やした後、idle3属性値(google:idle3ctl)に関係なく、WDCドライブがhdparm -Sコマンドをサポートしていないことを発見しました。そして、それはWDドライブに共通の問題です。しかし、hd-idle(http://hd-idle.sourceforge.net/)が問題なく動作することを発表できてうれしいです。dpkg-buildedパッケージからインストールした場合(インストールに関する注意事項を参照)、ubuntuとdebianの両方にデーモンを作成します(configは/ etc / default / hd-idleにあります)。休止状態からの復帰後も同様に機能します。

mc default#ps aux | grep hd-idle | grep -v grep | カット-c 66-; for for [ad]; do hdparm -C / dev / sd $ f | grep -v "^ $"; やった
/ usr / sbin / hd-idle -i 1800 -a sdc -i 600 -a sdd -i 60 -l /var/log/hd-idle.log
/ dev / sda:
 ドライブの状態:アクティブ/アイドル
/ dev / sdb:
 ドライブの状態:スタンバイ
/ dev / sdc:
 ドライブの状態:スタンバイ
/ dev / sdd:
 ドライブの状態:スタンバイ


インストール手順については、Western Digital GreenドライブのSATA HDD
スピンダウン

5

Samsung HD204UIのスピンダウン動作はAPMレベル(hdparm -B)に依存することを発見しました。APMレベルが127の場合、スピンダウンタイムアウトは10秒です。APMレベルが150の場合、スピンダウンタイムアウトは-Sオプションによって定義されます。


hdparmは-Sオプションを設定できますが、取得できません(ディスクスピンダウン時間の決定方法を参照)。それを取得するには、「ディスク」GUIソフトウェアを使用します。スクリーンショットで他の回答を参照してください。
KrisWebDev

5

私は次のようなものを追加します:

@reboot sudo hdparm -S244 /dev/disk/by-uuid/71492809-e463-41fa-99e2-c09e9ca90c8e  > /dev/null 2> /dev/null

ルートのcrontabへ。sda/ sdbなどは再起動のたびに変わるようだから、uuidを使用した方が良いと思います


10
なぜ使用しないのhdparm.confですか?
エンドリュック

3

Ubuntu 14.04で

ディスク>ドライブを強調表示>右上隅の歯車をクリック>ドライブ設定>使いやすいGUIでスタンバイ、APM、AAM、書き込みキャッシュの設定ができました!


これをどのように機能させるのですか?私はこれを設定し、再起動後に戻った場合、ドライブの電源が切れるはずであることを思い出しましたが、それはありません。hdparm -Cは常にアクティブであることを示し、コマンドラインからhdparm -S xxxを実行するだけで機能します。
ダンカーター14

1
「ディスク」はどこにありますか?
nealmcb

1

Debianでは、WDドライブを使用して、hdparm -Sでレベルを設定すると、ドライブが後続のhdparm -Iでレベル254を返すことがわかりました。だから、彼らがスピンダウンしているかどうかは本当にわかりません。彼らはまだスピンダウンしていると思います。

これらのドライブはサーバーアレイ上にあり、スピンダウンすることは本当に望ましくありません。過去に、数分ごとにファイルを更新するようにcronジョブを設定することにより、これを巧みに行ってきました。


1

USBエンクロージャーにマウントされた外付けHDDでhdparmを使用することはできませんでした。これはminidlnaでメディアを提供するために使用します。

私はここからアイデアに出会いました:https : //serverfault.com/questions/562738/keeping-usb-backup-drive-from-sleeping-while-mounted

ディスクのuuidを使用することで最良の結果が得られます。

sudo blkid

次の方法ではルートアクセスが必要ですが、hdparmも必要です。これは、crontabを使用して5分ごとにドライブからランダムブロックを読み取り、すべてのメッセージを無視します。正しいUUIDがあることを確認するには、コマンドラインで次のようにテストします(このUUIDではなく、目的のUUIDを使用してください)。

sudo dd if=/dev/disk/by-uuid/f01df4b5-6865-476a-8d3b-597cbd886d41 of=/dev/null count=1 skip=$RANDOM

次のような出力が表示されます。

1+0 records in
1+0 records out
512 bytes copied, 0.000738308 s, 693 kB/s`

最終的にどこかに書き込まれる可能性のあるこのメッセージを抑制するために、潜在的に/ファイルシステム(私の場合はSSD上にあります)は、以下がルートcrontabで使用しているものです。あなたはそこに着きます

sudo crontab -e

次に、コメントの下で:

*/5 * * * * bash -c 'dd if=/dev/disk/by-uuid/f01df4b5-6865-476a-8d3b-597cbd886d41 of=/dev/null count=1 skip=$RANDOM' >/dev/null 2>&1

これが同様の問題を持つ他の人の助けになることを願っています。残念ながら、これはまだsyslogに書き込まれますが、潜在的にそれを抑制する方法があります。このServerFaultの投稿を参照してください。

[編集] 2017-01-07 09:02:

/etc/rsyslog.d/50-default.confを編集して次の行を変更することにより、これらのメッセージを抑制することができました。

*.*;auth,authpriv.none -/var/log/syslog

これに:

*.*;cron,auth,authpriv.none -/var/log/syslog

残念ながら、これはすべてのcronメッセージを抑制します。ルートファイルシステムからログをリダイレクトするためにcronを取得できませんでした(私の場合は古いSSDにありますので、書き込みを制限したいです)が、これは単なるホームサーバーなので、おそらく多くを見逃していません。実稼働マシンにはこの戦略を絶対にお勧めしませ

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.