9736c4ddb6
Submitted by: kano at na rim or jp
219 lines
6.4 KiB
Groff
219 lines
6.4 KiB
Groff
.\"
|
|
.\" Copyright (c) 2001 Joerg Wunsch
|
|
.\"
|
|
.\" All rights reserved.
|
|
.\"
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
.\" modification, are permitted provided that the following conditions
|
|
.\" are met:
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
.\"
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
|
|
.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
|
.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
|
.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
|
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
.\"
|
|
.\" %FreeBSD: src/usr.sbin/fdread/fdread.1,v 1.6 2004/07/02 23:12:41 ru Exp %
|
|
.\"
|
|
.\" $FreeBSD$
|
|
.Dd May 14, 2001
|
|
.Os
|
|
.Dt FDREAD 1
|
|
.Sh 名称
|
|
.Nm fdread
|
|
.Nd フロッピディスクの読み取り
|
|
.Sh 書式
|
|
.Nm
|
|
.Op Fl qr
|
|
.Op Fl d Ar device
|
|
.Op Fl f Ar fillbyte
|
|
.Op Fl o Ar file
|
|
.Nm
|
|
.Op Fl d Ar device
|
|
.Fl I Ar numsects
|
|
.Op Fl t Ar trackno
|
|
.Sh 解説
|
|
.Nm
|
|
ユーティリティはフロッピディスクを読みます。
|
|
トラックサイズに基いて効果的なリードのブロック化が行われ、
|
|
バッドブロックとなるものに対してはエラー回復を有効化できます。
|
|
.Pp
|
|
.Nm
|
|
ユーティリティはフロッピメディア全体を読み、
|
|
対応する出力ファイルにその内容を書きます。
|
|
.Xr dd 1
|
|
のような他のツールとは違い、
|
|
単一ブロック読み取りより効果的なブロックサイズを
|
|
.Nm
|
|
は自動的に使用します (通常は 1 度に 1 トラック分のデータ) が、
|
|
入出力エラー発生時には単一フロッピセクタの読み取りに変更し、
|
|
正当なデータをなるべく多く取得しようとします。
|
|
.Nm
|
|
の動作中は、フロッピエラーに関するカーネルエラー報告はオフにし、
|
|
コンソールや syslog がカーネルエラーメッセージで溢れないようします。
|
|
.Pp
|
|
.Nm
|
|
ユーティリティは次のオプションを受け付けます:
|
|
.Bl -tag -width indent
|
|
.It Fl q
|
|
静寂モードをオンにします。
|
|
デフォルトでは、デバイスのメディアパラメータが標準エラー出力に書かれ、
|
|
それまでに読まれたおよそのキロバイト数が示され、
|
|
出力中で回復されたデータの位置に関する情報を含むエラーの詳細が表示されます。
|
|
静寂モードでは、これらのメッセージは生成されません。
|
|
.It Fl r
|
|
回復モードを有効にします。
|
|
デフォルトでは、
|
|
.Xr dd 1
|
|
のように、
|
|
.Nm
|
|
は最初の回復できない読み取りエラーで停止します。
|
|
しかし回復モードでは、次の 2 つのいずれかの回復動作が行われます:
|
|
.Bl -bullet
|
|
.It
|
|
エラーがデータフィールドの CRC エラーの場合、
|
|
カーネルはそのエラーを無視し、ともかくデータは出力ファイルに転送されます。
|
|
.Bf -emphasis
|
|
出力ファイル中に誤ったデータが含まれてしまうということです!
|
|
.Ef
|
|
それでもこれが、実施可能な最良の回復動作です。
|
|
.It
|
|
他のエラーは本当に致命的であり (通常、FDC がセクタ ID フィールドを見付け
|
|
られないというものです)、埋め草バイトのダミーブロックが出力ファイルに
|
|
含まれます。
|
|
.El
|
|
.Pp
|
|
静寂モードでない限り、行われた動作とエラーの出力ファイルでの位置が、
|
|
表示されます。
|
|
.It Fl d Ar device
|
|
入力フロッピデバイスを指定します。
|
|
デフォルトは
|
|
.Pa /dev/fd0
|
|
です。
|
|
パラメータ
|
|
.Ar device
|
|
は、正しいフロッピディスクデバイスであることが必要です。
|
|
.It Fl f Ar fillbyte
|
|
回復モードにおいて、出力ファイル中のダミーブロックに使われる、
|
|
埋め草バイトの値。
|
|
デフォルトは
|
|
.Ql 0xf0
|
|
(ニーモニック:
|
|
.Dq foo )
|
|
です。
|
|
値の指定には、通常の C 言語表現の基数指定が使用可能です。
|
|
.It Fl o Ar file
|
|
出力ファイルが
|
|
.Ar file
|
|
であると指定します。
|
|
デフォルトでは、データは標準出力へ書かれます。
|
|
.It Fl I Ar numsects
|
|
.Ar numsects
|
|
個のセクタ ID フィールドを読み、それらの内容を標準出力へ書きます。
|
|
各セクタ ID フィールドは、
|
|
シリンダ番号
|
|
.Pq Ql C
|
|
、ヘッド番号
|
|
.Pq Ql H
|
|
、レコード番号 (セクタ番号は 1 から開始)
|
|
.Pq Ql R
|
|
、
|
|
.Em セクタシフト値
|
|
(0 = 128 バイト、1 = 256 バイト、2 = 512 バイト、3 = 1024 バイト)
|
|
に対し、記録値を含みます。
|
|
.Fl I
|
|
は、
|
|
.Fl d Ar device
|
|
と
|
|
.Fl t Ar trackno
|
|
を除き、他のすべてのオプションと排他です。
|
|
.It Fl t Ar trackno
|
|
セクタ ID フィールドを読み取るトラック番号
|
|
(シリンダ番号 * ヘッド数 + ヘッド番号) を指定します。
|
|
.Fl I Ar numsects
|
|
オプションとの組み合わせだけが許されています。
|
|
.El
|
|
.Sh 関連ファイル
|
|
.Bl -tag -width /dev/fd0
|
|
.It Pa /dev/fd0
|
|
読み取り用のデフォルトデバイス。
|
|
.El
|
|
.Sh 診断
|
|
.Nm
|
|
ユーティリティは
|
|
.Xr sysexits 3
|
|
に従って終了値を設定します。
|
|
回復モードでは、処理中にエラーが発生すると、終了値に
|
|
.Dv EX_IOERR
|
|
を設定します (静寂モードにおいても)。
|
|
.Pp
|
|
静寂モードでない場合、エラーに出会うと、フロッピディスクコントローラ (FDC)
|
|
の状態が表示され、これに続いて、PC 環境で発生しうるほとんどの一般的な
|
|
エラーに対してはこの数値を人が読める形式に変換したテキスト表現が
|
|
表示されます。
|
|
.Pp
|
|
FDC エラー状態には 3 個の FDC 状態レジスタ
|
|
.Ql ST0 ,
|
|
.Ql ST1 ,
|
|
.Ql ST2
|
|
と、エラー位置 (それぞれ物理的なシリンダ・ヘッダ・セクタ番号と、
|
|
.Dq セクタシフト値 )
|
|
が含まれます。
|
|
状態レジスタの内容の詳細については、
|
|
NE765 や互換チップのマニュアルを参照してください。
|
|
.Pp
|
|
その後、エラーが回復可能と思われるのかを判断するために、
|
|
FDC の状態が検査されます。
|
|
エラー回復が要求されている場合、出力ファイル中の不良ブロックの位置が
|
|
(16 進数の) 範囲で表示されます。
|
|
また、転送エラーの合計を示すサマリ行が、終了前に表示されます。
|
|
.Sh 関連項目
|
|
.Xr dd 1 ,
|
|
.Xr fdwrite 1 ,
|
|
.Xr sysexits 3 ,
|
|
.Xr fdc 4 ,
|
|
.Xr fdcontrol 8
|
|
.Sh 歴史
|
|
.Nm
|
|
ユーティリティが書かれた主な理由は、
|
|
不良メディアから少なくともいくらかのデータを回復することと、
|
|
フロッピ操作に有用だが覚え難い多数のオプションを使って
|
|
.Xr dd 1
|
|
を起動しなくても良いようにすることです。
|
|
.Pp
|
|
このコマンドは
|
|
.Fx 5.0
|
|
に登場しました。
|
|
.Sh 作者
|
|
プログラムとマニュアルページを
|
|
.An J\(:org Wunsch
|
|
が書きました。
|
|
.Sh バグ
|
|
同じ FDC 上の第 2 のフロッピドライブに同時にトラフィックがあると、
|
|
エラー回復が無意味になってしまいます。
|
|
何故なら、読み取りエラー後に取得した FDC 状態が、
|
|
本当にその誤りを含む転送のものであることを保証できないからです。
|
|
よって、
|
|
.Fl r
|
|
オプションの使用が信頼できるのは、
|
|
そのコントローラのアクティブデバイスが
|
|
.Ar device
|
|
のみの場合だけです。
|
|
.Pp
|
|
.Xr fdc 4
|
|
のフロッピエラー再試行機構を越えた試行は行われませんので、
|
|
複数回試行することで不良セクタをエラー無しで読めるかどうかは調べません。
|
|
.Pp
|
|
フロッピメディア上で (もはや) 使用できないビットを
|
|
.Nm
|
|
が推定することはできません。
|