从 Grub 2.02 开始,升级到 2.04,将其添加到我们的 TFTP 服务器以进行 PXE 启动;我构建了新的 grub2 映像,如下所示:
/tmp/rebuild_grub/bin/grub2-mkimage -c ./grub-embedded.cfg -p '(tftp)/blah' -o grubx64-with-embed.efi -O x86_64-efi efinet echo configfile net efinet tftp gzio part_gpt efi_gop efi_uga efifwsetup linux loadenv ls http gfxmenu chain png serial linux16 loopback udf sleep gfxterm png gfxterm_background minicmd terminal test
编辑:作为参考,这是其构建的配置方式:
./configure TARGET_LDFLAGS=-static --with-platform=efi --with-grubdir=grub2 --program-transform-name=s,grub,grub2, --disable-grub-mount --enable-grub-themes --enable-grub-mkfont --disable-werror --prefix=/tmp/rebuild_grub
grub2 图像工作正常,但我们始终有一个自定义主题,在使用时会显示损坏的gfxterm
字体grub.cfg
:
terminal_output gfxterm
set gfxmode="800x600;640x480;auto"
set theme=theme.txt
...
set color_normal=white/black
set color_highlight=black/white
set menu_color_normal=white/black
set menu_color_highlight=black/white
set timeout=15
set default='Exit to EFI Shell'
set fallback='Exit to EFI Shell'
set pager=1
(here you would find our menuentry section)
显示菜单时我们得到以下信息:
它似乎与字体无关,因为我们尝试了不同的主题,例如https://github.com/Generator/Grub2-themes并表现出相同的行为。
作为参考,目录如下所示:
[root@aimstest01 uefi]# tree
.
├── grub.cfg
├── themes
│ ├── archlogo.png
│ ├── icons
│ │ ├── arch.png
│ │ ├── debian.png
│ │ ├── fedora.png
│ │ ├── gentoo.png
│ │ ├── gnu-linux.png
│ │ ├── kubuntu.png
│ │ ├── linuxmint.png
│ │ ├── mageia.png
│ │ ├── mandriva.png
│ │ ├── opensuse.png
│ │ ├── sabayon.png
│ │ ├── ubuntu.png
│ │ └── windows.png
│ ├── menu_bkg_c.png
│ ├── menu_bkg_e.png
│ ├── menu_bkg_ne.png
│ ├── menu_bkg_n.png
│ ├── menu_bkg_nw.png
│ ├── menu_bkg_se.png
│ ├── menu_bkg_s.png
│ ├── menu_bkg_sw.png
│ ├── menu_bkg_w.png
│ ├── Sans-10.pf2
│ ├── Sans-12.pf2
│ ├── Sans-14.pf2
│ ├── sb_frame_c.png
│ ├── sb_frame_n.png
│ ├── sb_frame_s.png
│ ├── sb_thumb_c.png
│ ├── sb_thumb_n.png
│ ├── sb_thumb_s.png
│ ├── select_bkg_c.png
│ ├── select_bkg_e.png
│ ├── select_bkg_ne.png
│ ├── select_bkg_n.png
│ ├── select_bkg_nw.png
│ ├── select_bkg_se.png
│ ├── select_bkg_s.png
│ ├── select_bkg_sw.png
│ ├── select_bkg_w.png
│ ├── theme.txt
│ └── tick.png
└── x86_64-efi
├── command.lst
├── crypto.lst
├── fs.lst
├── progress.mod
└── terminal.lst