You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
livecd-rootfs/live-build/ubuntu-server/hooks/03-kernel-metapkg.chroot_early

66 lines
2.4 KiB

#!/bin/bash -ex
# 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
kernel_metapkg=linux-generic
elif [ "$flavor" = "generic-hwe" ]; then
kernel_metapkg=linux-generic-hwe-$(lsb_release -sr)
elif [ "$flavor" = "generic-64k" ]; then
kernel_metapkg=linux-generic-64k
elif [ "$flavor" = "generic-64k-hwe" ]; then
kernel_metapkg=linux-generic-64k-hwe-$(lsb_release -sr)
elif [ "$flavor" = "intel-iotg" ]; then
kernel_metapkg=linux-intel-iotg
elif [ "$flavor" = "nvidia-tegra" ]; then
kernel_metapkg=linux-nvidia-tegra
elif [ "$flavor" = "nvidia-tegra-igx" ]; then
kernel_metapkg=linux-nvidia-tegra-igx
elif [ "$flavor" = "nvidia-tegra-jetson" ]; then
kernel_metapkg=linux-nvidia-tegra-jetson
else
echo "bogus flavor: $flavor"
exit 1
fi
;;
*)
exit 0
;;
esac
# Add a script to record which kernel meta-package to use and to set
# up the /media/filesystem mount that subiquity currently depends
# on. It would be cleaner to do this mount in a systemd mount unit but
# that doesn't work because we mask the cdrom mount to avoid strange
# issues with the handover from the initrd to systemd in the live
# session. In any case, subiquity will sooner or later not require
# this mount to be here at all and then we can delete these mount commands.
cat <<EOF > /etc/initramfs-tools/scripts/init-bottom/live-server
#!/bin/sh
case \$1 in
prereqs) exit 0;;
esac
echo ${kernel_metapkg} > /run/kernel-meta-package
mkdir -p \${rootmnt}/media/filesystem \${rootmnt}/media/full \${rootmnt}/media/minimal
mount -o ro -t squashfs \${rootmnt}/cdrom/casper/ubuntu-server-minimal.squashfs \${rootmnt}/media/minimal
mount -o ro -t squashfs \${rootmnt}/cdrom/casper/ubuntu-server-minimal.ubuntu-server.squashfs \${rootmnt}/media/full
mount -o ro,lowerdir=\${rootmnt}/media/full:\${rootmnt}/media/minimal -t overlay overlay \${rootmnt}/media/filesystem
EOF
chmod +x /etc/initramfs-tools/scripts/init-bottom/live-server
cat <<EOF > /etc/initramfs-tools/conf.d/casperize.conf
export CASPER_GENERATE_UUID=1
EOF
cat <<EOF > /etc/initramfs-tools/conf.d/default-layer.conf
LAYERFS_PATH=${PASS}.squashfs
EOF