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.
This commit is contained in:
2026-07-02 07:00:02 +03:00
parent 1e63ca8fde
commit 827029eae2
+3 -2
View File
@@ -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