OK, I think I've found the bug; there are two issues;
if [ "${#grubdevs_new[@]}" -eq 1 ] && [ -f "${grubdevs_new[0]}" ]; then # Currently UEFI can only be pointed to one system partition. If # for some reason multiple install locations are given only use the # first. efi_dev="${grubdevs_new[0]}" elif [ "${#grubdevs_new[@]}" -gt 1 ]; then error "Only one grub device supported on UEFI!" exit 1 else # If no storage configuration was given try to determine the system # partition. efi_dev=$(awk -v "MP=${mp}/boot/efi" '$2 == MP { print $1 }' /proc/mounts) fi The [ -f "${grubdevs_new[0]}" ] is checking if the target disk/partition is a file. This fails as they are block devices; the check should be [ -b "${grubdevs_new[0]}" ]. Because this fails, we fall into the else clause, which is able to figure out from /proc/mounts that the efi_dev is /dev/sda1. Now, further down when we convert the efi_dev into the disk and partition we run this code # The partition number of block device name need to be determined here # so both getting the UEFI device from Curtin config and discovering it # work. efi_part_num=$(cat /sys/class/block/$(basename $efi_dev)/partition) efi_disk="/dev/$(lsblk -no pkname $efi_dev)" lsblk -no pkname $efi_dev returns an empty string; that's because 'pkname' is an unknown column in lsblk, rather the value should be 'kname'. This error results in efi_disk being set to "/dev/" This isn't found on non-shim based installs as efi_disk variable is not used unless we are creating our own efibootmgr entry. -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1862846 Title: Crash and failure installing focal To manage notifications about this bug go to: https://bugs.launchpad.net/subiquity/+bug/1862846/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs