Produce a tarball of artifacts for netbooting during live-server build.

default-compat
Michael Hudson-Doyle 3 years ago
parent 31937f1a4d
commit fb589ecf00

1
debian/changelog vendored

@ -3,6 +3,7 @@ livecd-rootfs (2.765) UNRELEASED; urgency=medium
* auto/config: preserve germinate-output directory when removing config to
speed up local iteration.
* auto/config: Emit error message to stderr in _sanitize_passes.
* Produce a tarball of artifacts for netbooting during live-server build.
-- Michael Hudson-Doyle <michael.hudson@ubuntu.com> Tue, 24 May 2022 12:42:10 +1200

@ -874,6 +874,18 @@ case $PROJECT in
add_package ubuntu-server-minimal.ubuntu-server.installer.$flavor $kernel_metapkg
LIVE_PASSES="${LIVE_PASSES:+$LIVE_PASSES }ubuntu-server-minimal.ubuntu-server.installer.$flavor"
done
case $ARCH in
amd64)
add_package ubuntu-server-minimal.ubuntu-server.installer.generic.netboot grub-pc shim-signed pxelinux
;;
arm64)
add_package ubuntu-server-minimal.ubuntu-server.installer.generic.netboot shim-signed
;;
*)
add_package ubuntu-server-minimal.ubuntu-server.installer.generic.netboot
;;
esac
NO_SQUASHFS_PASSES=ubuntu-server-minimal.ubuntu-server.installer.generic.netboot
/usr/share/livecd-rootfs/checkout-translations-branch \
https://git.launchpad.net/subiquity po config/catalog-translations

@ -2,6 +2,9 @@
# vi: ts=4 noexpandtab
case $PASS in
ubuntu-server-minimal.ubuntu-server.installer.*.*)
exit 0
;;
ubuntu-server-minimal.ubuntu-server.installer.*)
flavor=${PASS##*.}
if [ "$flavor" = "generic" ]; then

@ -2,6 +2,9 @@
# vi: ts=4 noexpandtab
case $PASS in
ubuntu-server-minimal.ubuntu-server.installer.*.*)
exit 0
;;
ubuntu-server-minimal.ubuntu-server.installer.*)
flavor=${PASS##*.}
;;

@ -0,0 +1,117 @@
#!/bin/sh
case $PASS in
ubuntu-server-minimal.ubuntu-server.installer.generic.netboot)
;;
*)
exit 0
;;
esac
set -eux
flavor=generic
KERNEL=${PWD}/livecd.${PROJECT}.kernel-$flavor
INITRD=${PWD}/livecd.${PROJECT}.initrd-$flavor
mkdir -p tarball/$ARCH
case $ARCH in
s390x)
cp $INITRD tarball/$ARCH/initrd.ubuntu
cp $KERNEL tarball/$ARCH/kernel.ubuntu
;;
*)
cp $INITRD tarball/$ARCH/initrd
cp $KERNEL tarball/$ARCH/kernel
;;
esac
case $ARCH in
amd64)
mv chroot/usr/lib/PXELINUX/pxelinux.0 tarball/pxelinux.0
mv chroot/usr/lib/syslinux/modules/bios/ldlinux.c32 tarball/ldlinux.c32
mv chroot/usr/lib/shim/shimx64.efi tarball/bootx64.efi
mv chroot/usr/lib/grub/x86_64-efi-signed/grubnetx64.efi.signed tarball/grubx64.efi
mkdir tarball/x86_64-efi tarball/pxelinux.cfg
cat > tarball/x86_64-efi/grub.cfg.in <<EOF
menuentry "Install Ubuntu Server" {
set gfxpayload=keep
linux amd64/linux url=#ISOURL# ip=dhcp ---
initrd amd64/initrd
}
EOF
cat > tarball/pxelinux.cfg/default.in <<EOF
DEFAULT install
LABEL install
KERNEL amd64/linux
INITRD amd64/initrd
APPEND root=/dev/ram0 ramdisk_size=1500000 ip=dhcp url=#ISOURL# ---
EOF
;;
arm64)
mv chroot/usr/lib/shim/shimaa64.efi tarball/bootaa64.efi
mv chroot/usr/lib/grub/arm64-efi-signed/grubnetaa64.efi.signed tarball/grubaa64.efi
mkdir tarball/arm64-efi
cat > tarball/arm64-efi/grub.cfg.in <<EOF
menuentry "Install Ubuntu Server" {
set gfxpayload=keep
linux arm64/linux url=#ISOURL# ip=dhcp ---
initrd arm64/initrd
}
EOF
;;
s390x)
cat > tarball/s390x/ubuntu.exec <<EOF
/* REXX EXEC TO IPL Ubuntu for */
/* z Systems FROM THE VM READER. */
/* */
'CP CLOSE RDR'
'PURGE RDR ALL'
'SPOOL PUNCH * RDR'
'PUNCH KERNEL UBUNTU * (NOHEADER'
'PUNCH PARMFILE UBUNTU * (NOHEADER'
'PUNCH INITRD UBUNTU * (NOHEADER'
'CHANGE RDR ALL KEEP NOHOLD'
'CP IPL 000C CLEAR'
EOF
cat > tarball/s390x/ubuntu.ins <<EOF
* Ubuntu for IBM Z (default kernel)
kernel.ubuntu 0x00000000
initrd.off 0x0001040c
initrd.siz 0x00010414
parmfile.ubuntu 0x00010480
initrd.ubuntu 0x01000000
EOF
cat > tarball/s390x/parmfile.ubuntu.in <<EOF
url=#ISOURL# ---
EOF
perl -e "print pack('N', 0x1000000)" > tarball/s390x/initrd.off
perl -e "print pack('N', -s 'tarball/s390x/initrd.ubuntu')" > tarball/s390x/initrd.siz
cat > tarball/s390x-kvm.cfg.in <<EOF
DEFAULT install
LABEL install
KERNEL amd64/linux.ubuntu
INITRD amd64/initrd.ubuntu
APPEND ip=dhcp url=#ISOURL# ---
EOF
cat > tarball/dpm.cfg.in <<EOF
PROMPT 1
DEFAULT install
TIMEOUT 1
LABEL install
kernel=amd64/linux.ubuntu
initrd=amd64/initrd.ubuntu
append=ip=dhcp url=#ISOURL# ---
EOF
;;
esac
tar -C tarball -czf livecd.${PROJECT}.netboot.tar.gz .
rm -rf tarball
Loading…
Cancel
Save