Improve FAI-CD ISO Grub2 menu
This requires a patch in fai-cd:
From 7600db048b6ce0a2046c966597f929e21a39607c Mon Sep 17 00:00:00 2001
From: Daniel Teichmann <daniel.teichmann@das-netzwerkteam.de>
Date: Tue, 2 Jul 2024 12:23:51 +0200
Subject: [PATCH] bin/fai-cd create_grub2_image(): Add grub background image +
DejaVuSansMono font to memdisk.
Background image: /usr/share/images/desktop-base/desktop-grub.png
Font file: /usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf
---
bin/fai-cd | 18 +++++++++++++-----
1 file changed, 13 insertions(+), 5 deletions(-)
diff --git a/bin/fai-cd b/bin/fai-cd
index 9326c75b..06e308ba 100755
--- a/bin/fai-cd
+++ b/bin/fai-cd
@@ -188,10 +188,13 @@ create_squashfs_image() {
# - - - - - - - - - - - - - - - - - - - - - - - - - -
create_grub2_image() {
- mkdir -p $tmp/boot
+ mkdir -p $tmp/boot/grub
+ # Needs grub2-common package
+ grub-mkfont -s 16 -o "${NFSROOT}/boot/grub/DejaVuSansMono.pf2" /usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf
if [ -d $NFSROOT/usr/lib/grub/x86_64-efi ]; then
cp $grub_config $NFSROOT/tmp/grub.cfg
+ cp /usr/share/images/desktop-base/desktop-grub.png $NFSROOT/tmp/background.png
# insert date into grub menu
perl -pi -e "s/_VERSIONSTRING_/ $isoversion /" $NFSROOT/tmp/grub.cfg
if [ -n "$config_space" ] || [ $configset -eq 1 ]; then
@@ -202,10 +205,13 @@ create_grub2_image() {
--format=x86_64-efi \
--output=/tmp/bootx64.efi \
--locales="" --fonts="" \
- "boot/grub/grub.cfg=/tmp/grub.cfg"
+ "boot/grub/grub.cfg=/tmp/grub.cfg" \
+ "boot/grub/background.png=/tmp/background.png" \
+ "boot/grub/DejaVuSansMono.pf2=/boot/grub/DejaVuSansMono.pf2"
+
mv $NFSROOT/tmp/bootx64.efi $scratch
- dd if=/dev/zero of=$scratch/efiboot.img bs=1M count=3 2>/dev/null
+ dd if=/dev/zero of=$scratch/efiboot.img bs=1M count=5 2>/dev/null
mkfs.vfat $scratch/efiboot.img
mmd -i $scratch/efiboot.img efi efi/boot
mcopy -i $scratch/efiboot.img $scratch/bootx64.efi ::efi/boot/
@@ -217,9 +223,11 @@ create_grub2_image() {
--format=i386-pc \
--output=/tmp/core.img \
--locales="" --fonts="" \
- --install-modules="linux normal iso9660 biosdisk memdisk search ls echo test chain msdospart part_msdos part_gpt minicmd ext2 keystatus all_video font sleep gfxterm regexp" \
+ --install-modules="linux normal iso9660 biosdisk memdisk search ls echo test chain msdospart part_msdos part_gpt minicmd ext2 keystatus all_video font sleep gfxterm gfxterm_background png regexp" \
--modules="linux normal iso9660 biosdisk search" \
- "boot/grub/grub.cfg=/tmp/grub.cfg"
+ "boot/grub/grub.cfg=/tmp/grub.cfg" \
+ "boot/grub/background.png=/tmp/background.png" \
+ "boot/grub/DejaVuSansMono.pf2=/boot/grub/DejaVuSansMono.pf2"
cat $NFSROOT/usr/lib/grub/i386-pc/cdboot.img $NFSROOT/tmp/core.img > $scratch/bios.img
rm $NFSROOT/tmp/core.img
else
--
2.39.2