2008-03-02

Qemu - III

Como em qualquer máquina real, também num sistema "virtual" pode haver falta de espaço em disco !

Ora, se numa máquina real resolvemos o problema adicionando um outro disco (ou trocando por um maior), como se resolverá o problema de falta de espaço no disco virtual do GuestOS a correr sob qemu ?

Temos duas maneiras de resolver o problema: Ou criamos uma nova imagem vazia ou aumentamos a imagem já existente. Se optarmos pela primeira solução, o GuestOS ficará com acesso a dois discos virtuais (no caso do Linux, /dev/hda e /dev/hdb), pois teremos que indicar os dois aquando da invocação do qemu:
qemu -hda imagem_original -hdb nova_imagem [outras opções...]

No segundo caso, a extensão de imagem aparacerá ao GuestOS como uma partição adicional do disco inicial (no meu caso: /dev/hda1 e /dev/hda2).

Mas como criar este espaço adicional ?
Vamos supor que queremos adicionar 1 GiB de espaço extra ao já existente.

O primeiro passo será criar uma imagem nova com o qemu-img (ver Qemu - II) em formato raw, com o tamanho pretendido.
qemu-img create -f raw nova.img 2G

Se quisermos que este espaço represente um novo disco, basta agora fazer a invocação do qemu do seguinte modo:
qemu -L ./pc-bios -m 256 -hda lenny.img -hdb nova.img -boot c

e com as ferramentas habituais do linux gerir o novo disco (definir a partição, formatá-lo, etc...)

Se optarmos por integrar este espaço na imagem já existente, temos mais alguns passos a cumprir. Primeiro temos que garantir que a imagem original está no formato raw:
qemu-img info lenny.img

e se não estiver, converte-se com o seguinte comando:
qemu-img convert lenny.img -O raw imagem_convertida.img

Após esta conversão podemos acrescentar a nova imagem ao fim da imagem original (como o meu sistema Host é o Windows, a cópia é feita com o parâmetro /b que indica "cópia binária"):
copy /b lenny.img + nova.img grande.img

Agora podemos invocar novamente o qemu com a imagem "grande.img" e verificar que temos duas partições: /dev/hda1 e /dev/hda2.

Não esquecer de fazer os necessários backups e salvaguardas de dados, nao vá alguma coisa correr pior... :)

1 comentário:

Anónimo disse...

qemu é uma ferramenta indispensavel para emular varias versoes de LINUX em Windows ou mesmo em outrsa versoes. Apesar das dificuldade de compartilhamento ou de tornar persistente, quando se tem acesso ao DSKT.img ou -USB pendrive, e se duvidas as possibilidades de usar FTP e talvez SSH tudo vai bem. Parabens Bellard e todos que colaboram.