dd を使用して部分的なイメージ バックアップを実行する機能はありますか?

dd を使用して部分的なイメージ バックアップを実行する機能はありますか?

この質問は数年前のもの、部分的なイメージバックアップを行う方法を探していました。その部分については回答が得られなかったので、この質問はそれ専用の質問です。

問題

  • Windows パーティションを縮小する予定だったので、保険としてまずイメージ バックアップを作成したいと考えていました。復旧が必要になった場合は、縮小したパーティションにバックアップを復元する必要があります。

  • 目的は現状のシステムに対する保険であるため、バックアップは、何かを変更したり、新たなリスクを導入したりするような変更を行う前の「未使用」のコンテンツである必要がありました。

  • Windows パーティション縮小ツールは、パーティションをどの程度縮小するかを事前に通知します。縮小後に残るパーティションの部分のみのイメージが欲しかったのです。

  • ファイルベースのバックアップを行っていたので、縮小領域外にあり、バックアップでキャプチャされない可能性のあるファイルについては心配していませんでした。

ソリューションコンセプト

常識では、これらの要件は を使用して満たすことはできないと言われています。しかし、危険である程度の知識があれば、解決策になると思われるアプローチがあります (ベースのソリューションは Linux 内から実行されるものddと想定しています)。dd

アイデア:

  • dd開始場所と終了場所を指定するためのパラメータがあります。
  • どのパーティション管理ツールを使っても、そのパーティションがドライブ上のどこに配置されているかがわかります。
  • Windows パーティション縮小ツールは、Windows パーティションをどれだけ縮小するかを表示します。

それはパラメータを計算するための原材料のようですdd。ピースをまとめるのは、私がこれまでやったことのないことです。質問は:

  • ddパーティションの縮小部分を反映するパラメータを決定する方法
  • dd関連する部分をバックアップドライブにコピーするコマンド
  • ddそのイメージを元のドライブの同じ場所に復元するコマンド

警告

ベアメタルからパーティションの必要なセクションを定義してコピーするのは簡単なように思えます。ただし、明確でない点が 1 つあります。それは、NTFS MFT が元のパーティション サイズに結び付けられているかどうかです。そのため、縮小されたパーティションに復元すると、少なくともchkdsk修復などの手段では不可能なほど破損した状態になります。

質問の目的

最終目的説明したように、Windows パーティションの部分的なイメージ バックアップを作成することです。この問題は元の質問では解決策が見つからなかったため、この質問は潜在的なアプローチの種を提供することを目的としています。ただし、私の考えがうまくいかない可能性があります。したがって、ddこの質問の焦点は解決策ですが、組み込みツールまたは一般に利用可能な無料ツールを使用した代替ソリューションを排除するものではありません。したがって、成功する回答は次のようになります。

  • 実用的ddなソリューション
  • ddベースのソリューションがなぜ機能しないのか(または少なくとも確実に機能するとは信頼できないのか)についての権威ある決定的な説明
  • 目的を達成する代替ソリューション。

補遺

カミル・マチオロウスキーの答えは別の疑問を提起している。ハードディスクから使用中の領域のみをクローンするかなり似ていますが、重複しているとは思いません。主な違いは次のとおりです。

  • その質問は、使用済み領域のみをクローンすることを目的としています。この質問は、パーティションの特定のセクションをクローンすることを目的としています。
  • この質問には、結果を得るための特別な制約はありません。この質問では、画像がコンテンツの変更やリスクのない、現在の完全な状態であることが求められており、いかなる種類の「準備」も排除されます。
  • その質問はドライブ全体と Linux ファイルシステムに関するものです。この質問はパーティションのセクションと NTFS に関するものです。

答え1

それはXY問題そして本当の質問は次のとおりです。ハードディスクから使用中の領域のみをクローンする方法(またはパーティション)? なぜそれがあなたの提案したアイデアよりも優れているのか説明せずに別の回答を指摘したくありません。だからここにあります:

一般的に、デフラグ後でも、空き領域がファイルシステムの最後に集まることは保証されません。NTFS や FAT ファミリについて十分な知識がないため確信は持てませんが、どれだけ空いているかに関係なく、大規模なファイルシステムの遠いセクターを占有するデータ構造が存在する可能性があると思います。

したがって、部分的なイメージのみを保存するという考えには懐疑的です。おそらく、これに耐えられるファイルシステムがあるでしょう。おそらく NTFS がその 1 つでしょうが、私にはわかりません。

私はこれまで何度も、主に NTFS で、あなたが達成したいことと似たようなことをしてきました。私の方法は、ファイルシステム内の空きチャンクがどこにあるかに関係なく機能します。基本的には次のようになります。

  • ファイルに空き領域がなくなるまでゼロを書き込みます。
  • 同期、
  • ゼロのファイルを削除します。
  • umount
  • 画像をスパース ファイルまたは圧縮ファイルに保存します。

かなり時間がかかる場合があります。事前にファイルシステムが正常であることを確認してください。また、ディスクに障害があると思われる場合は、この操作を実行しないでください。

詳細は以下をご覧ください。すでに述べた質問に対する私の答えdd重要な違いは、ドライブ全体ではなく、単一のパーティションを読み取ることです。

残念ながら、このようなイメージは縮小されたパーティションに復元できません。縮小プロセスが失敗して元のファイルが失われた場合、このイメージは役に立ちます。より小さなパーティションに復元するには、ファイル (およびファイルシステム内のメタデータ) をバックアップできるツールが必要だと思います。しかし、ddそのようなツールはありません。

関連情報