Merge lp:~vorlon/livecd-rootfs/grub-diversions

ubuntu/artful
Steve Langasek 7 years ago
commit f809512da8

5
debian/changelog vendored

@ -5,6 +5,11 @@ livecd-rootfs (2.466) UNRELEASED; urgency=medium
* move snap assertion handling into the generic build script (and, in * move snap assertion handling into the generic build script (and, in
the process, from the subiquity overlay to the base squashfs). the process, from the subiquity overlay to the base squashfs).
* add ubuntu-mate to the set of projects we add snap model assertions to. * add ubuntu-mate to the set of projects we add snap model assertions to.
* Factor out grub-related diversions and use them consistently, so we
don't end up with wrong os-probe output in our grub.cfg.
* Fix the force-partuuid handling to create the file under
/etc/default/grub.d/ with a .cfg extension as grub expects; it's unclear
how this ever worked without.
-- Steve Langasek <steve.langasek@ubuntu.com> Wed, 04 Oct 2017 22:57:11 -0700 -- Steve Langasek <steve.langasek@ubuntu.com> Wed, 04 Oct 2017 22:57:11 -0700

@ -277,9 +277,38 @@ replace_grub_root_with_label() {
# If boot by partuuid has been requested, don't override. # If boot by partuuid has been requested, don't override.
if [ -f $CHROOT_ROOT/etc/default/grub.d/40-partuuid ] && \ if [ -f $CHROOT_ROOT/etc/default/grub.d/40-partuuid ] && \
grep -q ^GRUB_FORCE_PARTUUID= $CHROOT_ROOT/etc/default/grub.d/40-partuuid; then grep -q ^GRUB_FORCE_PARTUUID= $CHROOT_ROOT/etc/default/grub.d/40-partuuid.cfg; then
return 0 return 0
fi fi
sed -i -e "s,root=[^ ]\+,root=LABEL=${fs_label}," \ sed -i -e "s,root=[^ ]\+,root=LABEL=${fs_label}," \
"$CHROOT_ROOT/boot/grub/grub.cfg" "$CHROOT_ROOT/boot/grub/grub.cfg"
} }
# When running update-grub in a chroot on a build host, we don't want it to
# probe for disks or probe for other installed OSes. Extract common
# diversion wrappers, so this isn't reinvented differently for each image.
divert_grub() {
CHROOT_ROOT="$1"
chroot "$CHROOT_ROOT" dpkg-divert --local \
--rename /usr/sbin/grub-probe
chroot "$CHROOT_ROOT" touch /usr/sbin/grub-probe
chroot "$CHROOT_ROOT" chmod +x /usr/sbin/grub-probe
chroot "$CHROOT_ROOT" dpkg-divert --local \
--divert /etc/grub.d/30_os-prober.dpkg-divert \
--rename /etc/grub.d/30_os-prober
}
undivert_grub() {
CHROOT_ROOT="$1"
chroot "$CHROOT_ROOT" rm /usr/sbin/grub-probe
chroot "$CHROOT_ROOT" dpkg-divert --remove --local \
--rename /usr/sbin/grub-probe
chroot "$CHROOT_ROOT" dpkg-divert --remove --local \
--divert /etc/grub.d/30_os-prober.dpkg-divert \
--rename /etc/grub.d/30_os-prober
}

@ -124,8 +124,10 @@ if [ "${should_install_grub}" -eq 1 ]; then
if [ "${SUBPROJECT:-}" = minimized ] && [ -n "$partuuid" ]; then if [ "${SUBPROJECT:-}" = minimized ] && [ -n "$partuuid" ]; then
echo "partuuid found for root device; forcing it in Grub" echo "partuuid found for root device; forcing it in Grub"
mkdir -p mountpoint/etc/default/grub.d mkdir -p mountpoint/etc/default/grub.d
echo "GRUB_FORCE_PARTUUID=$partuuid" >> mountpoint/etc/default/grub.d/40-force-partuuid echo "GRUB_FORCE_PARTUUID=$partuuid" >> mountpoint/etc/default/grub.d/40-force-partuuid.cfg
divert_grub mountpoint
chroot mountpoint update-grub chroot mountpoint update-grub
undivert_grub mountpoint
fi fi
fi fi

@ -67,7 +67,7 @@ install_grub() {
# and 033-disk-image-uefi.binary. We want to fix this to not # and 033-disk-image-uefi.binary. We want to fix this to not
# have initramfs-tools installed at all on these images. # have initramfs-tools installed at all on these images.
echo "partuuid found for root device; omitting initrd" echo "partuuid found for root device; omitting initrd"
echo "GRUB_FORCE_PARTUUID=$partuuid" >> mountpoint/etc/default/grub.d/40-force-partuuid echo "GRUB_FORCE_PARTUUID=$partuuid" >> mountpoint/etc/default/grub.d/40-force-partuuid.cfg
fi fi
chroot mountpoint apt-get -y update chroot mountpoint apt-get -y update
@ -110,10 +110,10 @@ install_grub() {
chroot mountpoint grub-install --target=i386-pc "${loop_device}" chroot mountpoint grub-install --target=i386-pc "${loop_device}"
fi fi
chroot mountpoint dpkg-divert --local --rename /etc/grub.d/30_os-prober divert_grub mountpoint
chroot mountpoint update-grub chroot mountpoint update-grub
replace_grub_root_with_label mountpoint replace_grub_root_with_label mountpoint
chroot mountpoint dpkg-divert --remove --local --rename /etc/grub.d/30_os-prober undivert_grub mountpoint
chroot mountpoint apt-get -y clean chroot mountpoint apt-get -y clean

@ -52,10 +52,10 @@ EOF
--boot-directory=/boot \ --boot-directory=/boot \
--target=powerpc-ieee1275 --target=powerpc-ieee1275
chroot mountpoint dpkg-divert --local --rename /etc/grub.d/30_os-prober divert_grub mountpoint
chroot mountpoint update-grub chroot mountpoint update-grub
replace_grub_root_with_label mountpoint replace_grub_root_with_label mountpoint
chroot mountpoint dpkg-divert --remove --local --rename /etc/grub.d/30_os-prober undivert_grub mountpoint
umount_partition mountpoint umount_partition mountpoint
rmdir mountpoint rmdir mountpoint

Loading…
Cancel
Save