Respondendo sua primeira pergunta: dado que você tem um MBR lá, sugiro que você faça algo como dd
do primeiro megabyte da unidade original (que contém o registro de inicialização e possivelmente o gerenciador de inicialização) e, em seguida, iterar partições contidas nele:
%código%
E depois de gravar o primeiro megabyte na unidade de destino, peça ao kernel para ler a tabela de partições com
dev=/dev/sda
fdisk -l "$dev" | sed -ne '/^\//s,\(^[^ ]*\) .*,,p' | while read part
do dd "if=$part" "of=$(basename "$part")"
done
ou partprobe
. Depois disso, você deve conseguir kpartx
do conteúdo das imagens correspondentes às novas partições.