web-dev-qa-db-ja.com

ハードディスク全体を新しいものにクローンする方法は?

ddコマンドを使用して、500GBのハードディスクを新しい1TBのハードディスクにコピーしました。 9時間後、システムはすべてが正常にコピーされたことを示すメッセージを表示しましたが、新しいハードディスクにデータを表示できません。
次の手順を実行します。
ステップ1:-

enter image description here

そのシステム表示メッセージの後:-step2:- enter image description here
しかし1 TB HDDは何も表示できません。 enter image description here
その問題を解決するには?

3
Madhav Nikam

この問題は、不正なddコマンドによって作成されました。ディスクのクローン作成のための正確なddコマンドは次のとおりです。

dd if=/dev/sda of=/dev/sdb

sdasdbは、パーティションテーブルも含むハードディスク自体を指します。 if=は入力ファイル(この場合は/dev/sda)を指し、of=は出力ファイル(/dev/sdb)を指します。

ddコマンドは時間がかかりますが、信頼性が高く、デフォルトのシステムツールでもあるため、ddを優先しました。

enter image description here

正常に動作した後、次のステップはシステムを再起動することです。新しいハードディスクは次のようになります。

enter image description here

最後の2番目のステップは、ddの後にも必要です:Gpartedユーティリティを使用して拡張パーティション。古いハードディスクパーティションテーブルはレガシーブートタイプであり、4つ以上のプライマリパーティションをサポートしていませんでした。したがって、500GBの空き領域を使用するには、サイズ変更が唯一の安全なオプションです。

拡張パーティションのサイズを変更した後:

enter image description here

9
Madhav Nikam

最近、リカバリとイメージ処理にddを使用する必要がありました。ドライブのクローン作成とパーティションのバックアップのために、10年ほど前から集中的に使用しました。私は、その使用が直接かつ単純なものから数年離れていると言わなければなりません。 HDDに関しては、ドライブが最低レベルでどのように構成されているかを正確に知る必要があります。そのためには、信頼できる他のプログラム(fdisk、sfdisk、cfdiskなど)が必要です。信頼は、口コミからではなく、既知のオブジェクトの実験と結果の検証からのみ得られます。私は、間違ったddコマンドに関するmuruの最初のコメントに同意していますが、もっと言うべきです。 if =/dev/sdaはデバイスの先頭(バイトアドレス0)から読み取りを開始し、of =/dev/sdb1はデバイスbの最初のパーティションに書き込みます。その結果、sda-MBRはOSなどとともにsdb-part1に存在し、sdb1よりも大きい場合はsdb1の最後に到達するとどうなるかわかりません。

Sdaがブートデバイスであり、sdbをブートデバイスにもしたいのですが、sdb1をバックアップクローンにしたいだけかもしれません。あなたの質問はこれについてあいまいです。まったく同じサイズのパーティションをパーティションにコピーできる場合がありますが、OSにはパーティションファイルシステムに関するメタデータが一致しないため、「表示」できません。バックアップ用のクローンが必要な場合、コマンドは大丈夫かもしれませんが、パーティションの最後に到達して次のパーティションを上書きすること、およびOSがsdb1のファイルシステムの破壊に反対するかどうかについて問題がありますsda1(?))。原則として、これは機能するかもしれませんが、sdaのみをsdbに書き込み、sdbからの起動を忘れることをお勧めします。読み取り用のクローンです。 extFATまたは500GBのファイルサイズを受け入れるシステムがあれば、おそらくファイルに書き込むことができますが、そうすることはできません。

他にもたくさんの質問があります。 sdbに転送して後でブートする場合は、コピーするバイトとセクターを知ってコマンドに含める必要があります-出力ドライブに必要なサイズがあることを確認し、再度/ dev/sdaから/ dev/sdb私が遭遇したいくつかの問題を除いて動作するはずです。つまり、古い使用済みドライブで一般的な読み取りエラーが発生した場合、ddはどうすればよいですか?それらを無視するようにddを設定できますが、それから何を書きますか?私の経験では、何も書き込まないため、512バイト(通常の従来のブロックですが、ディスクは異なる可能性があり、新しいドライブは4096バイトブロックを使用する可能性があります)は書き込みから取り出され、それ以降のすべてのバイトは「左」にシフトされますどこにあるべきか。これは、読み取りエラーがddコールドを停止し、再起動が非常に困難であるため、無視するように選択した可能性がある読み取りエラーごとに発生します。要するに、ddはクローン作成のために実行できますが、未読ブロックをヌルで埋めるエラー回復ループを使用してbashスクリプトで実行する必要があります。コマンドは正確なブロック数を指定し、関係するドライブ。結局、本格的なクローン作成には、ddとsfdiskが行うが、より専門的に行う専用のオープンソースc実行可能ファイルを使用するのがおそらく最善です。しかし、私はddが有用であることを認めます。それはあなたのベルト上のボウイナイフのようなものです-印象的で強力ですが、限られた有用性があります。

また、OSは、HDDの空き領域やその他の場所に保存されているUUIDを確認でき、一致しない場合は起動に反対できます。これは、OSの競争力のブラックアート分野の1つです。公式ソフトウェアはこれらのことを知っています。)

10年前とは異なり、GPTテーブルも重要であり、今日でも不可欠です。また、EFIブートパーティションも事態を複雑にします。低レベルのディスクフォーマットについてほとんど知らないので、ディスク全体のクローンを作成しようとしても時間を無駄にしません。ディスクの一部は、非常に特殊な問題に役立つ場合があります。 LVMとその重要性を無視すると、パーティションは便利にクローン化されますが、元のドライブ(OSのミキシング、ブートの変更などはありません)への読み取り専用です。ブート可能な500GBドライブを転送して、1TBのブート可能なシステムを作成します。別のドライブ(ハードウェアシグネチャ?)に反対する場合、成功する実験のための私の提案は、500GBドライブとまったく同じように1TBドライブで低レベルフォーマットを行うことです。 16進エディターでMBRおよびGPTテーブルを調べる必要があります。次に、新しいドライブにバイト単位でパーティションをddします。次に、1TBドライブを起動して(成功した場合)、新しい500GBの追加スペースに別のパーティションを作成するか、パーティションとライブファイルシステムを拡張します(そのようなソフトウェアがある場合)。この領域への信頼を見つけるのは困難です。なぜなら、このようなことは間違っていると困難で悲惨だからです。評判の良い新しいシステムまたはソフトウェアを購入し、SHA256SUMedをして、その整合性を確認できるようにしてください。デジタルシステムは本質的に揮発性で非永続的であるため、必要以上のものが必要な場合は、変更に慣れるのが最善です。

2
Gavilan

私は持っています:

  • 2番目の大きな仮想ディスクをubuntu仮想マシンに追加しました(仮想ボックスのセットアップ)
  • 「Sudo dd if =/dev/sda of =/dev/sdb」で最初のディスクを2番目のディスクにコピーしました
  • sdbのスワップパーティションを削除しました(gparted)
  • sdb1の拡大(gparted)
  • sdbにスワップパーティションを再作成(gparted)
  • 仮想マシンを停止しました
  • 古い仮想ドライブを削除しました(仮想ボックスのセットアップ)
  • 新しいコピーされたより大きなドライブに置き換えました(仮想ボックスのセットアップ)

Virtualboxで動作する場合、実際のハードウェアでも動作します。

0
aldo