Merge branch 'revert/cpc/esp_on_boot' into ubuntu/master

ubuntu-cloud-minimal-tmp 2.899
Michael Hudson-Doyle 2 years ago
commit 448defa7f3

6
debian/changelog vendored

@ -1,3 +1,9 @@
livecd-rootfs (2.899) mantic; urgency=medium
* ubuntu-cpc: Revert mount ESP on /boot and bind mount /boot on /boot/efi
-- Gauthier Jolly <contact@gauthierjolly.com> Mon, 10 Jul 2023 12:01:18 +0200
livecd-rootfs (2.898) mantic; urgency=medium livecd-rootfs (2.898) mantic; urgency=medium
* Remove the catalog entry for the Ubuntu desktop minimal installation, * Remove the catalog entry for the Ubuntu desktop minimal installation,

@ -208,9 +208,8 @@ mount_disk_image() {
mount_partition "${rootfs_dev_mapper}" $mountpoint mount_partition "${rootfs_dev_mapper}" $mountpoint
local uefi_dev="${loop_device}p15" local uefi_dev="${loop_device}p15"
if [ -b ${uefi_dev} -a -e $mountpoint/boot ]; then if [ -b ${uefi_dev} -a -e $mountpoint/boot/efi ]; then
mount "${uefi_dev}" $mountpoint/boot mount "${uefi_dev}" $mountpoint/boot/efi
mount --bind $mountpoint/boot $mountpoint/boot/efi
fi fi
# This is needed to allow for certain operations # This is needed to allow for certain operations
@ -251,16 +250,11 @@ umount_disk_image() {
local uefi_dev="${loop_device}p15" local uefi_dev="${loop_device}p15"
if [ -e "$mountpoint/boot/efi" -a -b "$uefi_dev" ]; then if [ -e "$mountpoint/boot/efi" -a -b "$uefi_dev" ]; then
# zero fill free space in UEFI partition # zero fill free space in UEFI partition
cat < /dev/zero > "$mountpoint/boot/efi/bloat_file" 2> /dev/null || true cat < /dev/zero > "$mountpoint/boot/efi/bloat_file" 2> /dev/null || true
rm "$mountpoint/boot/efi/bloat_file" rm "$mountpoint/boot/efi/bloat_file"
mount --make-private "$mountpoint/boot/efi"
# unmount bind mount umount --detach-loop "$mountpoint/boot/efi"
umount "$mountpoint/boot/efi"
# unmount ESP
mount --make-private "$mountpoint/boot"
umount --detach-loop "$mountpoint/boot"
fi fi
if [ -e $mountpoint/usr/sbin/policy-rc.d ]; then if [ -e $mountpoint/usr/sbin/policy-rc.d ]; then

@ -12,8 +12,13 @@ esac
IMAGE_STR="# CLOUD_IMG: This file was created/modified by the Cloud Image build process" IMAGE_STR="# CLOUD_IMG: This file was created/modified by the Cloud Image build process"
FS_LABEL="cloudimg-rootfs" FS_LABEL="cloudimg-rootfs"
# 4G (4*1024**3) if [ "$ARCH" = "amd64" ]; then
IMAGE_SIZE=4294967296 IMAGE_SIZE=3758096384 # bump to 3.5G (3584*1024**2); Since Kinetic amd64 need more then the default 2.2G
fi
if [ "$ARCH" = "armhf" ]; then
IMAGE_SIZE=3758096384 # bump to 3.5G (3584*1024**2); Since Jammy armhf need more then the default 2.2G
fi
if [ "$ARCH" = "riscv64" ]; then if [ "$ARCH" = "riscv64" ]; then
IMAGE_SIZE=4831838208 # bump to 4.5G (4608*1024**2); initrd creation fails with "No space left" with 3.5G IMAGE_SIZE=4831838208 # bump to 4.5G (4608*1024**2); initrd creation fails with "No space left" with 3.5G
@ -29,14 +34,14 @@ create_partitions() {
case $ARCH in case $ARCH in
arm64|armhf) arm64|armhf)
sgdisk "${disk_image}" \ sgdisk "${disk_image}" \
--new=15:0:+2G \ --new=15:0:204800 \
--typecode=15:ef00 \ --typecode=15:ef00 \
--new=1: --new=1:
;; ;;
riscv64) riscv64)
sgdisk "${disk_image}" \ sgdisk "${disk_image}" \
--set-alignment=2 \ --set-alignment=2 \
--new=15::+2G \ --new=15::+106M \
--typecode=15:ef00 \ --typecode=15:ef00 \
--new=1:: \ --new=1:: \
--attributes=1:set:2 --attributes=1:set:2
@ -44,7 +49,7 @@ create_partitions() {
amd64) amd64)
sgdisk "${disk_image}" \ sgdisk "${disk_image}" \
--new=14::+4M \ --new=14::+4M \
--new=15::+2G \ --new=15::+106M \
--new=1:: --new=1::
sgdisk "${disk_image}" \ sgdisk "${disk_image}" \
-t 14:ef02 \ -t 14:ef02 \
@ -60,19 +65,11 @@ create_and_mount_uefi_partition() {
mountpoint="$1" mountpoint="$1"
mkfs.vfat -F 32 -n UEFI "${uefi_dev}" mkfs.vfat -F 32 -n UEFI "${uefi_dev}"
mkdir -p "${mountpoint}"/boot/ mkdir -p "${mountpoint}"/boot/efi
mount "${uefi_dev}" "$mountpoint"/boot/ mount "${uefi_dev}" "$mountpoint"/boot/efi
mkdir "$mountpoint/boot/efi" cat << EOF >> "mountpoint/etc/fstab"
mount --bind "$mountpoint/boot" "$mountpoint/boot/efi" LABEL=UEFI /boot/efi vfat umask=0077 0 1
}
configure_chroot() {
mountpoint="$1"
cat << EOF >> "$mountpoint"/etc/fstab
LABEL=UEFI /boot vfat umask=0077 0 1
/boot /boot/efi vfat umask=0077,bind 0 0
EOF EOF
} }
@ -80,8 +77,7 @@ install_grub() {
mkdir mountpoint mkdir mountpoint
mount_partition "${rootfs_dev_mapper}" mountpoint mount_partition "${rootfs_dev_mapper}" mountpoint
mount "${uefi_dev}" mountpoint/boot/ create_and_mount_uefi_partition mountpoint
mount --bind mountpoint/boot mountpoint/boot/efi
echo "(hd0) ${loop_device}" > mountpoint/tmp/device.map echo "(hd0) ${loop_device}" > mountpoint/tmp/device.map
mkdir -p mountpoint/etc/default/grub.d mkdir -p mountpoint/etc/default/grub.d
@ -162,26 +158,16 @@ install_grub() {
disk_image=binary/boot/disk-uefi.ext4 disk_image=binary/boot/disk-uefi.ext4
# create the disk
create_empty_disk_image "${disk_image}" create_empty_disk_image "${disk_image}"
create_partitions "${disk_image}" create_partitions "${disk_image}"
mount_image "${disk_image}" 1 mount_image "${disk_image}" 1
# create and mount the rootfs partition # Copy the chroot in to the disk
make_ext4_partition "${rootfs_dev_mapper}" make_ext4_partition "${rootfs_dev_mapper}"
mkdir mountpoint mkdir mountpoint
mount "${rootfs_dev_mapper}" mountpoint mount "${rootfs_dev_mapper}" mountpoint
cp -a chroot/* mountpoint/
# create and mount the ESP umount mountpoint
create_and_mount_uefi_partition mountpoint
# Copy the chroot into the disk
cp -a chroot/* mountpoint
configure_chroot mountpoint
# cleanup the mount
umount -R mountpoint
rmdir mountpoint rmdir mountpoint
install_grub install_grub

@ -124,21 +124,6 @@ fi
#### END COMMON ARCH FUNCTIONS #### END COMMON ARCH FUNCTIONS
# For everything except s390x, disable kernel and initramfs symlinks
case $arch in
# On s390x the sipl.conf is static right now with just two boot options.
s390x)
exit 0
;;
esac
find "${rootd}/boot" -type l -exec rm {} \;
kernel_img_conf="${rootd}/etc/kernel-img.conf"
if grep -q '^do_symlinks = ' "$kernel_img_conf" 2> /dev/null; then
sed -i 's/^do_symlinks = .*$/do_symlinks = no/g' "$kernel_img_conf"
else
echo "do_symlinks = no" >> "$kernel_img_conf"
fi
case $arch in case $arch in
# ARM, ppc, riscv64 and s390x images are special # ARM, ppc, riscv64 and s390x images are special

Loading…
Cancel
Save