RECOVERDISK(1) | FreeBSD General Commands Manual | RECOVERDISK(1) |
名称
recoverdisk — ハードディスクまたは光メディアからデータを回復する書式
recoverdisk | [ -b bigsize][ -r readlist][ -s interval][ -w writelist] source [ destination] |
解説
recoverdisk ユーティリティは、すべてのブロックの読み込みが成功して読み込まれるまで、 source ファイルからデータを読み込みます。 destination が指定されたなら、すべてのデータは、そのファイルに書き込まれています。セクタサイズの倍数で読み始めます。ブロックが失敗するときは、いつでも、たぶん読み込みサイズが小さいためで、作業キューの終わりにプットし、再び読み込みます。デフォルトで、およそ 1MB、32kB とネイティブのセクタサイズ (通常 512 バイト) のブロックサイズを使用します。これらの数字は、セクタサイズが 2 の冪乗でないデバイスのために、例えば、2352 バイトのセクタサイズがあるオーディオ CD、わずかに調整されます。
オプションは、次の通りです:
- -b bigsize
- 最初に試みられた読み込みのサイズ。中間 (middle) のパスは、およそ bigsize とセクタサイズの対数平均です。
- -r readlist
- 指定されたファイルから読み込むためのブロックとブロックサイズのリストを読み込みます。
- -s interval
- いろいろなことがうまく行っている間に、どれくらいの頻度で writelist ファイルを更新するべきか。デフォルトは、60 であり、単位は、"progress messages" (進捗メッセージ) であるので、いろいろなことがうまく行っているなら、これは、1 分ごとに一度と同じです。
- -w writelist
- recoverdisk が SIGINT を通してアボートされるなら、指定されたファイルを読み込むために、残っているブロックのリストを書き込みます。
-r と -w オプションを同時に指定することができます。特に、それらは、アボートのときに更新されるのと同じファイルを示すことができます。
出力
recoverdisk ユーティリティは、進捗を詳しく示す、いくつかのカラムを印刷 (表示) します。- start
- 現在のブロックの開始オフセット。
- size
- 現在のブロックの読み込みサイズ。
- len
- 現在のブロックの長さ。
- state
- あらゆる失敗した読み込みで増加されます。
- done
- 既に読み込んだバイト数。
- remaining
- 残りバイト数。
- % done
- 完了したパーセント。
使用例
# 失敗しているハードドライブ ad3 からデータを復旧する recoverdisk /dev/ada3 /data/disk.img # クローンのハードディスク recoverdisk /dev/ada3 /dev/ada4 # CD-ROM から ISO イメージを読み込む recoverdisk /dev/cd0 /data/cd.iso # 壊れている CD から読み込みを継続し、既存の worklist を更新する recoverdisk -r worklist -w worklist /dev/cd0 /data/cd.iso # 読み込み不可能なメディアから単一のファイルを復旧する recoverdisk /cdrom/file.avi file.avi # ディスクが読み込みエラーでシステムをハングアップするなら、次を試みます: recoverdisk -b 0 /dev/ada3 /somewhere
歴史
recoverdisk ユーティリティは、 FreeBSD 7.0 ではじめて登場しました。作者
オリジナルの実装は、 <uqs@FreeBSD.org>による小さな改良とともに <phk@FreeBSD.org>によって行われました。このマニュアルページは、
によって書かれました。バグ
2 の冪乗でないセクタサイズのメディアからの読み込みは、 1MB の読み込みをすべて失敗させます。これは、多くても 128kB のブロックに分割される DMA 読み込みのためです。セクタサイズが 128kB の除数でないなら、これらの読み込みは、失敗します。完全に生のオーディオ CD を読み込むとき、おおよそ 700 の飛び交うエラーメッセージを導きます。これは、無害であり、わずか 128kB に -b を設定することによって、避けることができます。recoverdisk は、読み込みエラーのことをできるだけ速く知る必要があります、すなわち、下層による再試行は、通常操作を遅くします。アタッチされた cam(4) のドライブを使用するとき、kern.cam.XX.retry_count を 0 に設定したいなら、例えば:
# sysctl kern.cam.ada.retry_count=0 # sysctl kern.cam.cd.retry_count=0 # sysctl kern.cam.da.retry_count=0
October 1, 2013 | FreeBSD |