diff --git a/config/grub.cfg.in b/config/grub.cfg.in index 9c16822..9c439f5 100644 --- a/config/grub.cfg.in +++ b/config/grub.cfg.in @@ -26,14 +26,17 @@ 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 + initrd /boot/initrd.img } 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 + initrd /boot/initrd.img } 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 + initrd /boot/initrd.img } diff --git a/scripts/docker-image-create-uefi-old.sh b/scripts/docker-image-create-uefi-old.sh index 0058a4b..87497f9 100755 --- a/scripts/docker-image-create-uefi-old.sh +++ b/scripts/docker-image-create-uefi-old.sh @@ -57,7 +57,15 @@ INITRD_PATH=$(find /kernel/boot -name "initrd.img-*" | head -1) # Copy kernel and initrd to staging 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 + +# Ensure initrd exists (required for booting) +if [ ! -f "$INITRD_PATH" ]; then + echo "ERROR: initrd not found. The kernel requires an initrd to boot." + echo "Expected to find: initrd.img-* in /kernel/boot/" + exit 1 +fi +echo "Copying initrd to staging..." +cp $INITRD_PATH /staging/esp/boot/initrd.img # Create GRUB configuration printf '%s\n' \ @@ -66,6 +74,7 @@ printf '%s\n' \ '' \ 'menuentry "SparkOS" {' \ ' linux /boot/vmlinuz root=LABEL=SparkOS rw init=/sbin/init console=tty1 quiet' \ + ' initrd /boot/initrd.img' \ '}' \ > /staging/esp/boot/grub/grub.cfg @@ -115,12 +124,9 @@ echo "Copying bootloader files..." guestfish -a /output/sparkos.img -m /dev/sda1 < /staging/esp/boot/grub/grub.cfg @@ -110,9 +118,7 @@ mmd -i /tmp/esp.img ::/boot mmd -i /tmp/esp.img ::/boot/grub mcopy -i /tmp/esp.img /staging/esp/EFI/BOOT/BOOTX64.EFI ::/EFI/BOOT/ mcopy -i /tmp/esp.img /staging/esp/boot/vmlinuz ::/boot/ -if [ -f "/staging/esp/boot/initrd.img" ]; then - mcopy -i /tmp/esp.img /staging/esp/boot/initrd.img ::/boot/ -fi +mcopy -i /tmp/esp.img /staging/esp/boot/initrd.img ::/boot/ mcopy -i /tmp/esp.img /staging/esp/boot/grub/grub.cfg ::/boot/grub/ # Format root partition (ext4) with directory contents (no mount needed!)