web-dev-qa-db-ja.com

ドライブを強制的にスピンアップさせるコマンドはどれですか?

hdparmsdparmのマニュアルを調べました。ドライブを-y-Yでスピンダウンする引数があることを知っています。また、-S-Bなどの省電力機能を制御するための引数があることも知っています。しかし、私が欲しいのは、モーターを始動し、ドライブをスピンupすることです。

sdparm

sdparm's man page にはloadおよびstartパラメータがあります。これらのいずれかを使用できますか?それはテープドライブ、または獣の光学ドライブに適したもののように見えますか?

dd

dd if=/dev/hdX of=/dev/null count=512は、 「スタンバイで電源を入れる」ドライブを起動するためにどのコマンドを使用しますか? によると、最良の答えのようです。ただし、これがすでにキャッシュにある場合、ドライブはスピンアップ。

モーター/スピンアップを開始するようにデバイスに明示的に指示するコマンドがないのは奇妙に思われます。

GNU/LinuxでSATAHDDを起動する最良の方法は何ですか?

ブロックデバイスではなく、rawディスクデバイスから読み取ります。これにより、カーネルバッファキャッシュがバイパスされ、ドライブが確実に起動するようになります。

5
Kyle Jones

ddのdirectフラグは、(ホスト)キャッシュをバイパスし、I/Oをドライブに強制的に送信する必要があります。

dd if=/dev/sda bs=4096 count=1 of=/dev/null iflag=direct
                                            ^^^^^^^^^^^^

私のマシンでテストすると、これは間違いなくディスクアクティビティライトを点滅させます。 iflagがなければ、(少なくとも2回目は)点滅しません。

3
derobert

1)まず、簡単にできる場合は、カイル・ジョーンズの言うことを実行することをお勧めします。生のデバイスから直接読み取ります。

2)それができない場合は、ドライブのランダムに選択された位置から読み取ります(例:dd if=/dev/diskdev of=/dev/null seek=$[173<<30] bs=1048576 count=1024は、ディスクの173.ギガからギガを読み込みます)。これはおそらく、実際の読み取りデータが実際の読み取りキャッシュにないため、読み取り操作を満たすためにドライブをスピンアップする必要があります。

確実にしたい場合は、ランダムに選択されたデータを複数回読み取ることができます。

3)別の方法として、同じddコマンドで固定位置(たとえば、ディスクの先頭から)から読み取ることができますが、常に少なくとも多く、RAM youこれにより、読み取るべきディスク領域が存在することが保証されます。これは確かに実際のディスク読み取りキャッシュには存在しないため、ディスクを読み取って読み取る必要があります。


あなたの代わりに(1が利用できない場合)私は(3)非常に正確さが必要な場合、および(2)自宅のLinuxでのみプレイした場合に実行しました。