Tendo usado o Xen e pygrub
por um tempo, agora estou tentando fazer algo semelhante com o KVM / qemu.
Basicamente, eu tenho um volume lógico LVM (embora possa ser um arquivo) que contém o sistema de arquivos raiz de uma distribuição Linux (sem particionamento, apenas FS diretamente no disco) que também contém um /boot/grub/grub.cfg, e eu gostaria de inicializar isso.
Fiquei com a impressão de que o pacote grub-firmware-qemu no Debian / Ubuntu foi planejado para isso, mas não consegui fazê-lo funcionar. AFAICT, a imagem grub.bin contém um memdisk codificado com um arquivo grub.cfg com algumas opções de menu (como procurar um multiboot.img ou procurar um grub.cfg), mas tudo o que recebo ao executar kvm -bios grub.bin
é uma "licença incompatível " mensagem de erro. E não tenho muita certeza de como gerar um diferente grub.bin
com um grub.cfg diferente (um que faria apenas configfile (hd0)/boot/grub/grub.cfg
).
Claro, eu poderia criar uma imagem de disquete ou cdrom ou disco com uma configuração mínima de grub que faça exatamente isso, mas tenho a sensação de que deve haver uma maneira mais limpa / canônica de fazer isso, e minha pesquisa trouxe muito pouco de volta. longe.
Suponho que alguém possa usar a -kernel
opção do qemu também, mas, novamente, não sei como gerar um grub.img
para isso. (usar um grub.img gerado com grub-mkimage -O i386-pc -o grub.img -c =(echo 'configfile (hd0)/boot/grub/grub.cfg') /usr/lib/grub/i386-pc/*.mod
exibe a mesma mensagem de erro "licença incompatível" novamente).
Está no debian com a versão 1.99-23 dos pacotes grub e 1.1.2 + dfsg-2 do kvm / qemu.
Portanto, resumindo, como devo criar um grub.bin (para ser usado com kvm -bios
) ou um grub.img (para ser usado com kvm -kernel
) para que o kvm inicialize uma imagem do grub capaz de analisar o / boot / grub /grub.cfg no disco virtual?