Por acaso, parece um bug no pacote do debian de grub
.
A abordagem -kernel grub.img
funciona se eu incluir apenas os módulos grub de que preciso em grub-mkimage
.
O -bios grub.bin
funciona com o novo pacote grub de experimental
(2.00-7). No entanto, o grub.bin
que vem com ele não é muito útil.
Ele vem com um memdisk
que vem com o grub.cfg
. Teria sido melhor usar esse memdisk para manter os módulos e o grub.cfg
ser especificado com a opção -c
de grub-mkimage
. Por exemplo, uma das entradas do menu procura /boot/grub/grub.cfg
e se encontra no memdisk como resultado. Além disso, o pacote debian não inclui os módulos do grem do qemu, portanto você não pode construir um grub.bin diferente (embora possa editar o arquivo binário para alterar o grub.cfg), a menos que você o faça a partir do pacote fonte. / p>
A abordagem -bios grub.bin
parece a abordagem mais limpa para mim, mas usarei a abordagem -kernel
ou floppy até que o pacote debian seja corrigido.
EDIT : bem, o módulo ata.mod
grub para ler unidades IDE emuladas é muito mais lento do que usar biosdisk.mod
em combinação com seabios
(o BIOS padrão quando não está usando -bios grub.bin
). Além disso, parece que o firmware do grub não suporta discos virtio-blk nem virtio-scsi, portanto kvm -bios grub.bin
não será uma opção para mim.
Caso alguém queira seguir esse caminho, estou usando agora (sintaxe zsh):
grub-mkimage -O i386-pc -c =(print -l serial 'terminal_input serial' \
'terminal_output serial' 'set prefix=(hd0)/boot/grub' '. grub.cfg') -o grub.img \
at_keyboard configfile biosdisk ext2 linux test serial halt minicmd terminal cat
E -kernel grub.img -nographic
passou para o kvm. Isso é para inicializar VMs Linux sem gráficos (apenas uma interface serial, então certifique-se de que o grub da VM esteja configurado para usar serial (ou pelo menos não configurado para usar gráficos), que o console do kernel vá para ttyS0 e que você rode um getty lá). Ele pode ser facilmente adaptado para trabalhar também em consoles VGA.