ddrescueで現在のコピー位置を変更したり、領域をスキップする方法

ddrescueで現在のコピー位置を変更したり、領域をスキップする方法

私は現在ddrescueを使用して故障した3TB WD Redドライブからデータを回復しようとしています。

2週間後に約1TBを得ましたが、読み取り速度は毎秒数キロバイトに増加し、完了するまでに数年かかります。ドライブの電源を入れ直すと、読み取り速度が数秒間毎秒数百/キロバイトに増加し、再び超低速に低下することがわかりました。

ディスクヘッドに付いているプラ​​ッタに若干のほこりがあるようです。ヘッドが駐車位置までスライドすると取り外されます。
ddrecsueは現在、次のように実行されます。

ddrescue -f -n -b 4096 /dev/sda /dev/sdb /media/usbstick/rescue.log

今、この領域をスキップして他の場所(1500 GBなど)に進みたいのですが、方法がわかりません。パラメータがありますが、--input-position=bytesマニュアルには次のように記載されています。

infile内の回復フィールドの開始位置(バイト単位)。デフォルト値は 0 です。これはddrescueがコピーを開始するポイントではありません。

また、--skip-size=[initial][,max]不良セクタの後にサイズをスキップするようですが、これは私が望むものではありません。

これを達成する方法についてのアイデアはありますか?

ベストアンサー1

全文書ddrescue(参考資料を参照info ddrescue)では、次の例を扱っています。

例 3: ドライブ全体 /dev/sda を /dev/sdb にリカバリする場合、/dev/sda は 12345678 位置に固定されます。

ddrescue -f /dev/sda /dev/sdb mapfile       <-- /dev/sda freezes here
  (restart /dev/sda or reboot computer)
  (restart copy at a safe distance from the troubled sector)
ddrescue -f -i 12350000 /dev/sda /dev/sdb mapfile
  (then copy backwards down to the troubled sector)
ddrescue -f -R /dev/sda /dev/sdb mapfile

したがって、そのオプションは-i領域をスキップするのに役立ちます。警告する

これはddrescueがコピーを開始するポイントではありません。

その他のオプションに関しては、マニュアルには次の事項も記載されています。

-i bytes
--input-position=bytes
    Starting position of the rescue domain in infile, in bytes. Defaults to 0. This is not the point from which ddrescue starts copying. (For example, if you pass the option '--reverse' to ddrescue, it starts copying from the end of the rescue domain). In fill mode it refers to a position in the infile of the original rescue run. See the chapter Fill mode (see Fill mode) for details.

したがって、使用しないか-R使用しない限り、特定のバイト範囲をスキップするオフセット-Fとして使用できます。-i

おすすめ記事