Você já tentou o óbvio - simplesmente concatenando vdb para vda e criando uma nova partição? Eu tentei isso e parece funcionar. Aqui está o que eu fiz ...
Eu comecei com dois arquivos:
# ls -l vd*
-rw-r--r-- 1 root root 104857600 Feb 27 20:31 vda.raw
-rw-r--r-- 1 root root 104857600 Feb 27 20:31 vdb.raw
# file vd[ab].raw
vda.raw: x86 boot sector; partition 1: ID=0x83, starthead 32, startsector 2048, 202752 sectors, extended partition table (last)1, code offset 0x0
vdb.raw: Linux rev 1.0 ext3 filesystem data, UUID=734fa0ee-0bc8-4428-a13c-3147c9c0866f
O arquivo vda.raw
contém um mapa de partição padrão com uma única partição (contendo um arquivo files3 ext3):
# fdisk -l vda.raw
Disk vda.raw: 104 MB, 104857600 bytes
191 heads, 50 sectors/track, 21 cylinders, total 204800 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xad0a5dfe
Device Boot Start End Blocks Id System
vda.raw1 2048 204799 101376 83 Linux
vdb.raw
contém um sistema de arquivos ext3
.
Primeiramente, concatenamos esses dois arquivos juntos:
# cat vda.raw vdb.raw > combined.raw
Em seguida, criamos uma nova partição que abrange os novos dados:
# fdisk combined.raw
Aqui está a tabela de partições inicial:
Command (m for help): p
Disk combined.raw: 209 MB, 209715200 bytes
191 heads, 50 sectors/track, 42 cylinders, total 409600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xad0a5dfe
Device Boot Start End Blocks Id System
combined.raw1 2048 204799 101376 83 Linux
Agora, criamos um novo, aceitando os padrões para setor de início e tamanho:
Command (m for help): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
Partition number (1-4, default 2): 2
First sector (204800-409599, default 204800):
Using default value 204800
Last sector, +sectors or +size{K,M,G} (204800-409599, default 409599):
Using default value 409599
Command (m for help): w
The partition table has been altered!
Syncing disks.
Agora vamos ver o que temos:
# kpartx -a combined.raw
# mkdir /mnt/{1,2}
# mount /dev/mapper/loop1p1 /mnt/1
# mount /dev/mapper/loop1p2 /mnt/2
# ls /mnt/1
lost+found README.vda
# ls /mnt/2
lost+found README.vdb
#
Ta-da!