Force partuuid in /etc/default/grub.d/* instead of in /etc/default/grub

This prevents ucf questions upon installation of changed /etc/default/grub
This commit is contained in:
Balint Reczey 2017-09-27 18:54:09 -04:00
parent 0365171ce3
commit c5d01a6635
3 changed files with 5 additions and 3 deletions

View File

@ -276,7 +276,8 @@ replace_grub_root_with_label() {
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
if [ -f $CHROOT_ROOT/etc/default/grub.d/40-partuuid ] && \
grep -q ^GRUB_FORCE_PARTUUID= $CHROOT_ROOT/etc/default/grub.d/40-partuuid; then
return 0
fi
sed -i -e "s,root=[^ ]\+,root=LABEL=${fs_label}," \

View File

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

View File

@ -67,7 +67,7 @@ install_grub() {
# and 033-disk-image-uefi.binary. We want to fix this to not
# have initramfs-tools installed at all on these images.
echo "partuuid found for root device; omitting initrd"
echo "GRUB_FORCE_PARTUUID=$partuuid" >> mountpoint/etc/default/grub
echo "GRUB_FORCE_PARTUUID=$partuuid" >> mountpoint/etc/default/grub.d/40-force-partuuid
fi
chroot mountpoint apt-get -y update