June 4, 2010

How NOT to copy MBR with the dd command

Filed under: Blog — krkhan @ 8:39 pm

Yesterday I needed to copy the MBR of a drive over another. Googling a little I found the following command in various tutorials:

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

Where /dev/sda and /dev/sda were the original and target hard disks respectively. The command did complete its work in a snap but it also made me learn a thing about MBR structures the hard way: Only 446 bytes of the MBR contain boot code, the next 64 contain the partition table!

The implications of the lesson being, if partition tables of both hard disks differ — which unfortunately was the case with me — the partition table of the target hard-disk will be overwritten. The correct way would therefore be:

-bash-$ dd if=/dev/sda of=/dev/sdb bs=446 count=1

In case you did mess up the table, I recommend TestDisk for recovering your partitions.

Tags: , , , , , ,

1 Comment

  1. Thankyou for clarifying that.

    PS: if anyone is wondering “dd –help” specifies that if=is the source, and of=is the target. So

    dd if=/dev/sda of=/dev/sdb bs=446 count=1 is copying the mbr from sda to sdb.

    Comment by mango — March 27, 2014 @ 9:50 am

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.