To clone a entire disk you can use the dd command:
~ $ dd if=/dev/sda of=/dev/sdb bs=10240k conv=noerror,sync
Or dd_rescue, more reliable than dd:
~ $ dd_rescue -v /dev/sda /dev/sdb
Also you can use pv to watch the progress:
~ $ dd if=/dev/sda bs=10240k conv=noerror,sync | pv -c -b -r -t > /dev/sdb
About a partition table you can copy it from a disk to another:
~ $ sfdisk -d /dev/sda | sfdisk /dev/sdb
Or save to a file:
~ $ sfdisk -d /dev/sda > partition-table.output
And restore then:
~ $ sfdisk /dev/sda < partition-table.output