スポンサーリンク

FDREAD(1) FreeBSD 一般コマンドマニュアル FDREAD(1)

名称

fdread − フロッピディスクの読み取り

書式

fdread [−qr] [−d device] [−f fillbyte] [−o file]

fdread [−d device] −I numsects [−t trackno]

解説

fdread ユーティリティはフロッピディスクを読みます。トラックサイズに基いて 効果的なリードのブロック化が行われ、バッドブロックとなるものに対してはエ ラー回復を有効化できます。

fdread ユーティリティはフロッピメディア全体を読み、対応する出力ファイルに その内容を書きます。 dd(1) のような他のツールとは違い、単一ブロック読み取 りより効果的なブロックサイズを fdread は自動的に使用します (通常は 1 度に 1 トラック分のデータ) が、入出力エラー発生時には単一フロッピセクタの読み 取りに変更し、正当なデータをなるべく多く取得しようとします。 fdread の動 作中は、フロッピエラーに関するカーネルエラー報告はオフにし、コンソールや syslog がカーネルエラーメッセージで溢れないようします。

fdread ユーティリティは次のオプションを受け付けます:

       −q

静寂モードをオンにします。デフォルトでは、デバイスのメディアパラ メータが標準エラー出力に書かれ、それまでに読まれたおよそのキロバ イト数が示され、出力中で回復されたデータの位置に関する情報を含む エラーの詳細が表示されます。静寂モードでは、これらのメッセージは 生成されません。

−r
回復モードを有効にします。デフォルトでは、 dd(1) のように、 fdread は最初の回復できない読み取りエラーで停止します。しかし回復 モードでは、次の 2 つのいずれかの回復動作が行われます:

エラーがデータフィールドの CRC エラーの場合、カーネルはそのエ ラーを無視し、ともかくデータは出力ファイルに転送されます。 出 力ファイル中に誤ったデータが含まれてしまうということです! そ れでもこれが、実施可能な最良の回復動作です。

他のエラーは本当に致命的であり (通常、FDC がセクタ ID フィー ルドを見付けられないというものです)、埋め草バイトのダミーブ ロックが出力ファイルに含まれます。

静寂モードでない限り、行われた動作とエラーの出力ファイルでの位置 が、表示されます。

−d device
入力フロッピデバイスを指定します。デフォルトは /dev/fd0 です。パ ラメータ device は、正しいフロッピディスクデバイスであることが必 要です。

−f fillbyte
回復モードにおいて、出力ファイル中のダミーブロックに使われる、埋 め草バイトの値。デフォルトは ‘0xf0’ (ニーモニック: ‘‘foo’’) で す。値の指定には、通常の C 言語表現の基数指定が使用可能です。

−o file
出力ファイルが file であると指定します。デフォルトでは、データは 標準出力へ書かれます。

−I numsects
numsects
個のセクタ ID フィールドを読み、それらの内容を標準出力へ 書きます。各セクタ ID フィールドは、シリンダ番号 (‘C’) 、ヘッド番 号 (‘H’) 、レコード番号 (セクタ番号は 1 から開始) (‘R’) 、 セクタ シフト値 (0 = 128 バイト、1 = 256 バイト、2 = 512 バイト、3 = 1024 バイト) に対し、記録値を含みます。 −I は、 −d device−t trackno を除き、他のすべてのオプションと排他です。

−t trackno
セクタ ID フィールドを読み取るトラック番号 (シリンダ番号 * ヘッド 数 + ヘッド番号) を指定します。 −I numsects オプションとの組み合 わせだけが許されています。

関連ファイル

       /dev/fd0

読み取り用のデフォルトデバイス。

診断

fdread ユーティリティは sysexits(3) に従って終了値を設定します。回復モー ドでは、処理中にエラーが発生すると、終了値に EX_IOERR を設定します (静寂 モードにおいても)。

静寂モードでない場合、エラーに出会うと、フロッピディスクコントローラ (FDC) の状態が表示され、これに続いて、PC 環境で発生しうるほとんどの一般的 なエラーに対してはこの数値を人が読める形式に変換したテキスト表現が表示さ れます。

FDC エラー状態には 3 個の FDC 状態レジスタ ‘ST0’, ‘ST1’, ‘ST2’ と、エラー 位置 (それぞれ物理的なシリンダ・ヘッダ・セクタ番号と、 ‘‘セクタシフト 値’’) が含まれます。状態レジスタの内容の詳細については、 NE767 や互換チッ プのマニュアルを参照してください。

その後、エラーが回復可能と思われるのかを判断するために、 FDC の状態が検査 されます。エラー回復が要求されている場合、出力ファイル中の不良ブロックの 位置が (16 進数の) 範囲で表示されます。また、転送エラーの合計を示すサマリ 行が、終了前に表示されます。

関連項目

dd(1), fdwrite(1), sysexits(3), fdc(4), fdcontrol(8)

歴史

fdread ユーティリティが書かれた主な理由は、不良メディアから少なくともいく らかのデータを回復することと、フロッピ操作に有用だが覚え難い多数のオプ ションを使って dd(1) を起動しなくても良いようにすることです。

このコマンドは FreeBSD 5.0 に登場しました。

作者

プログラムとマニュアルページを Jörg Wunsch が書きました。

バグ

同じ FDC 上の第 2 のフロッピドライブに同時にトラフィックがあると、エラー 回復が無意味になってしまいます。何故なら、読み取りエラー後に取得した FDC 状態が、本当にその誤りを含む転送のものであることを保証できないからです。 よって、 −r オプションの使用が信頼できるのは、そのコントローラのアクティ ブデバイスが device のみの場合だけです。

fdc(4) のフロッピエラー再試行機構を越えた試行は行われませんので、複数回試 行することで不良セクタをエラー無しで読めるかどうかは調べません。

フロッピメディア上で (もはや) 使用できないビットを fdread が推定すること はできません。

FreeBSD 10.0 May 14, 2001 FreeBSD 10.0

スポンサーリンク