適切なブート イメージのビルドに関する以前の問題は修正されましたが、ほぼ 1 日中、別の 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