Etapa metal: USB de bisección (initramfs tiny) + fix piso FAT32 de la ESP
- 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 <noreply@anthropic.com>
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user