DDREASE は、ハード ドライブ、SSD、RAM ディスク、CD、DVD、USB ストレージ デバイスなどのファイル デバイスまたはブロック デバイスからデータを回復するためのツールです。あるブロック デバイスから別のブロック デバイスにデータをコピーし、破損したデータ ブロックを残して正常なデータ ブロックのみを移動します。 ddreasue は、回復操作中に干渉を必要としないため、完全に自動化された強力な回復ツールです。さらに、ddasue マップ ファイルのおかげでいつでも停止および再開できます。 DDREASE のその他の主な機能は次のとおりです。
- 回復されたデータは上書きされませんが、反復回復の場合にはギャップが埋められます。ただし、ツールに明示的に指示されている場合は切り詰めることができます。
- 複数のファイルまたはブロックから単一のファイルにデータをリカバリします。
- SATA、ATA、SCSI、MFM ドライブ、フロッピー ディスク、SD カードなど、複数のタイプのデバイス インターフェイスをサポートします。
このガイドでは、この強力なデータ回復ツールについて詳しく説明し、そのインストール手順と、それを使用してブロック デバイスまたはパーティションを回復する方法について説明します。
- ddrescueをインストールする
- 基本を理解する
- 重要な考慮事項
- DDREASEを使用する
- 破損したブロックを修復する
- 画像ファイルを新しいブロックに復元します
- データ ブロックを別のデータ ブロックに復元する
- 保存された画像ファイルから特定のデータを復元する
###高度な機能###
- ddrescue の仕組み
###結論は###
-
注意: このガイドでは、Linux ディストリビューション (Ubuntu 22.04) を使用しています。 Ddreasure ユーティリティのインストール手順はディストリビューションによって異なる場合がありますが、ガイドラインはすべての Linux ディストリビューションに共通です。 -
ddrescue をインストールします
Linux、特に Ubuntu とそのバージョン、または Debian ベースのディストリビューションに ddrescue をインストールするには、次を使用します。 目的:
sudo apt install gddrescue
REHL、Fedora、CentOS にインストールするには、まず ETEL (Extra Packages for Enterprise Linux) を有効にします。
sudo yum install epel—release
上記のコマンドは、それぞれのディストリビューションの新しいバージョンに適用できます。
次に、次のコマンドを実行して ddreasue をインストールします:
sudo yum install ddrescue
Arch-Linux や Manjaro などの Arch-Linux ベースのディストリビューションの場合は、以下のコマンドを使用して ddrescue 回復ユーティリティをインストールしてください。
sudo pacman—S ddrescue
私は Ubuntu 22.04 を使用しているため、APT パッケージ マネージャーを使用してインストールします。
基本を理解する
ddreasue ツールを使用してデータを回復する前に、回復プロセスに詳しくないユーザーは、Linux のいくつかの命名規則を理解しておくことをお勧めします。
Linux はブロック (デバイス) をファイルとして認識し、/dev ディレクトリに配置します。 /dev ディレクトリ内のファイルを一覧表示するには、ls/dev コマンドを使用します。
ハード ドライブ (ストレージ ブロック) は sd とアルファベットで表され、複数のストレージ デバイスの場合、ファイルは /dev/sda、/dev/sdb などとして表されます。
ストレージ デバイスにパーティションがある場合、それらは /dev/sda1、/dev/sda2 など、対応するドライブ ファイル名を持つ番号で表されます。
システム内のすべてのブロックとその他の接続されたデバイスをリストするには、list block lsblk コマンドを使用します。
lsblk
ddrescue コマンドは、ブロック全体 (MBR とパーティションを含む) またはパーティションを回復できます。一方、特定のパーティションから特定のファイルのみを復元する必要がある場合は、ブロック全体ではなくパーティションを復元することをお勧めします。
#重要な考慮事項
ddu ユーティリティを使用する前に、考慮すべき非常に重要な問題がいくつかあります。
マウントされたデータ ブロックは読み取り専用モードであっても回復しようとしないでください。
I/O エラーのあるデータ ブロックを修復しようとしないでください。
システムは再起動時に入力および出力デバイス名を変更できます。コピープロセスを開始する前に、デバイス名が正しいことを確認してください。 -
別のブロックを出力デバイスとして使用すると、デバイス上のすべてのデータが上書きされます。 -
-
- ddrescue を使用します
ddrescue ユーティリティをインストールし、命名規則を理解したら、次のステップは、障害が発生したディスクを特定し、ddrescue ツールを使用してそれを回復することです。
破損したブロックを修復する
最初の例には、ブロック全体を回復するプロセスが含まれます。まず、lsblk コマンドを使用してブロックをリストします。
lsblk—o 名前、サイズ、FSTYPE
#—o フラグは、コマンドが出力する情報 (フィールド) の種類を指定するために使用されます。名前、サイズ、FSTYPE (ファイル システム タイプ) について説明しました。
これで、ターゲットのブロック、パーティション、およびレスキューされたイメージ ファイルを保存する場所を決定できます。
もう 1 つ注意すべき重要な点は、Linux ではブロック名が起動時に動的に割り当てられ、再起動後にブロック名が変更される可能性があることです。したがって、ブロック名を書き留めるときは注意してください。
ここで、以下の構文を使用してチャンクをイメージ ファイルとして保存し、ルート ディレクトリにあるログ ファイルを使用します。
sudo ddrescue—d—rX/dev/[ブロック][パス/名前].img [ログファイル名].log
注: イメージ ファイルの [block]、[path/name]、および [logfile_name] を適切な名前に置き換えます。
この例では、イメージファイル名recovery.imgを使用して、ルートディレクトリの/dev/sdaをリカバリしています。いつでもリカバリを再開するには、ログ ファイル (マップ ファイルとも呼ばれます) が必要です。
Sudo dd レスキュー-d-r2/dev/sda2 リストア.img リストア.log
上記のコマンドでは 2 つの重要なフラグが使用されています。
D |
-間接 |
ディスクに直接アクセスし、カーネル キャッシュを無視するようにツールに指示するために使用されます |
###処方箋###
-再試行-パス |
不良セクタを X 回再試行するようにツールに指示するために使用されます |
|
上記のコマンドを実行すると、recovery.img と Recovery.log という名前の 2 つのファイルがファイル ブラウザに表示されることがわかります。
回復時間は入力ブロックのサイズと破損によって異なります。大きなデータ ブロックを回復する場合は、プロセスが完了するまでに数時間、場合によっては数日かかる場合があるため、ログ ファイルを使用することをお勧めします。
上記のコマンドの出力は次のとおりです:
出力イメージにおいて、ipos はコピーが開始される入力ファイルの入力場所、opos は出力ファイルに書き込まれるデータの出力場所です。
Non-try は、試行を待たないブロックのサイズです。 Rescued は、正常に回復されたブロックのサイズを表します。 Rescued pct は、正常に回復されたデータの割合を示します。非プルーニング、非スクラップ、不良セクター、不良エリアという用語は一目瞭然です。ただし、読み取りエラー用語は、失敗した読み取り試行を数値で表します。
実行時間はツールがプロセスを完了するまでにかかった時間を示し、残り時間は回復プロセスを完了するまでの残り時間を示します。上記の出力は、プロセスが完了したため残り時間が 0 であることを示しています。未完了のプロセスのイメージにある以下の出力を読んでください。
ログ ファイルに何が表示されるかを見てみましょう。生成されたログ ファイルを開くには、vim Recovery.log コマンドを使用します。
current_status はプロセスの終了を示し、current_pos はブロック上の位置です。
現在のステータスのリストを次の表に示します。
?
###コピー###
|
| #
###プルーン###
/ |
スクラップ |
– |
###リトライ###
|
F
指定されたブロックを埋める |
|
G
ログファイルの生成 |
|
プロセスは完了しました |
|
この下のログ ファイルには、以前にレスキューされたチャンクのステータスが以下にリストされている文字で表示されます。
|
| ?
ブロックは試行されていません
#枝刈りされていない欠陥のあるブロック
|
| /
リタイアされていない無効なブロック
|
| –
不良セクターでデータ ブロックが失敗しました
|
|
完全なブロック
|
|
画像ファイルを新しいブロックに復元します
回復プロセスが完了し、イメージ ファイルを取得したら、それを破損したドライブから新しいドライブに移動することができます。イメージ ファイルを新しいブロックに移動するには、まずブロックをシステムに接続し、次に lsblk コマンドを使用してブロック名を識別します。
/dev/sdb であると仮定して、次のコマンドを使用してイメージを新しいブロックにコピーします。
sudo ddrescue—f リカバリ.img/dev/sdb logfile.log
データがある場合は、-f フラグを使用して新しいブロックを上書きします。ログ ファイルには、以前に保存されたログ ファイルとは別の名前を付ける必要があることに注意してください。
上記の操作は、ファイルをコピーするためのもう 1 つの強力なコマンドである dd を使用して実行することもできます。
sudo dd if = リカバリ.img of =/dev/sdb
復元を続行する前に、新しいブロックは復元されたブロック全体を保存できる十分な大きさでなければならないことに注意してください。たとえば、復元ブロックが 5 GB の場合、新しいブロックは 5 GB より大きくなければなりません。
回復されたイメージ ファイルに多くのエラーがある場合は、Linux で fsck コマンドを使用してある程度修復できます。 Windows では、CHKDSK または SFC コマンドを使用してこれを行うことができます。ただし、回復できるかどうかは、破損したファイルによって生成されるエラーの数によって異なります。
これで復旧作業と修復作業は完了です。もう 1 つ注意すべき重要な点は、イメージ ファイルを作成して新しいブロックにコピーする代わりに、破損したブロックを別のブロックで直接回復できることです。次のセクションでは、このプロセスについて詳しく説明します。
データ ブロックを別のデータ ブロックに復元する
ブロックを新しいブロックに直接復元するには、まずブロックをシステムに接続し、次に lsblk コマンドを再度使用してブロック名を識別します。ブロック名が間違っていると、プロセス全体が中断され、データが失われる可能性があります。
ソース ブロックと宛先ブロックが特定されたら、次のコマンドを使用してブロックを復元します。
sudo ddrescue—d—f—r2/dev/[ソース]/dev/[宛先]backup.log
/dev/sdb がターゲット ブロックであると仮定すると、/dev/sda ディレクトリを新しいブロックにコピーするには、 use:
を使用します。
Sudo ddue-d-f-r2/dev/sda/dev/sdbbackup.log
この手順を実行する前に、前のセクションで説明した重要な考慮事項を参照してください。
保存された画像ファイルから特定のデータを復元する
多くの場合、データ回復の目的は、破損したドライブから特定のファイルを見つけることです。特定のファイルにアクセスするには、イメージ ファイルをマウントする必要があります。 Linux では、mount コマンドを使用して、回復されたイメージ ファイルを探索できます。
イメージ ファイルをマウントする前に、イメージ ファイルの内容を抽出するフォルダーまたはディレクトリを作成します。
mkdir リカバリ マウント
次に、次のコマンドを使用してイメージ ファイルをマウントします:
sudo mount—o ループリカバリ.img~/Recovery Mount
-o フラグはオプションを示し、loop オプションはイメージ ファイルをブロック デバイスとして扱うために使用されます。
これで、以下のスクリーンショットに示すように、画像ファイルの内容にアクセスできるようになります。
ブロックをアンマウントするには、umount コマンドを使用します。
SUDOアンインストール~/ロードの復元
#########高度な機能#########
特定のポイントから再開するには、-i フラグまたは -input-position を使用します。バイト単位で指定する必要があり、デフォルトは 0 バイトです。特定の時点からレプリケーションを再開することが重要です。たとえば、10 GB ポイントからコピー プロセスを開始する場合は、次のコマンドを使用します。
sudo ddrescue—i10GiB/dev/sda イメージファイル.img logfile.log
入力デバイスの最大サイズを定義するには、-s フラグが使用されます。 -s はサイズをバイト単位で示します。-size としても使用できます。ツールが入力ファイルのサイズを認識しない場合は、このオプションを使用してサイズを指定します。
Sudo ddreasure-s10GiB/dev/sda Imagefile.imglog file.log
#—ask オプションは、コピー プロセスを開始する前に入力ブロックと出力ブロックの確認を求めるプロンプトを表示するため、非常に便利です。前述したように、システムはブロックに名前を動的に割り当て、再起動時に名前を変更します。この場合、このオプションが役立つ可能性があります。
sudo ddrescue—ask/dev/sda imagefile.img logfile.log
さらに、他のいくつかの代替案を以下に示します。
#—R
###-逆行する###
| コピー方向を逆にする
|
#—q |
###-とても###
すべての出力メッセージをキャンセルします
|
#—V
###-長い###
| 詳細については、すべての出力メッセージ
|
#—p
-事前割り当て |
出力ファイル用のストレージスペースを事前に割り当てる |
|
#—P
-データのプレビュー
| 最新読み取りデータの表示行数はデフォルトで3行です
|
|
ddrescue の仕組み |
|
DDREASE は、次の 4 つの段階に分かれた強力な回復アルゴリズムを使用します。
| 1.コピー
2.剪定
3.スクレイピング
4.再試行
ddrescue アルゴリズムの実行を次の図に示します。
#########結論は#########
ddrescue は、破損または障害のあるドライブからデータを別のドライブにコピーして復元するための強力な回復ツールです。デフォルトのパッケージ マネージャーを使用して、任意の Linux ディストリビューションに簡単にインストールできます。このガイドで説明されているこのツールを使用する前に、重要な考慮事項に注意してください。データをコピーするプロセスは簡単です。ドライブをアンマウントし、コピー元のドライブ名とコピー先のドライブ名を指定して ddrescue コマンドを使用します。ログ ファイルは回復プロセス中に非常に役立つため、忘れずに使用してください。
以上がddrescue を使用して Linux 上のデータを回復するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。