저는 pxe를 사용하여 qemu를 통해 이전 버전의 grub을 부팅하려고 했습니다. 어떤 이유로 grub은 메뉴를 표시하지 않고 다음 오류를 표시한 후 명령 모드로 들어갑니다.
Error15: File not found.
grub rescue>
이것은 내 디렉토리 구조입니다.
/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
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
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
다음 명령을 사용하여 grub 이미지를 생성합니다.
grub-mkimage --format=i386-pc-pxe --output=grub.pxe --prefix='(pxe)/boot/grub' pxe pxecmd
답변1
grub-mkimage
GRUB 레거시 이미지가 아닌 GRUB 2 이미지를 생성합니다. grub rescue>
이는 GRUB 2를 부팅하고 있다는 신호이기도 합니다.
stage2
여기 대신 로드해야 합니다 pxegrub.0
.
GRUB 레거시 일부 버전예netboot를 지원하지만 무엇을 어디서 사용할지 추천하려면 운영 체제나 최소한 에뮬레이트하는 QEmu 네트워크 카드 모델을 알아야 합니다(MirBSD에는 netboot를 지원하는 사전 컴파일된 GRUB 레거시 이미지가 많이 있습니다).