さまざまなサイズのディスクコピーのMBRとブートローダの説明

さまざまなサイズのディスクコピーのMBRとブートローダの説明

私は希望クローン500GB MBRソースディスクから250GB MBRターゲットディスクへ手動ターゲットディスクに対応する各パーティションを作成し、回復のみを実行します。データ各コンテンツ。これにより、100 GBのパーティションが5%しか満たされていない場合、dd.Iを使用すると、パーティションラベルを含む各パーティションの内容を正しく復元できると思います。変更される唯一のものはパーティションサイズですが、それは問題ではありません。

私の理解MBRディスクそれは最初の446バイト~であるブートコード領域。次の64バイトはパーティションテーブルで、使い慣れた形式を構成します。512バイトMBR。しかし、私はターゲットディスクでこの64バイト(パーティションテーブル)を手動で処理しました。

  • ブートコード領域(ディスクの最初のセクタの最初の446バイト)はどのように処理されますか?
  • それは簡単ですかdd if=/dev/sdb of=/dev/sdc bs=446 count=1
  • 〜するブートコードすべてのMBRディスクで同じですか、それともターゲットディスクで動作するように変更する必要がありますか?それでは、どのように修正しますか?
  • ブートコードは何をしますか?

いくつかのサードパーティのフリーソフトウェアに頼るのではなく、さまざまなサイズのMBRディスクを手動で複製する方法を知りたいです。dd if=/dev/sdb of=/dev/sdc bs=32M同じサイズのディスク間操作が正常に実行され、ターゲットディスクが機能します。すべてはディスクラベルを通してマウントされます。私はFedora 18(Spherical Cow)を扱っています。 grub2とすべてのパーティションはext3だと思います。

答え1

私の理解MBRディスクそれは最初の446バイト~であるブートコード領域。次の64バイトはパーティションテーブルで、使い慣れた形式を構成します。512バイトMBR。

はい、ほとんどです。 446 + 64 = 510バイト、0x55aaMBRスタイルディスクのオフセット510であるディスク署名の2バイトを忘れました。

それは簡単ですかdd if=/dev/sdb of=/dev/sdc bs=446 count=1

はい。これを行う前に、512バイト全体を別のディスク上のファイルにバックアップしてください。これにより、多くの問題を軽減できます。

ブートコードは各MBRディスクで同じですか、それともターゲットディスクで動作するように変更する必要がありますか?それでは、どのように修正しますか?

オペレーティングシステムとブートローダ(Grub、syslinux、Windows...)によって異なるため、コードが異なる場合があります。あなたの場合、ディスクの複製は重要ではありません。他のパーティションのオフセットとサイズを使用するだけです。

ブートコードは何をしますか?

ブートコード全体がMBRに収まらないため、アクティブパーティションを決定し、アクティブパーティションのブートセクタから2段階のブートローダをロードするためによく使用されます。

適切なケース:古いラップトップからWin10、Debian、OSXを3回起動しました。最初のパーティションをアクティブにするとWindowsが起動し、2番目のパーティションがアクティブになるとGrub(MBRではなくそのパーティションのブートセクタにインストールされます)がロードされ、3番目のパーティションがアクティブになるとhackintoshブートローダがロードされます。ブートコードが元のWindowsコードなのか、ハッキントッシュブートローダからのものなのかはわかりません。彼らはすべて働いた。

メモ:パーティションをターゲットディスクにコピーする方法はわかりませんが、ソースディスクのパーティションサイズをターゲットサイズ(gparted)に調整することをお勧めします。

それから
ㅏ)dd
ターゲットディスクに同じサイズのパーティションテーブルを作成し、パーティションを使用またはコピーします。
雨)gparted を使用して、ターゲットディスクにクリーンなMBRパーティションテーブルを作成し、パーティションをコピーします。

完了したら、ブートコードをターゲットディスクにコピーします。これにより、すべてのデータがコピーされ、ファイルシステムがそのまま残ります。完了したら、ソースディスクのパーティションサイズを元のサイズに戻すことができます。

関連:

関連情報