Um arquivo VMDK é basicamente uma imagem de um disco rígido embrulhado em um formato que as soluções virtuais VMWare & amp; agora o VirtualBox pode reconhecer.
Os discos rígidos virtuais VMWare ESX com um formato de nome "somefilename-flat.vmdk" são basicamente representação direta de bytes por bytes de um disco rígido normal. Como tal solução 2 abaixo poderia ser usada para ler e montar tal disco.
No entanto, para arquivos VMDK, acho que você estava usando a maneira correta de pensar usando o qemu, mas acredito que você precisa ir mais além, conforme demonstrado na solução 1.
solução 1
Crie uma versão de imagem bruta do seu vmdk e exiba as partições no vmdk usando o kpartx
qemu-img convert -O raw somefilename.vmdk rawimagefilename.raw
sudo apt-get install kpartx
sudo kpartx -av rawimagefilename.raw
Isso produzirá mapeamentos de loop (/ dev / mapper / loopXpY) por partição no vmdk, por exemplo
loop0p1 : 0 15952482 /dev/loop0 63
loop0p2 : 0 819315 /dev/loop0 15952545
loop0p5 : 0 819252 loop0p1 63
Em seguida, crie uma pasta em / media, onde montaremos uma das partições representadas pelo mapeamento de loop mostrado
sudo mkdir /media/partitionimage
Monte a partição que precisa ser restaurada em / dev / sda1
sudo mount /dev/mapper/loop0p2 /media/partitionimage -o loop,ro
Você deve poder agora navegar pela partição / mídia / partitionimage usando o nautilus
Backup da partição de loop usando tar:
cd /media/partitionimage
sudo tar cvpzf /home/somewhere/backup.tgz
Você deve realmente inicializar a partir de um live CD para garantir que o / dev / sda1 não esteja em uso.
Você restauraria o backup com algo como
sudo mount /dev/sda1 /media/backup
sudo tar xvpfz /home/somewhere/backup.tgz -C /media/backup/
solução 2
Como o xxx-flat.vmdk é realmente apenas um disco rígido disfarçado, você pode montar e verificar o conteúdo da seguinte forma:
sudo losetup /dev/loop0 <full path to the xxx-flat.vmdk file>
sudo losetup -o 32256 /dev/loop1 /dev/loop0
sudo mkdir /media/diskimage
sudo mount /dev/loop1 /media/diskimage
fdisk -l /dev/loop0
em que 32256 é o deslocamento calculado pela multiplicação do tamanho do setor (na maioria das vezes 63 [veja aqui para mais detalhes]) com o tamanho do setor VMDK (assumido como sendo 512 bytes)
Se o fdisk for concluído com êxito, você poderá continuar. Você deve poder navegar no seu arquivo vmdk usando o Nautilus e navegando para / media / diskimage.
copiando o conteúdo do vmdk para o disco rígido
Primeiro inicialize a partir de um disco ao vivo
copie o conteúdo do VMDK diretamente para sua partição
sudo dd if=<path to vmdk file> of=/dev/sda1 bs=512 skip=63
em que bs é o número de bytes por setor (encontrado na primeira etapa) e pular é o número de setores (usado na primeira etapa)