dd を使用して MBR をコピーすると、パーティション表のサイズが 2 倍になります。

dd を使用して MBR をコピーすると、パーティション表のサイズが 2 倍になります。

私は500GBの内蔵ハードドライブと500GBの外付けUSBハードドライブを備えたノートパソコンを持っています。

Windows 8.1システムでLinux Live CDから起動しています。

私の目標は、MBR、パーティション1(350mb)、パーティション2(40GB)を複製することです。

複製に使用するコマンド/dev/sdaマスターブートレコードは次のとおりです。

dd if=/dev/sda of=/dev/sdb bs=512 count=1

私たちのソースは次のとおりです/dev/sda通過したようです。fdisk -l

Disk /dev/sda: 465.9 GiB, 500277790720 bytes, 977105060 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0xb77d45d7

Device    Boot     Start       End   Blocks  Id System
/dev/sda1 *         2048    718847   358400   7 HPFS/NTFS/exFAT
/dev/sda2         718848  81922047 40601600   7 HPFS/NTFS/exFAT

ターゲットドライブの外観は次のとおりです。

ddcmdを実行する前に

Disk /dev/sdb: 465.8 GiB, 500107862016 bytes, 488386584 sectors
Units: sectors of 1 * 1024 = 1024 bytes
Sector size (logical/physical): 1024 bytes / 1024 bytes
I/O size (minimum/optimal): 1024 bytes / 1024 bytes
Disklabel type: dos
Disk identifier: 0xb77d45d7

ddcmd 実行後

Disk /dev/sdb: 465.8 GiB, 500107862016 bytes, 488386584 sectors
Units: sectors of 1 * 1024 = 1024 bytes
Sector size (logical/physical): 1024 bytes / 1024 bytes
I/O size (minimum/optimal): 1024 bytes / 1024 bytes
Disklabel type: dos
Disk identifier: 0xb77d45d7

Device    Boot     Start       End   Blocks  Id System
/dev/sdb1 *         2048    718847   716800   7 HPFS/NTFS/exFAT
/dev/sdb2         718848  81922047 81203200   7 HPFS/NTFS/exFAT

cmdを実行した後、両方のパーティションのターゲットブロックサイズがソースブロックサイズパーティションの2倍であることを確認できますdd

この問題の原因は何ですか?

その質問を残して、ddハードドライブを何度も複製してみました。

dd if=/dev/sda1 of=/dev/sdb1 bs=4096
dd if=/dev/sda2 of=/dev/sdb2 bs=4096

ただし、起動に失敗します。データサイズが2倍になり、他の望ましくない影響があるかどうか疑問に思います。

BIOSは外付けハードドライブを内蔵ハードドライブと同じ名前の起動オプションとして表示しますが、起動ディスクとして選択した後は動作が停止します(エラーは返されません)

答え1

このddコマンドは、要求どおりに正確に512バイトをコピーします。

混乱の主な原因は、/dev/sda論理セクタサイズが512バイトで、/dev/sdbセクタサイズが1024バイトであることです。

それ以外の場合、パーティションは同じように見えます。

MBRまた、パーティション内のファイルが使用するサイズには影響しません。起動しないという事実は、MBRそのドライブに適していない構成を反映している可能性があります。

起動可能にするには、インストールして必要なマウントポイント(たとえば、、、/dev//proc/sysマウントし、chrootを使用してブートローダを実行します。

更新:@sourcejediが指摘したように、パーティションテーブルが/dev/sdb。これは明らかにMBRパーティション情報のコピーを保持した結果です。

ファイルシステムで何も変更せず、元の構成(他のドライブと一致すると思われる)がわかっている場合は、パーティションを削除して再作成すると問題が解決します。

関連情報