diff --git a/iso/builder/config/bootloaders/grub-pc/grub.cfg b/iso/builder/config/bootloaders/grub-pc/grub.cfg index 71f94c7..3d33e47 100644 --- a/iso/builder/config/bootloaders/grub-pc/grub.cfg +++ b/iso/builder/config/bootloaders/grub-pc/grub.cfg @@ -24,11 +24,6 @@ menuentry "EASY-BEE (NVIDIA GSP=off)" { initrd @INITRD_LIVE@ } -menuentry "EASY-BEE (NVIDIA no MSI-X)" { - linux @KERNEL_LIVE@ @APPEND_LIVE@ nomodeset bee.nvidia.mode=nomsi net.ifnames=0 biosdevname=0 mitigations=off transparent_hugepage=always numa_balancing=disable nowatchdog nosoftlockup - initrd @INITRD_LIVE@ -} - menuentry "EASY-BEE (fail-safe)" { linux @KERNEL_LIVE@ @APPEND_LIVE@ bee.nvidia.mode=gsp-off memtest noapic noapm nodma nomce nolapic nosmp vga=normal net.ifnames=0 biosdevname=0 initrd @INITRD_LIVE@ diff --git a/iso/builder/config/hooks/normal/9100-memtest.hook.binary b/iso/builder/config/hooks/normal/9100-memtest.hook.binary index 2811659..9c1d7c9 100755 --- a/iso/builder/config/hooks/normal/9100-memtest.hook.binary +++ b/iso/builder/config/hooks/normal/9100-memtest.hook.binary @@ -2,15 +2,54 @@ # Copy memtest86+ binaries from chroot /boot into the ISO boot directory # so GRUB can chainload them directly (they must be on the ISO filesystem, # not inside the squashfs). +# +# Primary: copy from chroot/boot/ (populated by package postinst). +# Fallback: extract directly from the cached .deb if postinst didn't place +# the files (happens in chroot environments without grub triggers). set -e -echo "memtest: scanning chroot/boot/ for memtest files:" -ls chroot/boot/memtest* 2>/dev/null || echo "memtest: WARNING: no memtest files found in chroot/boot/" +MEMTEST_FILES="memtest86+x64.bin memtest86+x64.efi memtest86+ia32.bin memtest86+ia32.efi" -for f in memtest86+x64.bin memtest86+x64.efi memtest86+ia32.bin memtest86+ia32.efi; do +echo "memtest: scanning chroot/boot/ for memtest files:" +ls chroot/boot/memtest* 2>/dev/null || echo "memtest: WARNING: no memtest files in chroot/boot/" + +# Primary path: copy from chroot/boot/ +for f in ${MEMTEST_FILES}; do src="chroot/boot/${f}" if [ -f "${src}" ]; then cp "${src}" "binary/boot/${f}" - echo "memtest: copied ${f} to binary/boot/" + echo "memtest: copied ${f} from chroot/boot/" fi done + +# Fallback: if EFI binary still missing, extract from cached .deb +if [ ! -f "binary/boot/memtest86+x64.efi" ]; then + echo "memtest: EFI binary missing — attempting extraction from .deb cache" + deb=$(find chroot/var/cache/apt/archives/ chroot/var/lib/apt/lists/ \ + -name 'memtest86+_*.deb' -o -name 'memtest86+*.deb' 2>/dev/null \ + | head -1) + if [ -z "$deb" ]; then + # Also check lb package cache + deb=$(find cache/ -name 'memtest86+_*.deb' -o -name 'memtest86+*.deb' 2>/dev/null | head -1) + fi + if [ -n "$deb" ]; then + echo "memtest: extracting from ${deb}" + EXTRACT_DIR="$(mktemp -d)" + dpkg-deb -x "${deb}" "${EXTRACT_DIR}" + echo "memtest: files found in .deb:" + find "${EXTRACT_DIR}/boot" -type f 2>/dev/null || echo " (none in /boot)" + for f in ${MEMTEST_FILES}; do + src="${EXTRACT_DIR}/boot/${f}" + if [ -f "${src}" ]; then + cp "${src}" "binary/boot/${f}" + echo "memtest: extracted ${f} from .deb" + fi + done + rm -rf "${EXTRACT_DIR}" + else + echo "memtest: WARNING: no memtest86+ .deb found in cache — memtest will not be available" + fi +fi + +echo "memtest: binary/boot/ contents:" +ls binary/boot/memtest* 2>/dev/null || echo " (none)"