diff --git a/scripts/metal-usb-sdboot.sh b/scripts/metal-usb-sdboot.sh index b19d4fa7..9ce82220 100755 --- a/scripts/metal-usb-sdboot.sh +++ b/scripts/metal-usb-sdboot.sh @@ -55,6 +55,9 @@ IRD="$WORK/initramfs.cpio.gz"; echo " initramfs: $(du -h "$IRD" | cut -f1)" # 3) ESP FAT32: BOOTX64.EFI=systemd-boot + loader.conf + entry + kernel + initrd espkb=$(( ( $(stat -c%s "$KERNEL") + $(stat -c%s "$IRD") ) / 1024 + 16384 )) +# FAT32 (-F) exige ~33 MiB mínimos; con initramfs chico (bisección) la ESP cae por debajo y la firmware +# no la lee ("Not Found"). Piso de 48 MiB para que el FAT32 siempre sea válido. +[ "$espkb" -lt 49152 ] && espkb=49152 ESP="$WORK/esp.img"; rm -f "$ESP"; truncate -s "$(( espkb * 1024 ))" "$ESP" "$MT/mformat" -F -v HAMMER -i "$ESP" :: "$MT/mmd" -i "$ESP" ::/EFI ::/EFI/BOOT ::/loader ::/loader/entries