web-dev-qa-db-ja.com

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

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

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

71
user16295

hdparmをご覧ください。

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

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

タイムアウト値のエンコードはやや独特です。値ゼロは、「タイムアウトが無効になっている」ことを意味します。デバイスは自動的にスタンバイモードになりません。 1から240の値は5秒の倍数を指定し、5秒から20分のタイムアウトをもたらします。 241から251の値は、30分の1から11単位を指定し、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分後のスピンダウン。

67
Rinzwind

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

私のものは次のようになります。 screenshot

45
Ray

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

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

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

28
sergio.hs84
  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を渡すことができ、スクリプトは実行されません。

9
Ondra Žižka

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

 mcデフォルト#ps aux | grep hd-idle | grep -v grep |カット-c 66-; [a-d]のf do hdparm -C/dev/sd $ f | grep -v "^ $"; done 
/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:
ドライブ状態is:スタンバイ
/dev/sdd:
ドライブ状態:スタンバイ
 
8
user306935

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

5
beroal

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

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

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

5
vidar uslingsen

Ubuntu 14.04で

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

3
user245219

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にありますので、書き込みを制限したいです)が、これは単なるホームサーバーであるため、おそらく多くを見逃していません。間違いなくnot生産マシンにこの戦略を推奨します。

1
LawyerOnLinux

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

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

1
dwasifar