2

虽然我之前确实解决了构建正确引导映像的问题,但在一天的大部分时间里,我一直在努力解决另一个与 GRUB2 相关的问题。

问题是,即使我多重引导标头中设置了视频信息请求位,GRUB2 也不会返回正确的 VESA BIOS 扩展 (VBE) 信息。

内核是我自己的工作,值得注意的是它曾经与一些早期版本的 GRUB2 一起工作(TM)(我可以用白色像素填充屏幕,没问题)。

这是我当前的 grub.cfg:

set timeout=10
set default=0

menuentry "zero" {
    set gfxmode=1024x768x24
    set gfxpayload=keep
    insmod vbe
    insmod gfxterm
    multiboot /kern
}

这是我用来构建启动映像的脚本:

echo Building kernel
./build.sh
echo Creating bootable CD image...
cp zero cdimg2/kern
grub-mkimage --format=i386-pc --output=core.img \
    --config="cdimg2/boot/grub/grub.cfg" loadenv biosdisk \
    part_msdos part_gpt fat ntfs \
    ext2 ntfscomp iso9660 loopback search linux boot \
    minicmd cat cpuid chain \
    halt help ls reboot echo test configfile normal sleep \
    memdisk tar font \
    gfxterm gettext true vbe vga video_bochs video_cirrus \
    multiboot multiboot2
cat /usr/lib/grub/i386-pc/cdboot.img core.img > \
    cdimg2/grub.img
genisoimage -A "ZERO" -input-charset "iso8859-1" -R -b \
    grub.img -no-emul-boot \
    -boot-load-size 4 -boot-info-table -o cd.iso cdimg2
4

0 回答 0