Provided by: manpages-ja_0.5.0.0.20221215+dfsg-1_all
名前
hdparm - ハードディスクのパラメータを設定・取得する
書式
hdparm [ flags ] [device] ..
説明
[訳注: 原文はオプションが増えるたびにその部分だけ加筆されているらしく、 「現代の」という語 の起点となる『現在』が古かったり新しかったりするが、 基本的にはすべてやや古い話であ る。hdparm による操作は多大な影響を及ぼ すので、他の情報源も参照して慎重に利用するこ と(2005年3月)] hdparm は標準的な Linux の ATA/IDE デバイスドライバでサポートされる 色々なハードディスクの ioctl への、コマンドラインインタフェースを提供する。 いくつかのオプションは、最新のカーネ ルでしか正しく動作しない。 最良の結果を得たいなら、最新のカーネルソースのインクルードファ イルを使って hdparm をコンパイルすること。
オプション
何のフラグも指定されていない場合には -acdgkmnru が指定されたとみなす。 -a ファイルシステムの先読みセクタ数を取得・設定する。 実行中のタスクから必要となる追加 のブロックを予想、プリフェッチすることで、 大きなファイルのシーケンシャル読み出しの 性能を改善するのに用いられる。 現在のカーネルバージョン(2.0.10)では、デフォルトは 8 セクタ(4KB)である。 このデフォルト値は多くの場合は問題ないが、多くのファイルがラン ダムアクセス であるようなシステムでは、もっと小さな設定の方が良い性能を出すだろう。 また多くの IDE ドライブでは先読み機構を内蔵しており、 これは多くの場合、ファイルシ ステムでの先読みの代わりとなる。 -A IDE ドライブの先読み機能を無効・有効にする(普通は ON がデフォルト)。 使い方: -A0 (無効にする)または -A1 (有効にする)。 -b バスの状態を取得・設定する。 -B ドライバがサポートしていれば、APM(advanced Power Management) 機能を設定する。 低い 値は積極的な電源管理を意味し、高い値はパフォーマンス優先を意味する。 255 という値 は、そのドライブでの APM を無効にする。 -c (E)IDE の 32 ビット I/O サポートを取得・設定する。 32 ビット I/O サポートを有効・無 効にするには、以下の数値が用いられる。 0 32 ビット I/O サポートを無効にする 1 32 ビットデータ転送を有効にする 3 多くのチップセットで必要とされる、特別な sync シーケンスを使った 32 ビットデータ 転送を有効にする ほぼ全ての 32 ビット IDE チップセットで 3 は有効であるが、ほんの少しだけオーバー ヘッドがある。 "32 ビット" とは、PCI または VLB バスとインタフェースカードとの間の データ転送についてである。 すべての (E)IDE ドライブは、いまだにインタフェースからリ ボンケーブルを通る 16 ビット接続しか持たない。 -C 現在の IDE 電源モード状況を調べる。 これは必ず、 unkown (ドライブはこのコマンドをサ ポートしない)、 active/idel (通常の動作)、 standby (低電力モード、ドライブはスピン ダウンしている)、 sleeping (最小電力モード、ドライブは完全に停止している) のうちの いずれかである。 フラグ -S, -y, -Y, -Z は IDE 電源モードを操作するのに用いられる。 -d ドライブの "using_dma" フラグを無効/有効にする。 現在このオプションは、ドライブと DMA をサポートした (カーネルの IDE ドライバが認識する)PCI インタフェース とのほとん どの組み合わせで動作する。 正しい DMA モードがドライブ自身にプログラムされることを 確実にするために、 -d1 オプションと共に適切な -X オプションを使用するのはよい考えで ある。 ただし、これは多くの BIOS が起動時に実行してくれることである。 DMA の使用 は、ほとんどいつでも、高速な I/O スループットと 低い CPU 使用率によって、最高のパ フォーマンスを提供してくれる。 しかし、少なくともいくつかのチップセットとドライブの 設定では、 DMA が大きな違いを見せず、(本当に間違ったハードウェア上では) 遅くなるこ ともある。 効果は様々である。 -D ドライブ上の不良セクタ管理機能を有効/無効にする。 有効にすると、ドライブのファーム ウェアは、不良セクタを 工場設定された予約"スペア"領域に自動的に再配置しようと試み る。 -E CDROM のスピードを設定する。 ドライブはそれ自身で自動的に速度を変更するものなので、 通常の操作では必要ない。 しかし、それで遊びたいなら、2 や 4 といったような数字を オ プションの後に指定すること。 -f 終了時に、デバイスのバッファキャッシュを同期、消去する。 この操作は、 -t および -T のタイミングでも実行される。 -g ドライブのジオメトリ(シリンダ数、ヘッダ数、セクタ数)、 デバイスのサイズ(セクタ 数)、デバイスのドライブ先頭からの 開始オフセット(セクタ数)を表示する。 -h 簡単な使用方法(ヘルプ)を表示する。 -i 起動時に 取得した識別情報を表示する。 この機能は、現在の IDE のものであり、古いデバ イスではサポート されていないかもしれない。 返されるデータは現在のものかもしれない し、そうでないかもしれない。 どちらになるかは、システム起動後の行動による。 ただし 複数セクタモードカウントは、いつでも現在のものが表示される。 識別情報の説明について の詳細は、 AT Attachment Interface for Disk Drives (ANSI ASC X3T9.2 working draft, revision 4a, April 19/93) を参照のこと。 -I 直接ドライブに識別情報を要求する。 結果は、古い -i フラグと比べるとかなり詳細で、新 しい拡張されたフォーマットで表示される。 -Istdin これは -I オプションの特別な "シートベルトなし" の変形で、 /dev/hd* パラメータを使 う代わりに、標準入力から ドライブ識別ブロックを受け付ける。 このブロックのフォー マットは、 /proc/ide/*/hd*/identify "ファイル" から得られるものか、 次に示す -Istdout オプションが生成するものと 正確に 同じものでなければならない。 この変形版 は、ドライブ識別情報の "ライブラリ" 集合と共に 使用するよう設計されており、また標準 メカニズムでは メディアエラーになってしまう ATAPI ドライブに使用することもできる。 -Istdout 単純に、識別データを標準出力に 16進でダンプする。 フォーマットは /proc/ から得られ るものに似ており、 後で -Istdin オプションを使うのに適している。 -k ドライブの keep_settings_over_reset フラグを取得・設定する。 このフラグがセットされ た場合、ドライブは (エラー回復手順の間に実行される)ソフトリセット後も -dmu オプショ ンを保持しようとする。 このフラグはデフォルトではオフになっている。 なぜなら、-dmu の組み合わせが原因で発生する、 ドライブのリセットループを避けるためである。 した がって、選んだ設定の組み合わせでシステムが 正しく動作するという確信を持てる場合にの み -k フラグを設定すべきである。 実際には、(-k オプションを使う前に) 設定のテストと して 通常行っておくべきことは、ドライブに読み書きできるか、 その処理中に (カーネル の) エラーログが生成されていないかを 確認することくらいである。 -K ドライブの keep_settings_over_reset フラグを取得、設定する。 このフラグがセットされ た場合、ドライブは (エラー回復手順の間に実行される)ソフトリセット後も -APSWXZ オプ ションを保持しようとする。 すべてのドライブがこの機能をサポートするわけではない。 -L ドライブのドアロックフラグを設定する。 これを 1 にセットすると、ある種のリムーバブ ルなドライブ (例えば Syquest, ZIP Jazz など)でドア機構をロックし、 0 にセットすると ドア機構のロックを解除する。 普通、Linux はドライブの使用 (ファイルシステムがマウン トされている時にはいつもロックする) に応じてドアロック機構を自動的に維持しようとす る。 しかしルートパーティションがリムーバルディスク上にある場合には、 ルートパー ティションはシャットダウン後も(リードオンリーで) マウントされたままなので、この仕組 みはシャットダウン時には 迷惑なものになる。 よって、ルートファイルシステムがリード オンリーで再マウントされた 後に このコマンドを使ってドアロックを解除すれば、シャッ トダウン後に カートリッジをドライブから取り出すことができる。 -m ドライブの複数セクタ I/O のセクタ数を取得・設定する。 0 に設定すると、この機能を無 効にする。複数セクタモード (これは IDE ブロックモードとしても知られる)は現在のほと んどの IDEハードドライブが持つ機能で、一つの I/O 割り込みで一つのセクタではなく、 一つの I/O 割り込みで複数のセクタの転送を可能にする。 この機能を有効にすると、典型 的には、ディスク I/O に対する オペレーティングシステムのオーバーヘッドを 30% から 50% 減らす。 また、多くのシステムではデータのスループットを 5% から 50% 向上させ る。 しかしいくつかのドライブ(特に WD Caviar シリーズ)では、 複数セクタモードを有効 にすると遅くなるように見える。 効果は様々である。 多くのドライブでは、最低限の設定 である 2, 4, 8, 16(セクタ)をサポート する。ドライブによるが、さらに大きな設定も可能 かもしれない。 多くのシステムでは、16 または 32 が最適のようである。 多くの Western Digital のドライブでは、その小さなドライブバッファ(32kB)と 最適化されていないバッ ファアルゴリズムのせいで、 4 から 8 という小さな値が推奨されている。 ドライブの最大 値を見つけるのには、 -i フラグが使用できる(出力の MaxMultSect を参照のこと)。 ある ドライブでは、複数モードをサポートしていると主張するものの、 設定によってはデータを 失ってしまう。 まれな状況の下では、そのような失敗は 大量のファイルシステムの不正 を 生む結果となる。 -M 自動音響管理(Automatic Acoustic Management; AAM)を取得・設定する。 現在のほとんどの ハードディスクドライブは動作音を低減させるために ヘッド動作をスピードダウンさせる能 力を持つ。 指定可能な値は 0 から 254 である。 128 が最も静かで(よって最も遅く)、254 が最も速い(そして最もうるさい)。 あるドライブでは(静音・高速の) 2 つのレベルしか持 たないが、 他のものは 128 から 254 の間で異なるレベルを持つ。 この機能は実験的なも ので、あまりよくはテストされていない。 自己責任で使用すること。 -n ドライブの "ignore write errors" フラグを設定・取得する。 ドライバーのソースコード を把握することなしに、このフラグで遊ばないこと。 -p 指定した PIO モードに IDE チップセットインタフェースを再プログラムする よう試みる か、またはドライブがサポートする "最良の" PIO モードに 自動設定しようと試みる。 こ の機能は少数の "知られた" チップセットでのみカーネルで サポートされており、そのサ ポートもよくて不確実なものである。 ある IDE チップセットでは、一つのドライブに対し て PIO モードを 変更することができず、その場合は、このフラグは 両方の ドライブに設 定される。 多くの IDE チップセットがサポートするモードは、標準の 6 個(0 から 5)の PIO モードより多かったり少なかったりするので、実際に実装されている 正確な速度設定 は、チップセット・ドライバの性格によって様々である。 最大の注意を払って使用するこ と! この機能は不注意からは何も守ってくれず、また実行の失敗は 深刻なファイルシステ ムの不正 をもたらすであろう。 -P ドライブ内部のプリフェッチ機構の、最大セクタ数を設定する。 すべてのドライブがこの機 能をサポートするわけではない。 -q その次に来るフラグに対し、通常の出力を抑止する。 システム起動スクリプトから実行する ときに、画面が混乱するのを減らすのに 便利である。 -i, -v, -t, -T フラグには適用でき ない。 -Q タグ付きキューの深さを設定する(1以上)、 またはタグ付きキューを無効にする(0)。 これ は 2.5.xx(以降)のカーネルで動作し、またこれを現在サポートしている 少数のドライブで 動作する。 -r デバイスのリードオンリーフラグを設定・取得する。 フラグをセットすると、Linux はデバ イスへの書き込み操作を許可しない。 -R IDE インタフェースを登録する。 危険である。 さらなる情報につては -U オプションを参 照のこと。 -S ドライブのスタンバイ(スピンダウン)タイムアウトを設定する。 電力を節約するためにスピ ンドルモーターを停止するまでに、 どれだけ長く(ディスク動作のない状態を)待つかを ド ライブが決定するのにこの値が使用される。 そのような状況下では、次のディスクアクセス には 30 秒以内に反応するはずだ。 ほとんどのドライブはもっと速く反応する。 タイムア ウト値の符号化はちょっと変わっている。 ・ 値 0 は "タイムアウトは無効" を意味し、スタンバイモードに自動的には 移行しない。 ・ 値が 1 から 240 の場合は、5 秒の倍数の指定になり、 タイムアウトは 5 秒から 20 分 になる。 ・ 値 241 から 251 は、30 分単位の 1 から 11 の指定になり、 タイムアウトは 30 分か ら 5.5 時間になる。 ・ 値 252 は 21 分を意味する。 ・ 値 253 はベンダ定義のタイムアウトで、8 分から 12 時間の間のいずれかである。 ・ 値 254 は予約されている。 ・ 値 255 は、21 分 15 秒を意味する。 いくつかの古いドライブでは、これらの値に対して全く異なる解釈をするので 注意して欲し い。 -T ベンチマーク及び比較目的で、キャッシュ読み込みを測定する。 有意な結果を得るために は、少なくとも数メガバイトの空きメモリがあり、 他にアクティブなプロセスがない状態 で、この操作を 2, 3 回 繰り返すべきである。 これは、ディスクアクセスなしに、Linux のバッファキャッシュから直接 読み出す速度を表示する。 これは、テスト環境下でのプロ セッサ・キャッシュ・メモリの 基本的な処理能力を測定するものである。 -t フラグが同時 に指定された場合には、 -T の出力を元にした補正係数が -t 操作の結果に加味される。 -t ベンチマーク及び比較目的で、デバイス読み込みを測定する。 有意な結果を得るために は、少なくとも数メガバイトの空きメモリがあり、 他にアクティブなプロセスがない状態 で、この操作を 2, 3 回 繰り返すべきである。 これはデータのキャッシュがない状態か ら、バッファキャッシュを通して ディスクを読み出す速度を表示する。 これは、ファイル システムのオーバーヘッドなしに、そのドライブが Linux で どれだけ連続データ読み込み 速度を維持できるかを測定するものである。 測定の正確さを上げたいのであれば、 -t の実 行の間に BLKFLSBUF ioctl を使ってバッファキャッシュをクリアする。 -T フラグが同時に 指定された場合には、 -T の出力を元にした補正係数が -t 操作の結果に加味される。 -u ドライブの割り込み許可フラグを取得・設定する。 1 に設定すると、ディスク割り込み処理 中に他の割り込みのマスクを (ドライバーが)外すことを許可する。 これは Linux の反応を 大いに改善し、"serial port overrun" エラーを 出なくなるようにする。 あるドライブと コントローラーの組み合わせでは、この機能を有効にしたときに I/O 遅延の増加を許容せ ず、その結果 大量のファイルシステムの不正 を引き起こす。 よって、この機能は注意して 使用すること。 特に CMD-640B と RZ10000 (E)IDE インタフェースは(ハードウェアの欠陥 から)では、 このオプションを 2.0.13 カーネル以前のバージョンで使用した場合には 信頼 できない。 これらのインタフェースの(通常は BIOS/CMOS の設定にある) IDE プリフェッチ 機能を無効にすれば、それより前のカーネルでこの問題を安全に 避けることができる。 -U IDE インタフェースを登録から外す。 危険である。 -R オプションの対である。 ホットス ワップ用に作られたハードウェア(これは大変珍しい!) に使用することを意図している。 簡単にハングしたり、システムにダメージを与えたりするので、 知識と最大限の注意をもっ て使用すること。 ThinkPad 600E のウルトラベイでホットスワップするために、 ユーザー から寄贈されたスクリプトが hdparm のソース配布の 'contrib' ディレクトリに含まれてい る。 自己責任で使用すること。 -v -i を除くすべての設定を表示する(IDE では -acdgkmnru、SCSI では -gr、 XTで は -adgr に等しい)。 これはまた、フラグが何も指定されなかった場合のデフォルト動作である。 -w デバイスのリセットを実行する (危険である)。 このオプションを使用し*ない*こと。 混乱 したドライブを使用可能な状態へと戻すためにリブートが必要になる ような、あまりない有 り得ない状況のために、このオプションはある。 -W IDE ドライブの書き込みキャッシュ機能取得・設定する (初期状態は製造メーカー・モデル に依存するので、不確定である)。 -x ホットスワップのためのトライステートデバイス (危険である)。 -X 最近の (E)IDE/ATA ドライブの IDE 転送モードを設定する。 サポートされているインタ フェースチップセットにつながったドライブの DMA を有効にする -d1 と共に使用するの普 通である。その場合、 -X mdma2 はマルチワード DMA モード 2 転送を選択し、 -X sdma は シンプルモード 1 DMA 転送を選択する。 UltraDMA バースト転送をサポートしているシステ ムでは、 -X udma2 で UltraDMA mode2 転送を選択する(事前に、チップセットを UltraDMA のために準備する必要がある)。 それはさておき、 現在のほとんど全ての IDE ドライブ は、電源投入時にデフォルトで最も速い PIO 転送モードになるので、このフラグの必要性は めったにない。 これでもてあそぶことは、不要で危険なことである。 他の転送モードをサ ポートするドライブでは、 -X はそのドライブのみ、転送モードを変更する。 データの喪 失・不正を避けるために、転送モードの変更する前に IDE インタフェースを新しいモードへ とジャンプ、またはプログラム( -p フラグを見よ)すべきである。 最大限の注意をもってこ のオプションを使用すること! Linux で使用される PIO (Programmed Input/Output) 転送 モードでは、 この値は指定したい PIO モード番号に 8 加えたものである。 よって、値 09 は PIO モード 1、10 は PIO モード 2、 11 は PIO モード 3 を選択する。 設定値 00 は ドライブの "デフォルト" PIO モードに戻し、 01 は IORDY を無効にする。 マルチモード DMA では、指定したい DMA モード番号に 32 を足す。 UltraDMA では、指定したい UltraDMA モード番号に 64 を足す。 -y IDE ドライブをすぐに強制的に低消費電力 スタンバイ モードにする。通常、これはスピン ダウンさせる。 現在の電力モード状態は -C フラグで確認できる。 -Y IDE ドライブをすぐに強制的に最低消費電力 スリープ モードにする。通常、これは完全に 停止させる。 ドライブに再びアクセスできるようにするには、 ハードリセットまたはソフ トリセットが必要である (Linux の IDE ドライバーは、必要であれば自動的にリセット発行 を処理する)。 現在の電力モード状態は -C フラグで確認できる。 -z 指定したデバイス(複数可)のパーティションテーブルを、カーネルに 再読み込みさせる。 -Z ある種の Seagate ドライブ(ST3xxx モデル?)で、迷惑な時間で アイドル/スピンダウンして しまうのを避けるため、 自動パワーセーブ機能を無効にする。
バグ
まず既に示した通り、 -m setcount と -u 1 オプションは、注意して使用する必要があり、 リード オンリーのファイルシステムでするのが望ましい。 これらの機能はほとんどのドライブでちゃんと 動作するが、 いくつかのドライバーとコントローラーの組み合わせは、100% 互換ではない。 その 結果は、ファイルシステムの不正である。 実験する前に、すべてをバックアップしておくこと! 古いカーネルでは、必要な ioctl() がサポートされていないために、 いくつかのオプション(例え ば SCSI での -r)は動作しない。 このユーティリティは主に (E)IDE ハードディスクデバイスでの使用を 意図してはいるが、いくつ かのオプションは SCSI ハードディスクデバイス 及び XT インタフェース上の MFM/RLL ハードディ スクでも有効である。
著者
hdparm は Linux の (E)IDE ドライバの初期の開発者でありメンテナーである Mark Lord <mlord@pobox.com> によって書かれ、 ネット上の多くの「家族」から多くの提案を受け た。 Seagate の無能な自動パワーセーブに対するコードは Tomi Leppikangas(tomilepp@paju.oulu.fi) の好意によるものである。
関連項目
AT Attachment Interface for Disk Drives, ANSI ASC X3T9.2 working draft, revision 4a, April 19, 1993. AT Attachment Interface with Extensions (ATA-2), ANSI ASC X3T9.2 working draft, revision 2f, July 26, 1994. AT Attachment with Packet Interface - 5 (ATA/ATAPI-5), T13-1321D working draft, revision 3, February 29, 2000. AT Attachment with Packet Interface - 6 (ATA/ATAPI-6), T13-1410D working draft, revision 3b, February 26, 2002. Western Digital Enhanced IDE Implementation Guide, by Western Digital Corporation, revision 5.0, November 10, 1993. Enhanced Disk Drive Specification, by Phoenix Technologies Ltd., version 1.0, January 25, 1994.