mirror of
https://git.launchpad.net/livecd-rootfs
synced 2025-05-05 07:41:31 +00:00
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.
This commit is contained in:
parent
5a6f68a1a9
commit
cd15b730f7
@ -273,6 +273,10 @@ replace_grub_root_with_label() {
|
|||||||
# Instead, we want grub to use the cloudimg-rootfs labelled disk
|
# Instead, we want grub to use the cloudimg-rootfs labelled disk
|
||||||
CHROOT_ROOT="$1"
|
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," \
|
sed -i -e "s,root=[^ ]\+,root=LABEL=cloudimg-rootfs," \
|
||||||
"$CHROOT_ROOT/boot/grub/grub.cfg"
|
"$CHROOT_ROOT/boot/grub/grub.cfg"
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
. config/functions
|
. config/functions
|
||||||
|
|
||||||
|
. /build/config/binary
|
||||||
|
|
||||||
BOOTPART_START=
|
BOOTPART_START=
|
||||||
BOOTPART_END=
|
BOOTPART_END=
|
||||||
BOOT_MOUNTPOINT=
|
BOOT_MOUNTPOINT=
|
||||||
@ -64,6 +66,8 @@ create_empty_partition "${disk_image}" "$ROOTPART" "$ROOTPART_START" -1 ext2 "$R
|
|||||||
|
|
||||||
mount_image "${disk_image}" "$ROOTPART"
|
mount_image "${disk_image}" "$ROOTPART"
|
||||||
|
|
||||||
|
partuuid=$(blkid -s PARTUUID -o value "$rootfs_dev_mapper")
|
||||||
|
|
||||||
# Copy the chroot in to the disk
|
# Copy the chroot in to the disk
|
||||||
make_ext4_partition "${rootfs_dev_mapper}"
|
make_ext4_partition "${rootfs_dev_mapper}"
|
||||||
mkdir mountpoint
|
mkdir mountpoint
|
||||||
@ -111,6 +115,25 @@ if [ "${should_install_grub}" -eq 1 ]; then
|
|||||||
${loop_device}
|
${loop_device}
|
||||||
|
|
||||||
rm mountpoint/tmp/device.map
|
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
|
fi
|
||||||
|
|
||||||
if [ "$ARCH" = "s390x" ]; then
|
if [ "$ARCH" = "s390x" ]; then
|
||||||
|
Loading…
x
Reference in New Issue
Block a user