In a cloud environment, we can rely on the kernel being able to boot the

root filesystem directly, without an initramfs; enable this when
building minimized.
core-include-dmsetup
Steve Langasek 7 years ago committed by Balint Reczey
parent 5a6f68a1a9
commit cd15b730f7

@ -273,6 +273,10 @@ replace_grub_root_with_label() {
# Instead, we want grub to use the cloudimg-rootfs labelled disk
CHROOT_ROOT="$1"
# If boot by partuuid has been requested, don't override.
if grep -q ^GRUB_FORCE_PARTUUID= $CHROOT_ROOT/etc/default/grub; then
return 0
fi
sed -i -e "s,root=[^ ]\+,root=LABEL=cloudimg-rootfs," \
"$CHROOT_ROOT/boot/grub/grub.cfg"
}

@ -2,6 +2,8 @@
. config/functions
. /build/config/binary
BOOTPART_START=
BOOTPART_END=
BOOT_MOUNTPOINT=
@ -64,6 +66,8 @@ create_empty_partition "${disk_image}" "$ROOTPART" "$ROOTPART_START" -1 ext2 "$R
mount_image "${disk_image}" "$ROOTPART"
partuuid=$(blkid -s PARTUUID -o value "$rootfs_dev_mapper")
# Copy the chroot in to the disk
make_ext4_partition "${rootfs_dev_mapper}"
mkdir mountpoint
@ -111,6 +115,25 @@ if [ "${should_install_grub}" -eq 1 ]; then
${loop_device}
rm mountpoint/tmp/device.map
if [ "$SUBPROJECT" = minimize ] && [ -n "$partuuid" ]; then
echo "partuuid found for root device; omitting initrd"
chroot mountpoint dpkg-divert --add \
--divert /usr/sbin/update-initramfs.divert-minimize \
--rename /usr/sbin/update-initramfs
cat > mountpoint/usr/sbin/update-initramfs <<'EOF'
#! /bin/sh
echo "initramfs disabled on this system. To reenable, run:" >&2
echo " sudo rm -f /usr/sbin/update-initramfs" >&2
echo " sudo dpkg-divert --remove --rename /usr/sbin/update-initramfs" >&2
exit 0
EOF
chmod +x mountpoint/usr/sbin/update-initramfs
rm -f mountpoint/boot/initrd.img-*
echo "GRUB_FORCE_PARTUUID=$partuuid" >> mountpoint/etc/default/grub
chroot mountpoint update-grub
fi
fi
if [ "$ARCH" = "s390x" ]; then

Loading…
Cancel
Save