Estou tentando algumas coisas malucas aqui. Primeiro, eu tinha uma máquina VirtualBox com o Windows XP instalado, usando o formato .vdi. Em seguida, exportei a imagem para um OVA, extraí o .vmdk e o converti em um arquivo .img bruto. Então eu criei uma nova VM no KVM via virt-manager, carreguei essa imagem como um disco rígido e consegui executá-la.
Agora, estou tentando copiar essa imagem inteira para uma partição de disco, via dd
, e inicializar a primeira partição NTFS dentro dessa imagem na inicialização, via grub
. Até agora, eu já dd'ed a primeira partição dentro da imagem (a partição NTFS real) e foi reconhecido por gParted como NTFS e grub como uma instalação do Windows, mas não consigo inicializá-lo. Então eu tentei copiar a imagem inteira, incluindo a tabela de partição, setor de inicialização e outras coisas, para essa partição /dev/sda4
física. Agora a imagem está sendo inicializada via KVM, mas não consigo encontrar uma maneira de adicioná-la ao Grub. Eu estou tentando encontrar uma maneira de fazê-lo via montagem de loop, eu só não tenho idéia sobre como grub de configuração para montar / map / boot esta imagem e acessar a primeira partição (NTFS) dentro dele.
O que eu quero fazer:
- Turn my XP image into a valid physical installation to dual boot
- Keep the VM running from this disk partition
Dessa forma, se possível, usarei a VM no Ubuntu ou inicializarei no grub.
Para esclarecimento, os comandos que usei:
$ sudo su
# mounts the entire image
$ losetup /dev/loop0 /path/to/WindowsXP.img
$ fdisk -l /dev/loop0
> Device Boot Start End Blocks Id System
> /dev/loop0p1 * 63 31439204 15719571 7 HPFS/NTFS/exFAT
# mounts the first NTFS partition inside image (offset 63*512)
$ losetup /dev/loop1 -o 32256 /dev/loop0
Neste ponto, tenho a partição NTFS em /dev/loop1
e o disco completo (com MBR) em /dev/loop0
. Então:
# copied the entire image to /dev/sda4. This is not recognized by GRUB,
# therefore it must be loopmounted before booted via grub config somehow
$ dd if=/dev/loop0 of=/dev/sda4 bs=10m
# copied the NTFS virtual partition to physical one
# GRUB should recognize and boot it, since is a valid XP install, however it misses the partition table,
# so the virtual machine won't be able to boot it.
$ dd if /dev/loop1 of=/dev/sda4 bs=10m
Como alternativa, pensei em uma segunda imagem de disco anexada à VM, apenas com o GRUB e informações mínimas para inicializar essa partição.
Dessa forma, eu poderia manter a partição NTFS em /dev/sda4
para o grub como uma inicialização dupla e inicializar a partir de uma segunda imagem minúscula no KVM.
Idéias?