Sua imagem é uma imagem de disco, não uma imagem do sistema de arquivos. O sistema de arquivos está em uma partição dentro dessa imagem (a menos que você tenha feito algo realmente incomum). Você pode confirmar isso executando file Debian.raw
e fdisk -l Debian.raw
.
A maneira mais fácil de acessar essa partição é associá-la a um dispositivo de loop. Se puder, verifique se o driver loop
suporta e está carregado com a opção max_parts
; talvez seja necessário executar rmmod loop; modprobe loop max_part=63
. Em seguida, associe a imagem do disco a um dispositivo de loop e voilà:
losetup -fs Debian.raw # prints /dev/loop0 (or some other number)
mount /dev/loop0p1 /mnt # 0 as above, 1 is the partition number
Se você não conseguir que o driver de loop use partições, será necessário descobrir o deslocamento da partição na imagem do disco. Execute fdisk -lu Debian.raw
para listar as partições e descobrir seu setor inicial S (um setor tem 512 bytes). Em seguida, diga losetup
que você deseja que o dispositivo de loop inicie nesse deslocamento:
fdisk -lu Debian.raw # note starting sector $S
losetup -fs -o $(($S * 512)) Debian.raw
mount /dev/loop0 /mnt # /dev/loop0 or whatever losetup prints
Se você deseja copiar a partição da imagem da VM para o seu sistema, determine os deslocamentos inicial ( $S
) e final ( $E
) com fdisk -lu
como acima. Em seguida, copie apenas a partição:
<Debian.raw tail -c +$((512*$S)) | dd of=/dev/sda5 bs=4M
(Se a origem e o destino não estiverem no mesmo disco, não se preocupe com dd
, apenas redirecione a saída de tail
para /dev/sda5
. Se eles estiverem no mesmo disco, dd
com um grande parâmetro bs
é muito mais rápido.)