Inicializando o grub legado via qemu usando pxe

3

Eu tenho tentado inicializar o grub legacy via qemu usando pxe. Por algum motivo, o grub não exibe o menu e entra no modo de comando depois de exibir o seguinte erro.

Error15: File not found.
grub rescue>

Esta é a estrutura do meu diretório:

/var/lib/tftpboot
| - pxelinux.0
| - pxegrub.0
| - pxelinux.cfg
    | default
| - boot
    | grub
          |default        
          |fat_stage1_5
          |menu.lst
          |stage1
          |device.map
          |installed-version  
          |minix_stage1_5     
          |stage2
          |e2fs_stage1_5 
          |jfs_stage1_5
          |reiserfs_stage1_5  
          |xfs_stage1_5
 |x86_64

Conteúdo do pxelinux.cfg / default:

 default vesamenu.c32
prompt 0

menu title Available Installations (scroll down for more options)
menu autoboot Starting grub2 in # Seconds
timeout 30

label local
  menu label Boot From Local Disk
  localboot 0

label grub
  menu label grub
  menu default
        kernel pxegrub.0

menu end

Conteúdo do menu.lst:

timeout 0

# spawnd is used to control which cpus are booted
#
# "spawnd boot" will use the skb and pci to figure out and
#  boot all cores in the machine
#
# "spawnd boot bootapic-x86_64=1-5" will not use the skb and
# boot the list of cores passed as argument.
# The APIC id of the cores to boot should be specified.
# This list may not include the bsp core id.

title   Barrelfish
root    (nd)
kernel  /x86_64/sbin/elver loglevel=4
module  /x86_64/sbin/cpu loglevel=4
module  /x86_64/sbin/init

# Domains spawned by init
module  /x86_64/sbin/mem_serv
module  /x86_64/sbin/monitor

# Special boot time domains spawned by monitor
module  /x86_64/sbin/ramfsd boot
module  /x86_64/sbin/skb boot
modulenounzip /skb_ramfs.cpio.gz nospawn
module  /x86_64/sbin/kaluga boot
module  /x86_64/sbin/acpi boot
module  /x86_64/sbin/spawnd boot

#bootapic-x86_64=1-15
module  /x86_64/sbin/startd boot
module /x86_64/sbin/routing_setup boot

# Drivers
module /x86_64/sbin/pci auto
module /x86_64/sbin/ahcid auto
module /x86_64/sbin/rtl8029 auto
module /x86_64/sbin/e1000n auto
module /x86_64/sbin/NGD_mng auto
module /x86_64/sbin/netd auto

# General user domains
module  /x86_64/sbin/serial
module  /x86_64/sbin/fish
module  /x86_64/sbin/hellotest
module  /x86_64/sbin/ahcialloctest
module  /x86_64/sbin/idctest client
module  /x86_64/sbin/idctest server

Eu usei o seguinte comando para gerar uma imagem do grub:

grub-mkimage --format=i386-pc-pxe --output=grub.pxe --prefix='(pxe)/boot/grub' pxe pxecmd
    
por user39617 21.05.2013 / 21:29

1 resposta

1

grub-mkimage cria uma imagem do GRUB 2, não uma imagem do GRUB Legacy. grub rescue> também é um sinal de que você está inicializando o GRUB 2.

Você deve estar carregando stage2 em vez de pxegrub.0 aqui.

Algumas versões do GRUB Legacy são habilitadas para netboot, mas para sugerir qual usar e de onde, eu preciso conhecer seu sistema operacional, ou possivelmente pelo menos qual modelo de placa de rede QEmu que você emule (O MirBSD tem um número de imagens pré-compiladas com capacidade de inicialização do GRUB Legacy).

    
por 28.02.2014 / 15:11