How NOT to copy MBR with the dd command
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: Backup, BASH, Linux, MBR, Open Source, Rants, Technology