web-dev-qa-db-ja.com

ハードディスクドライブはラップトップのスリープ/スリープ解除時にスピンアップしますが、これを停止できますか?

ArchLinuxを実行しているラップトップにSSDとHDDがあります。後者はめったに使用しません。/mnt/sdb5としてマウントされ、バッテリーがオンのときにプロアクティブにスピンダウンするように構成されています(/etc/default/tlpDISK_APM_LEVEL_ON_BATはsdbの値が1です)。

ただし、ディスクは2つの状況でスピンアップしますが、私はそうしませんでした。

  • マシンを一時停止すると、マシンが回転し、すぐに再びダウンします。ドライブが取り付けられてからドライブに触れていないのに、なぜこれが行われるのか、私は一生想像できません。

  • マシンをスリープ解除すると、スピンアップします。おそらくそれはそれがそこにあることを確認しているのでしょうか?

(起動時にも起動しますが、理解できます。もちろん、パーティションテーブルを読み取る必要があります。)

ハードディスクドライブを取り外さずにこれらのスピンアップを回避できますか?使いたいときだけマウントしたいです。

3
Chris Morgan

ほとんどのドライブメーカーは、ジャンパー設定を使用して、デバイスが自身の電力を管理できるようにしています。たとえば、Green Western Digitalドライブでは、ジャンパーピン3および4(ドライブの背面からジャンパーブロックを見て右から2列目)。これが完了すると、コマンドが送信されない限り、ドライブは回転しません。これにより、RAIDまたはボールトコントローラがドライブを順次または必要に応じて起動できるようになります。

以下は、Arch固有ではないいくつかのアプローチを示唆しています。あなたのマイレージは異なる場合があります。

ドライブがジャンパーされている状態で、マウント時に開始をトリガーする必要があります。起動時に、これは/etc/init.d内のスクリプト、またはシステムのinit(8)に応じて「mountallの開始時に開始」トリガーされたスクリプトを使用して実行されます。必要になるまでマウントしない場合、これは問題ではありません。

それらが検出されると、udev(8)または他のデーモンが魔法のようにディスクのスリープを開始し、デーモンのルールの変更が必要になる場合があります。

/ sbin/mountの作成が必要になる場合があります。 FSタイプの元のマウントプログラムを使用する前に、マウントコマンドをインターセプトし、ディスクを準備するためのスクリプト。たとえば、/ sbin /mount.cifsを/ usr/lib/mountなどの場所に移動します。 /そして、/ sbin/mount.cifsに配置したスクリプト(またはプログラム)から呼び出します。このスクリプトは、最初にドライブに電力を供給し、場合によってはドライブの準備ができるまで待機します。

上記のようにumount(8)を使用して、ドライブをスリープ状態にします。

udev(8)は、デバイスの状態が変化したときに処理/使用したい「デバイスオフ/オンライン」イベントを発行します。

必要な場合にのみデバイスが回転したら、自動管理のためにautomount(8)またはafuse(8)を検討することができます。そうすれば、スリープ状態のドライブ上のファイルを参照するときはいつでも、データを透過的にスピン、マウント、および返しますが、多少の遅延はあります。しばらくアイドル状態になると、アンマウント(8)してスピンダウンします。

1
SomeGuy

起動時にマウントされるパーティションを無効にするには、/etc/fstabを編集する必要があります。起動時にHDDが自動マウントされないようにするには、次のように、パーティションごとに1行追加します。

/dev/sdb5 / auto noauto 0 0

更新:

Sudo hdparm -y /dev/sdb

   -y     Force  an  IDE drive to immediately enter the low power consump‐
          tion standby mode, usually causing it to spin down.  The current
          power mode status can be checked using the -C option.

hdparm -S X? /dev/sb5ここでX?以下の説明によると、私が理解できる限り、1は5秒間動作し、その後「スリープ」します。

これはman hdparmからです

   -S     Put the drive into idle  (low-power)  mode,  and  also  set  the
          standby (spindown) timeout for the drive.  This timeout value is
          used by the drive to determine how long to wait  (with  no  disk
          activity)  before  turning  off the spindle motor to save power.
          Under such circumstances, the drive may take as long as 30  sec‐
          onds  to respond to a subsequent disk access, though most drives
          are much quicker.  The encoding of the timeout value is somewhat
          peculiar.   A  value  of zero means "timeouts are disabled": the
          device will not automatically enter standby mode.  Values from 1
          to  240 specify multiples of 5 seconds, yielding timeouts from 5
          seconds to 20 minutes.  Values from 241 to 251 specify from 1 to
          11 units of 30 minutes, yielding timeouts from 30 minutes to 5.5
          hours.  A value of 252 signifies a  timeout  of  21  minutes.  A
          value  of 253 sets a vendor-defined timeout period between 8 and
          12 hours, and the value 254 is reserved.  255 is interpreted  as
          21  minutes  plus  15  seconds.  Note that some older drives may
          have very different interpretations of these values.

それが役立つ場合は、少し異なる/etc/hdparmに追加できます。

0