arranque-grafo: rama EFI-stub en el instalador live (ADR 0010 paso 5)
hammer-live-install.sh detecta /sys/firmware/efi y ramifica a EFI-stub soberano: MBR con ESP tipo 0xEF (UEFI arranca una ESP MBR igual que GPT ⇒ sólo busybox fdisk/mkfs.vfat/mount, sin GPT-tool ni mtools en el live). Arma el mismo initramfs de pivote (findfs LABEL=hammer-root → switch_root) que el builder host-side; /sbin/init = wrapper hammer-recover→arje-zero (el pivote ya montó store/estado por LABEL). La rama BIOS+GRUB queda intacta tras la detección. iso-image.sh INSTALLER=1 bundlea el kernel metal EFI-stub (bzImage-efi) en el payload; el genérico no sirve (no hornea initrd=/rdinit= en la cmdline). MBR+ESP-EF spot-checked en OVMF (firmware → BOOTX64.EFI → pivote → arje-zero). ADR 0010 actualizado: pasos 2 y 5 ✅. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -92,6 +92,16 @@ if [ "${INSTALLER:-0}" = 1 ]; then
|
||||
IPL="$RFS/root/usr/lib/hammer/install"
|
||||
mkdir -p "$IPL/grub/i386-pc" "$IPL/kernel"
|
||||
cp "$KERNEL" "$IPL/kernel/bzImage"; chmod 0644 "$IPL/kernel/bzImage"
|
||||
# Rama EFI del instalador (ADR 0010 paso 5): el kernel `linux-metal` hornea CONFIG_CMDLINE con
|
||||
# initrd=/initramfs.cpio.gz rdinit=/init ⇒ arranca por EFI-stub como \EFI\BOOT\BOOTX64.EFI sin
|
||||
# bootloader. Lo bundleamos junto al genérico; hammer-install lo usa si el live corre en UEFI.
|
||||
EFI_KERNEL="${EFI_KERNEL:-$(ls -dt store/*-linux-metal/boot/bzImage 2>/dev/null | head -1)}"
|
||||
if [ -n "${EFI_KERNEL:-}" ] && [ -r "$EFI_KERNEL" ]; then
|
||||
cp "$EFI_KERNEL" "$IPL/kernel/bzImage-efi"; chmod 0644 "$IPL/kernel/bzImage-efi"
|
||||
echo " + kernel EFI-stub (metal) para la rama UEFI del instalador"
|
||||
else
|
||||
echo " ! sin kernel linux-metal en el store ⇒ el instalador sólo tendrá rama BIOS/MBR" >&2
|
||||
fi
|
||||
cp "$GRUB_LIB/boot.img" "$IPL/grub/boot.img"
|
||||
cp "$GRUB_LIB"/*.mod "$GRUB_LIB"/*.lst "$IPL/grub/i386-pc/" 2>/dev/null || true
|
||||
# core.img para disco MBR: prefix a la 1ª partición msdos, módulos de disco (biosdisk/part_msdos/ext2).
|
||||
|
||||
Reference in New Issue
Block a user