Não é possível copiar o conteúdo do disco rígido virtual para o meu disco físico

2

Eu tenho uma imagem vmware do Ubuntu na minha máquina que eu quero substituir minha partição atual.

Quando eu corro:

sudo qemu-img convert my-image.vmdk -O raw /dev/sda1 

Acabo com o erro abaixo:

  

qemu-img: / dev / sda1: erro ao   convertendo raw: Não há espaço disponível   dispositivo

Existe alguma maneira que eu possa substituir minha partição HD existente sem o erro acima?

    
por Bitmap 25.06.2011 / 09:32

1 resposta

2

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)

fonte

    
por fossfreedom 26.06.2011 / 00:50