Top>Linux>コマンド>hdparm

コマンド
hdparm

説明
ハードディスクのパラメータの取得と設定を行う。
ハードディスクのパラメータの設定については、誤ったフラグを設定してしまうとシステムにリカバリーできない 深刻なダメージを与える可能性があるので細心の注意が必要である。
最近のシステムではマザーボードのBIOSにて適切に転送モードなどが設定されるのでOS側からこのような設定を行う必要があることはほとんどないと思われる。 したがって設定系のフラグは利用しないことが望ましい。もしそれらの設定を行う場合は極力BIOS側で行うべきだろう。
各フラグについてはドライバー側でサポートしていないものもあるようで筆者が実行した際は、ioctlエラーが出る場合も多数あった。

書式
hdparm [フラグ] <デバイス>

フラグ
なし フラグとして-acdgkmnru が指定されたとみなされる。

(例) hdparm /dev/sda
ハードディスクのパラメータ情報を表示する。

-a ファイルシステムの先読みセクタ数を取得・設定する。 実行中のタスクから必要となる追加ブロックを予想し、プリフェッチすることで読み出し性能を改善するのみ用いられる。 多くのハードディスクでは先読み機能が実装されており、多くの場合ファイルシステムの先読みの代わりとなる。

(例) hdparm -a /dev/sda
ハードディスク /dev/sda の先読みセクタ数を取得表示する。

-A IDEドライブの先読み機能を無効・有効に設定する。(普通はONがデフォ ルト)。

(例) hdparm -A /dev/sda
ハードディスクの先読みが有効か無効か表示する。

(例) hdparm -A 1 /dev/sda
ハードディスクの先読みを有効にする。

(例) hdparm -A 0 /dev/sda
ハードディスクの先読みを有効にする。

-b バスの状態の取得と設定を行う。
※筆者の環境では動作しなかったため詳細は不明。

-B APM(advanced Power Management) 機能のレベル値を取得・設定を行う。
小さい値はより積極的な電源管理を意味し、大きい値はパフォーマンス優先を意味する。
255を設定するとAPMが無効となる。
※各レベル値の意味するところは資料の未取得により不明。

(例) hdparm -B /dev/sda
ハードディスク /dev/sda のAPMの設定レベル値を取得表示する。

(例) hdparm -B 128 /dev/sda
ハードディスク /dev/sda のAPMの設定レベル値を設定する。

-c IDEの32ビットI/Oサポートを取得・設定する。 32 ビット I/Oサポートを有効・無効にするには、以下の数値が用いられる。
0:32ビットI/Oサポートを無効にする。
1:32ビットデータ転送を有効にする。
3:特別なsyncシーケンスを使った32ビットデータ転送を有効にする。

(例) hdparm -c /dev/sda
ハードディスク/dev/sdaの32ビットI/Oサポート状況を表示する。

※最近のハードディスクやマザーボードは32ビットデータ転送にほとんど対応しており、自動で設定されると思われる。 したがって使用する機会は古いデバイスを利用する場合に限られる。

-C IDEの電源モードを取得・設定する。取得される電源モードは下記のとおり。
unknown:ドライブはこのコマンドをサポートしていない。
active/idle:通常の動作
standby:低電力モード。ドライブはスピンダウンしている。
sleeping:最小電力モード。ドライブは完全に停止している。
電源モードを設定するには -S, -y, -Y, -Z が使用される。

(例) hdparm -C /dev/sda
ハードディスク/dev/sdaの電源モードを表示する。

-d DMA転送モードの利用の有無を設定する。
どの転送モードを利用するかは-Xで指定する。なおこれらの設定は通常BIOSにて自動で設定される。

-D ドライブ上の不良セクタ管理機能を有効/無効にする。
有効にすると、ドライブのファームウェアは、不良セクタを工場設定された予約"スペア"領域に自動的に再配置しようと試みる。
※通常はデフォルトで有効になっているのがほとんどだろう。わざわざ無効に設定する必要なないと思われるのでこのフラグは使用しない方が望ましいように思われる。

-E CDROMのスピードを設定する。ドライブはそれ自身で自動的に速度を変更するものなので、通常の操作では必要ない。 しかし、それで遊びたいなら、2 や 4 といったような数字をフラグの後に指定すること。

-f 終了時にデバイスのバッファキャッシュを同期、消去する。 この操作は、-t および -T のタイミングでも実行される。

-g ドライブのジオメトリ(シリンダ数、ヘッダ数、セクタ数)、 デバイスのサイズ(セクタ数)、デバイスのドライブ先頭からの開始オフセット(セクタ数)を表示する。

(例) hdparm -g /dev/sda
ハードディスク/dev/sdaのジオメトリ、サイズ、開始オフセットを表示する。

-h 簡単な使用方法(ヘルプ)を表示する。

-i 起動時に取得したハードディスクの識別情報を表示する。起動後に設定値が変更される場合には値が現在値と異なる場合がありうる。
ただし複数セクタモードカウントは、いつでも現在値が表示される。

-I 直接ドライブに識別情報を要求する。結果は古い -i フラグと比べるとかなり詳細で、新しい拡張されたフォーマットで表示される。

(例) hdparm -I /dev/sda
ハードディスク/dev/sdaの詳細情報を表示する。

-k ドライブの keep_settings_over_reset フラグを取得・設定する。このフラグがセットされた場合、ドライブは (エラー回復手順の間に実行される)ソフトリセット後も -dmu フラグを保持しようとする。このフラグは デフォルトではオフになっている。

-K ドライブの keep_settings_over_reset フラグを取得・設定する。このフラグがセットされた場合、ドライブは (エラー回復手順の間に実行される)ソフトリセット後も -APSWXZ フラグを保持しようとする。

-m ドライブの複数セクタ I/O のセクタ数を取得・設定する。 0 に設定するとこの機能を無効にする。 複数セクタモード (これはIDEブロ ック モードとしても知られる)は現在のほとんどのIDEハードドライブが 持つ機能で、一つのI/O割り込みで一つのセクタではなく、複数のセクタの転送を可能にする。
この機能を有効にすると、多くのオペレーティングシステムのオーバーヘッドを低減できる。
※いくつかのシステムについては、値を大きくしてもパフォーマンスが低下することがあるようである。

※筆者が確認した環境(Kernel 2.6.29)では次のようなメッセ時が出力された。(翻訳したもの)
-----------------------------------------------------------------------------------------
-m フラグはとても危険です。少なくともKernel2.6.29については、-mフラグは古いIDEドライブのみについて有効です。
もしこのフラグを設定した場合、ATAドライブがハングアップするかもしれません。本当にこのフラグを設定したい場合は、
--yes-i-Know-what-i-am-doing フラグを追加してください。
-----------------------------------------------------------------------------------------
設定後にどのような挙動をするか予測できない場合は安易に使用すべきではないように思われる。 使用については検証環境で事前に確認した上で使用すべきだろう。

(例) hdparm -m /dev/sda
ドライブの複数セクタ I/O のセクタ数を取得する。

(例) hdparm -m 16 /dev/sda
ドライブの複数セクタ I/O のセクタ数を設定する。
※設定可能なセクタ数は -i フラグのMaxMultSect、もしくは-Iフラグの R/W multiple sector transfer で確認可能である。

-M 自動音響管理(Automatic Acoustic Management; AAM)を取得・設定する。現在のほとんどのハードディスクドライブは動作音を低減させるために ヘッド動作をスピードダウンさせる能力を持つ。指定可能な値 は 0から 254 である。128 が最も静かで(よって最も遅く)、 254 が最も速い(そして最もうるさい)。このフラグはあまりよくテストされていないようなので、128, 254以外の値を設定する場合は注意が 必要だろう。

-p 指定した PIO モードに IDE チップセットインタフェースを再プログラムするよう試みる。 実行の失敗はファイルシステムに深刻な不正を招く場合がある。
※現在のシステムにおいてはBIOSにて適切のPIOモードが設定される場合がほとんどだと思われるので、このフラグを使用場面はほぼないだろう。

-r デバイスのリードオンリーフラグを設定・取得する。フラグをセットすると、Linux はデバイスへの書き込み操作を許可しない。

(例) hdparm -r /dev/sda
/dev/sdaへの書き込みを禁止フラグを表示する。

(例) hdparm -r 1 /dev/sda
/dev/sdaへの書き込みを禁止する。

(例) hdparm -r 0 /dev/sda /dev/sdaへの書き込みを許可する。

-S ドライブのスタンバイ(スピンダウン)タイムアウトを設定する。電力を節約するためにスピンドルモーターを停止するまでに、 どれだけ長く(デ ィスク動作のない状態を)待つかをドライブが決定するのにこの値が使用される。
①値0は "タイムアウトは無効" を意味し、スタンバイモードに自動的には移行しない。
②値1から240の場合は、5 秒の倍数の指定になり、タイムアウトは5秒から20分になる。
③値241から251は、30分単位の1から11の指定になり、タイムアウトは30分から5.5時間になる。
④値252は21分を意味する。
⑤値253はベンダ定義のタイムアウトで、8分から12時間の間のいずれかである。
⑥値254は予約されている。
※いくつかの古いドライブでは異なる解釈となっている場合があるので注意が必要とのこと。

-T ディスクアクセスなしにLinuxのバッファキャッシュから直接読み出す速度を表示する。
これは、プロセッサ・キャッシュ・メモリの基本的な処理能力を測定するものである。
空きメモリがあり、低負荷の状況で、2,3回繰り返すべきである。
-tフラグが同時に指定された場合は、-t操作の結果に-Tの出力を元にした補正係数が加味される。

-t データのキャッシュがない状態から、バッファキャッシュを通してディスクを読み出す速度を表示する。
これは、ファイルシステムのオーバーヘッドなしに、そのドライブがLinuxでどれだけ連続データ読み込み速度を維持できるかを測定するものである。
空きメモリがあり、低負荷の状況で、2,3回繰り返すべきである。
-tフラグが同時に指定された場合は、-t操作の結果に-Tの出力を元にした補正係数が加味される。

-v デバイスの情報を表示する。フラグを指定しない場合のデフォルトの動作。

-y 指定ドライブをすぐに強制的に低消費電力スタンバイモードにする。通常、これはスピンダウンさせる。
現在の電力モード状態は-Cフラグで確認できる。

-Y 指定ドライブをすぐに強制的に低消費電スリープモードにする。通常、これは完全に停止させる。
ドライブに再びアクセスできるようにするには、ハードリセットまたはソフトリセットが必要である。LinuxのIDEドライバーが必要に応じて自動的にリセット処理を行う。
現在の電力モード状態は-Cフラグで確認できる。

その他多数
使用方法1 - ハードディスクの情報(簡易)を表示する。
hdparm <デバイス>

(例) hdparm /dev/sda
ハードディスク /dev/sda の情報を表示する。

使用方法2 - ハードディスクの情報(詳細)を表示する。
hdparm -I <デバイス>

(例) hdparm -I /dev/sda
ハードディスク /dev/sda の詳細情報を表示する。

使用方法3 - キャッシュとディスクの読込性能を測定する。
hdparm -Tt <デバイス>

(例) hdparm -Tt /dev/sda
キャッシュとハードディスク /dev/sda 読込性能を測定する。

最終更新日:2013/10/22

- Published By MINDKERNEL.COM -