From 827029eae21b2e202d39c3e6e684da4b2a997cdf Mon Sep 17 00:00:00 2001 From: vasilito Date: Thu, 2 Jul 2026 07:00:02 +0300 Subject: [PATCH] fix: chain boot path points to data partition not ESP The chain boot path (hiso_path) was set to ($root)/hiperiso which on our layout resolves to the ESP partition. But hiperiso_x64.efi, the chain-boot EFI binary, lives on the DATA partition (after the new install step copies it there). Result: chainloader ${hiso_path}/hiperiso_x64.efi resolves to (ESP)/hiperiso/hiperiso_x64.efi which doesn't exist -> 'chain empty failed' despite memdisk mode working. Fix: change hiso_path to ($hiso_dev,1)/hiperiso (data partition). Apply same fix to tftp branch where it was looking on gpt2 (ESP). GRUB2 binary + payload rebuilt. --- src/grub2/grub/grub.cfg | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/grub2/grub/grub.cfg b/src/grub2/grub/grub.cfg index 012dbd1..c0a1a70 100644 --- a/src/grub2/grub/grub.cfg +++ b/src/grub2/grub/grub.cfg @@ -2628,13 +2628,14 @@ vt_device $root hiso_dev if [ "$hiso_dev" = "tftp" ]; then set hiso_path=($root) for vtid in 0 1 2 3; do - if [ -f (hd$vtid,gpt2)/hiperiso/hiperiso.cpio ]; then + if [ -f (hd$vtid,gpt1)/hiperiso/hiperiso.cpio ]; then set hiso_iso_part=(hd$vtid,gpt1) set hiso_efi_part=(hd$vtid,gpt2) set hisodev=hd$vtid break fi done + set hiso_path=$hiso_iso_part/hiperiso loadfont ascii if [ -n "$hiso_efi_part" ]; then @@ -2652,7 +2653,7 @@ else if [ "$prefix" = "(hiperisodisk)/grub" ]; then set hiso_path=(hiperisodisk)/hiperiso else - set hiso_path=($root)/hiperiso + set hiso_path=($hiso_dev,1)/hiperiso fi set hisodev=$hiso_dev