システム起動時にHDDがスピンアップしないようにするにはどうすればよいですか?(SSDからのUbuntu)


8

hdparm -B1 /dev/sdbHDDのおかげで、起動時に電源を入れても回転しなくなりました。しかし、BIOS POSTメッセージを完了してUbuntuを起動した後、HDDはSATAデータケーブルを介して信号を受け取り、スピンアップします。

データケーブルを残したまま(ただし、SATA電源ケーブルが接続されたまま)、HDDをスピンアップせずにシステムをSSDから完全に起動できます。

HDDがスピンアップする原因は何ですか?多分Grub2?


編集:いいえ、ドライブを起動するGrub2ではないようです。タイマーなしでメニューを表示するようにGrubを設定しました。Ubuntuの標準ブートオプションを押すまで何も起こらず、数秒後にドライブがスピンアップします。


編集dmesg | grep sdb::

[    7.080043] ata2.00: qc timeout (cmd 0xef)
[    7.080057] ata2.00: failed to IDENTIFY (SPINUP failed, err_mask=0x4)
[    9.830035] ata2: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[    9.836555] ata2.00: ATA-8: SAMSUNG HD105SI, 1AJ10001, max UDMA/133
[    9.836564] ata2.00: 1953525168 sectors, multi 0: LBA48 NCQ (depth 31/32)
[    9.842364] ata2.00: configured for UDMA/133
[    9.842644] scsi 1:0:0:0: Direct-Access     ATA      SAMSUNG HD105SI  1AJ1 PQ: 0 ANSI: 5
[    9.843249] sd 1:0:0:0: [sdb] 1953525168 512-byte logical blocks: (1.00 TB/931 GiB)
[    9.843270] sd 1:0:0:0: Attached scsi generic sg1 type 0
[    9.843487] sd 1:0:0:0: [sdb] Write Protect is off
[    9.843497] sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[    9.843590] sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    9.844091]  sdb:
[    9.845127] scsi 2:0:0:0: CD-ROM            ATAPI    iHDS118   5      RL0C PQ: 0 ANSI: 5
[    9.851182] sr0: scsi3-mmc drive: 48x/48x cd/rw xa/form2 cdda tray
[    9.851191] Uniform CD-ROM driver Revision: 3.20
[    9.851554] sr 2:0:0:0: Attached scsi CD-ROM sr0
[    9.851802] sr 2:0:0:0: Attached scsi generic sg2 type 5
[    9.942896]  sdb1
[    9.943773] sd 1:0:0:0: [sdb] Attached SCSI disk

HDDには何がありますか?おそらく、ureadaheadは重要でない何かをキャッシュしようとしていますか?また、ドライブに関連する/ etc / fstabエントリを投稿できますか?
M.ティビッツ2011年

私のHDDは、PDFマニュアルファイル、StarTrekエピソードなどのデータを保持します。プログラムファイルや設定ファイルなどはありません。
オリバー

1
fstab => / dev / sdb1 / media / data ext2 noatime、user、noauto 0 2
Oliver

回答:


0

hdを回転させるのは、コントローラーがディスクをスキャンするためのカーネルモジュールであることを確認してください。さて、私が少し間違っていて、それが本当にハードドライブのモジュールである場合、起動プロセス中にそのモジュールのロードをブロックできます。ブラックリストをチェックしてください/etc/modprobe.d/


簡単そうですね。blacklist.confに「sd」という行を追加する必要がありますか?私が想定しているSSDもモジュールsdで起動されますか?
オリバー

えっと、明らかにsdモジュールをブラックリストに載せることは望ましくありません。あなたのハードドライブがそのモデルに固有のモジュールを必要とした場合にのみ、それが望みます。しかし、「HDDがスピンアップする原因は何ですか?」という質問に答えます。
djeikyb

1

私はあなたが言うことを意味するものと考えhdparm -sていない、-B1非アクティブの短い期間の後に自動的にスタンバイにAPM互換性のあるハードディスク(かなりの手段だけでラップトップのもの)を尋ねています。また、Western Digitalのディスクは-sスタンバイで電源を入れるコマンドを受け付けないようですが、背面にジャンパーがあり、それを有効にすることができます。

カーネルsd(scsiディスク)ドライバーは、ディスクが最初にアクセスされたときにディスクを起動します。これは、ブート中にパーティションテーブルをスキャンするために行われます。また、デフォルトでは、サスペンドからの復帰後、ドライブを再起動しますが、書き込むことによってそれを無効にすることができます0/sys/block/sda/device/scsi_disk/*/manage_start_stop

私は通常これを行いhdparm -y、再起動後に使用する予定のないドライブを手動で一時停止します。

私の最後のマザーボードBIOSは、スタンバイで電源が入ったドライブを単に検出しませんでしたが、私の新しいAsus砂浜ブリッジは、ドライブがスタンバイであることに気づき、それを起動するのに十分に「スマート」です。


いいえ、私は-B1を意味しました。-sオプションは、説明したようにアイドル時のスピンダウン時間のみを設定します。たとえば、-B255はドライブを「一定の実行」に設定してスピンダウン、スピンアップなどを防ぎ、一部のラップトップでHDDの寿命を延ばすことができます(-sタイマーを設定しても、これは無視されます)。/ sys / block / sdb /に0を書き込むと、STR / S3からの再開に関する魅力のように機能します。ありがとうございます。スピンアップしたドライブは再びスピンアップし、スピンダウンしたドライブは再開時にスピンダウンしたままになります。パーフェクト!:)
オリバー

くそー...再起動後/ sys / block / sdb / ...は再び「1」を表示します。したがって、STR / S3から再開しても、いずれにしてもHDDはスピンアップします。
オリバー

@Oliver:いいえ-Sではなく-Sです。
psusi 2011

おっとっと!すみません、あなたは正しいです。-Sを使用してスピンダウン時間を設定しました。--yes-i-know-what-i-am-doingフラグを含めて-s ...を使用したことを覚えています。しかし、それは-B1を使用した後です。-sオプションは私のシステムにそれ以上の影響を与えていないようです。
オリバー

0

dmesgで始まるsdb(1)のログを検索します。

dmesg | grep /dev/sdb

すでにdmesgを見ましたが、行を解釈する方法がわかりません(上記を参照)。何か案は?ありがとう。
オリバー

いいえ、申し訳ありません、アイデアはありません。しかし、私はhddビジネスではないので、多分他の誰か...
ユーザー不明

@Oliver多分にラインを投稿paste.ubuntu.comし、助けることができるリンクを与えます。
nanofarad 2012

@ObsessiveFOSS:彼はそれらの行を彼の投稿に挿入したと思います。
ユーザー不明の

0

Linuxは起動時にすべてのハードドライブのパーティションをチェックするため、接続されているすべてのハードドライブのパーティションテーブルを読み取ります。これだけでスピンアップが発生しますが、別の原因が考えられます。

詳細な分析のために、ureadaheadのバックエンドツールであるAFAIKは、起動中に読み取られるデバイスブロックのリストを作成します。スピンアップの原因を特定するための最初のステップとして、そのログを使用して、読み込まれたハードディスクブロックを特定できます。

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