mirror of
https://github.com/CyberMind-FR/secubox-deb.git
synced 2026-08-16 15:03:41 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ff806523b7 |
+31
-3
@@ -3521,6 +3521,17 @@ else
|
||||
fi
|
||||
fi
|
||||
|
||||
# Capture UUIDs — labels failed to resolve on at least one real UEFI
|
||||
# box (v2.12.x grub> shell symptom). Bake UUIDs into the embed-cfg
|
||||
# and grub.cfg so `search --fs-uuid` is used everywhere instead of
|
||||
# the fragile `search --label`. blkid is read AFTER mkfs.* so the
|
||||
# values are guaranteed fresh.
|
||||
udevadm settle 2>/dev/null || sleep 1
|
||||
ESP_UUID=$(blkid -s UUID -o value "${LOOP}p2" 2>/dev/null || echo "")
|
||||
LIVE_UUID=$(blkid -s UUID -o value "${LOOP}p3" 2>/dev/null || echo "")
|
||||
[[ -z "$ESP_UUID" || -z "$LIVE_UUID" ]] && err "Failed to read ESP/LIVE UUIDs from ${LOOP} after mkfs"
|
||||
log "ESP UUID=${ESP_UUID} LIVE UUID=${LIVE_UUID}"
|
||||
|
||||
# Mount for file copy
|
||||
MNT="${WORK_DIR}/mnt"
|
||||
mkdir -p "${MNT}/esp" "${MNT}/live"
|
||||
@@ -3571,7 +3582,15 @@ insmod all_video
|
||||
insmod echo
|
||||
insmod gfxterm
|
||||
|
||||
search --no-floppy --label LIVE --set=live
|
||||
# Resolve LIVE partition by UUID — `search --label` failed silently on
|
||||
# real UEFI hardware (v2.12.x grub> shell). UUIDs are baked at build
|
||||
# time from blkid after mkfs.ext4, so this lookup is deterministic.
|
||||
search --no-floppy --fs-uuid ${LIVE_UUID} --set=live
|
||||
# Fallback: keep the label search as a second chance for firmware
|
||||
# that prefers labels (no-op if already set above).
|
||||
if [ -z "\$live" ]; then
|
||||
search --no-floppy --label LIVE --set=live
|
||||
fi
|
||||
|
||||
# CRT-style menu colors (cyan on black, gold highlights)
|
||||
set menu_color_normal=cyan/black
|
||||
@@ -3699,8 +3718,17 @@ cp "${MNT}/esp/boot/grub/grub.cfg" "${MNT}/esp/EFI/BOOT/grub.cfg"
|
||||
# unchanged.
|
||||
GRUB_MODS="part_gpt part_msdos fat ext2 normal linux boot configfile loopback chain efi_gop efi_uga ls search search_label gfxterm all_video"
|
||||
|
||||
cat > "${WORK_DIR}/grub-embed.cfg" <<'EMBEDCFG'
|
||||
configfile $cmdpath/grub.cfg
|
||||
cat > "${WORK_DIR}/grub-embed.cfg" <<EMBEDCFG
|
||||
# Try \$cmdpath first (set by firmware to dir of loaded .EFI). Falls
|
||||
# back to UUID-based search if \$cmdpath isn't usable.
|
||||
if [ -n "\$cmdpath" ]; then
|
||||
configfile \$cmdpath/grub.cfg
|
||||
fi
|
||||
search --no-floppy --fs-uuid ${ESP_UUID} --set=root
|
||||
if [ -n "\$root" ]; then
|
||||
configfile (\$root)/EFI/BOOT/grub.cfg
|
||||
fi
|
||||
echo "GRUB embed-cfg fallback failed: cmdpath=\$cmdpath root=\$root"
|
||||
EMBEDCFG
|
||||
|
||||
grub-mkimage -o "${MNT}/esp/EFI/BOOT/BOOTX64.EFI" \
|
||||
|
||||
Reference in New Issue
Block a user