Combine initrd and squashfs and unified boot
- one one initrd which also includes squashfs - same procedure for EFI and non-EFI
This commit is contained in:
parent
5623a9dd8c
commit
009bbb05d6
29
embed.ipxe
29
embed.ipxe
|
@ -12,7 +12,7 @@ imgtrust --permanent
|
||||||
# For the "focal" part of the URL string, in case that changes in the future.
|
# For the "focal" part of the URL string, in case that changes in the future.
|
||||||
set ubuntu-variant focal
|
set ubuntu-variant focal
|
||||||
|
|
||||||
goto get_platform
|
goto get_arch
|
||||||
|
|
||||||
|
|
||||||
#################
|
#################
|
||||||
|
@ -135,24 +135,6 @@ sleep 5
|
||||||
exit
|
exit
|
||||||
|
|
||||||
|
|
||||||
# set variables based on whether it's EFI or not
|
|
||||||
:get_platform
|
|
||||||
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
|
|
||||||
set extra_initrd initrd=squashfs.cpio
|
|
||||||
goto get_arch
|
|
||||||
|
|
||||||
# this sets different attributes for non-EFI (legacy PC) boot
|
|
||||||
:not_efi
|
|
||||||
set squashfs squashfs
|
|
||||||
clear extra_initrd
|
|
||||||
goto get_arch
|
|
||||||
|
|
||||||
|
|
||||||
# Get relevant CPU arch.
|
# Get relevant CPU arch.
|
||||||
:get_arch
|
:get_arch
|
||||||
iseq ${buildarch} arm32 && goto start_arm32 ||
|
iseq ${buildarch} arm32 && goto start_arm32 ||
|
||||||
|
@ -208,9 +190,6 @@ goto static_ip_boot_setup
|
||||||
# However, note that imgverify will fail if you refer to it as "/squashfs"
|
# However, note that imgverify will fail if you refer to it as "/squashfs"
|
||||||
# instead of "squashfs".
|
# instead of "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
|
|
||||||
|
|
||||||
# "--signer" validates against the subject common name field of the signing
|
# "--signer" validates against the subject common name field of the signing
|
||||||
# certificate. That signing cert must have both the digital signature key
|
# certificate. That signing cert must have both the digital signature key
|
||||||
# usage set and the code-signing key usage extension set.
|
# usage set and the code-signing key usage extension set.
|
||||||
|
@ -219,8 +198,8 @@ 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
|
# 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.
|
# using a custom CA that you import during build.
|
||||||
|
|
||||||
initrd http://images.sysdeploy.org/${ubuntu-variant}/${arch-info}/boot-initrd || goto try_next_card
|
initrd http://images.sysdeploy.org/${ubuntu-variant}/${arch-info}/initrd.cpio || 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
|
imgverify --signer images.sysdeploy.org boot-initrd http://images.sysdeploy.org/${ubuntu-variant}/${arch-info}/initrd.cpio.sig || goto error_handler
|
||||||
|
|
||||||
kernel http://images.sysdeploy.org/${ubuntu-variant}/${arch-info}/boot-kernel || goto try_next_card
|
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
|
imgverify --signer images.sysdeploy.org boot-kernel http://images.sysdeploy.org/${ubuntu-variant}/${arch-info}/boot-kernel.sig || goto error_handler
|
||||||
|
@ -233,7 +212,7 @@ echo ip-info ${ip-info}
|
||||||
|
|
||||||
sleep 1
|
sleep 1
|
||||||
|
|
||||||
boot boot-kernel initrd=boot-initrd ${extra_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
|
boot boot-kernel initrd=squashfs.cpio 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
|
# 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.
|
# will display as decimal digits. unit32 and string both display as hex.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user