Redesign EFI boot
- concatenating two gzipped cpio archives doesn't work, so we need to do it differently
This commit is contained in:
parent
3c694ab4f4
commit
33c4bfb58e
18
embed.ipxe
18
embed.ipxe
|
@ -142,16 +142,14 @@ iseq ${platform} efi && goto is_efi || goto not_efi
|
|||
# Attributes for EFI boot
|
||||
:is_efi
|
||||
# hack, see https://github.com/coreos/fedora-coreos-tracker/issues/390#issuecomment-588328137
|
||||
set squashfs squashfs.cpio.gz
|
||||
set initrd1 initrd=boot-initrd
|
||||
set initrd2 initrd=squashfs.cpio.gz
|
||||
clear squashfs
|
||||
set initrd initrd_squashfs.cpio.gz
|
||||
goto get_arch
|
||||
|
||||
# this sets different attributes for non-EFI (legacy PC) boot
|
||||
:not_efi
|
||||
set squashfs squashfs
|
||||
set initrd1 initrd=boot-initrd
|
||||
clear initrd2
|
||||
set initrd boot-initrd
|
||||
goto get_arch
|
||||
|
||||
|
||||
|
@ -210,6 +208,8 @@ goto static_ip_boot_setup
|
|||
# However, note that imgverify will fail if you refer to it as "/squashfs"
|
||||
# instead of "squashfs".
|
||||
|
||||
isset ${squashfs} || goto skip_squashfs
|
||||
|
||||
imgfetch http://images.sysdeploy.org/${ubuntu-variant}/${arch-info}/${squashfs} /${squashfs} || goto try_next_card
|
||||
imgverify --signer images.sysdeploy.org ${squashfs} http://images.sysdeploy.org/${ubuntu-variant}/${arch-info}/${squashfs}.sig || goto error_handler
|
||||
|
||||
|
@ -221,8 +221,10 @@ imgverify --signer images.sysdeploy.org ${squashfs} http://images.sysdeploy.org/
|
|||
# make sure you pick a common name with a FQDN you control, even if you're
|
||||
# using a custom CA that you import during build.
|
||||
|
||||
initrd http://images.sysdeploy.org/${ubuntu-variant}/${arch-info}/boot-initrd || goto try_next_card
|
||||
imgverify --signer images.sysdeploy.org boot-initrd http://images.sysdeploy.org/${ubuntu-variant}/${arch-info}/boot-initrd.sig || goto error_handler
|
||||
:skip_squashfs
|
||||
|
||||
initrd http://images.sysdeploy.org/${ubuntu-variant}/${arch-info}/${initrd} || goto try_next_card
|
||||
imgverify --signer images.sysdeploy.org boot-initrd http://images.sysdeploy.org/${ubuntu-variant}/${arch-info}/${initrd}.sig || goto error_handler
|
||||
|
||||
kernel http://images.sysdeploy.org/${ubuntu-variant}/${arch-info}/boot-kernel || goto try_next_card
|
||||
imgverify --signer images.sysdeploy.org boot-kernel http://images.sysdeploy.org/${ubuntu-variant}/${arch-info}/boot-kernel.sig || goto error_handler
|
||||
|
@ -235,7 +237,7 @@ echo ip-info ${ip-info}
|
|||
|
||||
sleep 1
|
||||
|
||||
boot boot-kernel ${initrd1} ${initrd2} rootfstype=squashfs root=/squashfs ip=${ip-info} overlayroot=tmpfs:recurse=0 systemd.clock-usec=${unixtime:int32}000000 ds=nocloud-net;s=https://cloud-init.sysdeploy.org/ || goto error_handler
|
||||
boot boot-kernel initrd=${initrd} rootfstype=squashfs root=/squashfs ip=${ip-info} overlayroot=tmpfs:recurse=0 systemd.clock-usec=${unixtime:int32}000000 ds=nocloud-net;s=https://cloud-init.sysdeploy.org/ || goto error_handler
|
||||
|
||||
# unixtime variable must be used with int32, because that's the only way it
|
||||
# will display as decimal digits. unit32 and string both display as hex.
|
||||
|
|
Loading…
Reference in New Issue
Block a user