From 0ce6d0974c06f93b2825e70b3a0ec1065f7cb8c3 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 1 Jan 2026 22:52:14 +0000 Subject: [PATCH] Extract GRUB config into separate template file - Create config/grub.cfg.in template file for main GRUB configuration - Update docker-image-create-uefi.sh to use template instead of heredoc - Improves maintainability by keeping config separate from build logic - Follows existing pattern used for grub-embedded.cfg.in Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com> --- config/grub.cfg.in | 39 +++++++++++++++++++++++++ scripts/docker-image-create-uefi.sh | 44 ++--------------------------- 2 files changed, 41 insertions(+), 42 deletions(-) create mode 100644 config/grub.cfg.in diff --git a/config/grub.cfg.in b/config/grub.cfg.in new file mode 100644 index 0000000..9c16822 --- /dev/null +++ b/config/grub.cfg.in @@ -0,0 +1,39 @@ +# GRUB Configuration for SparkOS + +# Load essential modules +insmod part_gpt +insmod fat +insmod ext2 +insmod linux +insmod all_video +insmod video_bochs +insmod video_cirrus +insmod gfxterm + +# Set terminal and video modes +terminal_input console +terminal_output console +set gfxmode=auto +set gfxpayload=keep + +# Boot menu settings +set timeout=5 +set default=0 + +# Show countdown message +echo "SparkOS Boot Menu - Starting in $timeout seconds..." + +menuentry "SparkOS" { + echo "Loading SparkOS kernel..." + linux /boot/vmlinuz root=LABEL=@ROOT_LABEL@ ro init=/sbin/init console=tty0 console=ttyS0,115200n8 +} + +menuentry "SparkOS (Verbose Mode)" { + echo "Loading SparkOS kernel in verbose mode..." + linux /boot/vmlinuz root=LABEL=@ROOT_LABEL@ ro init=/sbin/init console=tty0 console=ttyS0,115200n8 debug loglevel=7 +} + +menuentry "SparkOS (Recovery Mode)" { + echo "Loading SparkOS kernel in recovery mode..." + linux /boot/vmlinuz root=LABEL=@ROOT_LABEL@ rw init=/bin/sh console=tty0 console=ttyS0,115200n8 +} diff --git a/scripts/docker-image-create-uefi.sh b/scripts/docker-image-create-uefi.sh index 5805d82..15dddd5 100755 --- a/scripts/docker-image-create-uefi.sh +++ b/scripts/docker-image-create-uefi.sh @@ -42,48 +42,8 @@ echo "Copying kernel to staging..." cp $KERNEL_PATH /staging/esp/boot/vmlinuz if [ -f "$INITRD_PATH" ]; then cp $INITRD_PATH /staging/esp/boot/initrd.img; fi -# Create GRUB configuration for immutable root with overlay -cat > /staging/esp/boot/grub/grub.cfg << EOF -# GRUB Configuration for SparkOS - -# Load essential modules -insmod part_gpt -insmod fat -insmod ext2 -insmod linux -insmod all_video -insmod video_bochs -insmod video_cirrus -insmod gfxterm - -# Set terminal and video modes -terminal_input console -terminal_output console -set gfxmode=auto -set gfxpayload=keep - -# Boot menu settings -set timeout=5 -set default=0 - -# Show countdown message -echo "SparkOS Boot Menu - Starting in \$timeout seconds..." - -menuentry "SparkOS" { - echo "Loading SparkOS kernel..." - linux /boot/vmlinuz root=LABEL=$ROOT_LABEL ro init=/sbin/init console=tty0 console=ttyS0,115200n8 -} - -menuentry "SparkOS (Verbose Mode)" { - echo "Loading SparkOS kernel in verbose mode..." - linux /boot/vmlinuz root=LABEL=$ROOT_LABEL ro init=/sbin/init console=tty0 console=ttyS0,115200n8 debug loglevel=7 -} - -menuentry "SparkOS (Recovery Mode)" { - echo "Loading SparkOS kernel in recovery mode..." - linux /boot/vmlinuz root=LABEL=$ROOT_LABEL rw init=/bin/sh console=tty0 console=ttyS0,115200n8 -} -EOF +# Create GRUB configuration from template +sed "s/@ROOT_LABEL@/$ROOT_LABEL/g" /build/config/grub.cfg.in > /staging/esp/boot/grub/grub.cfg # Prepare root filesystem contents echo "Preparing root filesystem..."