Provided by: manpages-ja_0.5.0.0.20210215+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.