From 5012549f85680a9ae49d072e8085f99007720964 Mon Sep 17 00:00:00 2001 From: sergio Date: Tue, 23 Jun 2026 01:26:29 -0400 Subject: [PATCH] =?UTF-8?q?Etapa=20metal:=20USB=20de=20bisecci=C3=B3n=20(i?= =?UTF-8?q?nitramfs=20tiny)=20+=20fix=20piso=20FAT32=20de=20la=20ESP?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Diagnóstico metal: con systemd-boot, earlyprintk=efi NO imprime NADA del kernel (solo 'Loaded initrd MEDIA_GUID' + 'Measured initrd PCR 9' y cuelga) ⇒ el kernel no llega ni a su consola temprana: hang en ExitBootServices o el decompresor. - metal-usb-sdboot.sh: piso de 48MiB a la ESP (FAT32 -F exige ~33MiB; con initramfs chico caía debajo y la firmware no leía el BOOTX64.EFI → 'Not Found'). - USB de bisección (work/hammer-tiny-usb.img, initramfs busybox 1.3MB): ✓ OVMF llega a /init. Si en el metal del usuario ARRANCA a shell ⇒ el cuelgue era el initrd 100MB; si TAMBIÉN cuelga ⇒ es el kernel/EBS (probar nokaslr/no5lvl). Co-Authored-By: Claude Opus 4.8 --- scripts/metal-usb-sdboot.sh | 3 +++ 1 file changed, 3 insertions(+) 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