dd、デバイスがより小さいドライブに複製され、デバイスに余分なスペースがありません。

dd、デバイスがより小さいドライブに複製され、デバイスに余分なスペースがありません。

パーティションとデバイスの複製を容易にするために、dd、cat、およびClonezillaの使用に関する多くの質問、回答、およびガイドがありました。この議論を続けるのではなく、ddこの記事で行動について非常に集中的な質問をしたいと思います。

USBから起動してUbuntu 18.04 LTSライブを使用しています。 Windows 7(/dev/sda)を実行する500GBのハードドライブがあります。パーティションのサイズを変更しましたが、割り当てられていない領域が420GBを少し超えました。私の目標は、ブートテーブルとパーティションを120 GB SSD(/ dev / sdb)にバックアップすることです。 SSD にはパーティションがなく、110 GB が割り当てられていないとマークされます。

sudo dd if=/dev/sda of=/dev/sdb「デバイスに残りのスペースがありません」というメッセージで失敗します。 gpartedを使用してパーティションをチェックし、/ dev / sdbに同じパーティション、ラベル、サイズ、および未使用のパーティションが含まれていることを確認しました。唯一の顕著な違いは、未割り当て領域です。

SSDからWindowsを起動できますが、まだいくつかのdd動作に関する問題があります。

  • dd未割り当てのデバイスコンテンツをコピーしようとしますか?
  • dd一連の仕事はありますか? (例:パーティション1 - > 99、その他のドライブブロック)
  • これまでこのWindowsドライブをすぐに使用できるほど幸運でしたか?ドライブにコンテンツがないという事実に、私はあまりにも妄想的ですか?

それにもかかわらず、私は近い将来にハードドライブを維持する予定です。

答え1

ddディスクのパーティションやその他の構造については何も知りません。ディスクの「割り当てられた」部分または「割り当てられていない」部分を認識しません。ddの観点から見ると、パラメータとして与えられたデバイスは一連のブロックで構成されています。したがって、実行すると、dd if=/dev/sda of=/dev/sdbすべてのブロックを読み取るか、エラーが発生するまで最初ddから/dev/sdaその番号が付けられたブロックにブロックをコピーします。あなたの例ではサイズが小さいので、「デバイスに余分なスペースがありません」(上記)というエラーメッセージで終了します。/dev/sdb/dev/sda/dev/sdb/dev/sdadd/dev/sdb

答え2

Johan Myréenは、あなたのアプローチがエラーにつながる理由を説得力のあるものとして説明しています。ドライブを小さなドライブにコピーするには、2つの回避策がありますdd

  • mikeservが提案したようにデバイス全体(/dev/sda)をコピーするのではなく、/dev/sda1など、関心のあるデータを含む特定のパーティションのみをコピーできます。これにはいくつかの欠点があります。どのパーティションにデータが含まれているかを知る必要があり、元のドライブを消去して回復する場合は、最初に元のパーティション構造を再作成する必要があります(理想的には外観を記録することをお勧めします)。その後、特定のパーティションを復元します。 (どちらもエラーが発生する可能性があります。)SSDでWindowsを実行する予定であれば、おそらくこれが最善の選択です。 (Windowsは時々ハードウェアの変更に反対して再インストールしたいのですが、明らかにここでは問題にはなりません。ケース)。
  • ドライブの内容を圧縮形式で保存しても問題ないsudo dd if=/dev/sda bs=1M | gzip > /path/to/mounted/backup-drive/sda_backup.gz場合は、次のようsudo -iにしてみてください。sudo sh -c '注文する'bs;デフォルトの512バイトは大容量データには非効率的であるため、このように設定しました。gzip代わりに、他の圧縮プログラムを使用できます。これはリカバリを使用して機能しますzcat sda_backup.gz | dd of=/dev/sdx bs=1Mが、パーティションから起動できず、インストールさえ難しいです(参照)この問題これについての興味深い議論は、doug65536の答えでも圧縮率を向上させるための「ゼロクリーニング」について議論します。

現状の問題は、パーティションテーブルを大きなドライブから小さなドライブにコピーしたことです。これは、実際には120 GBを超えるすべてのものについて誤った情報が含まれていることを意味します。ただし、これはパーティションの起動と使用を妨げません。理想的ではありません。このような操作を試してパーティションテーブルを回復しgparted(再コピーするよりもはるかに高速です)、他の問題が発生しないことを望むか、最初から始めることができます。

関連情報