[Bug 1889556] Re: grub-install failure does not fail package upgrade (and does not roll back to matching modules)
Steve Langasek
1889556 at bugs.launchpad.net
Fri Jul 31 05:03:55 UTC 2020
Hello Robert, or anyone else affected,
Accepted grub2 into xenial-proposed. The package will build now and be
available at
https://launchpad.net/ubuntu/+source/grub2/2.02~beta2-36ubuntu3.27 in a
few hours, and then in the -proposed repository.
Please help us by testing this new package. See
https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how
to enable and use -proposed. Your feedback will aid us getting this
update out to other Ubuntu users.
If this package fixes the bug for you, please add a comment to this bug,
mentioning the version of the package you tested, what testing has been
performed on the package and change the tag from verification-needed-
xenial to verification-done-xenial. If it does not fix the bug for you,
please add a comment stating that, and change the tag to verification-
failed-xenial. In either case, without details of your testing we will
not be able to proceed.
Further information regarding the verification process can be found at
https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in
advance for helping!
N.B. The updated package will be released to -updates after the bug(s)
fixed by this package have been verified and the package has been in
-proposed for a minimum of 7 days.
** Changed in: grub2 (Ubuntu Xenial)
Status: Confirmed => Fix Committed
** Tags added: verification-needed-xenial
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to grub2 in Ubuntu.
https://bugs.launchpad.net/bugs/1889556
Title:
grub-install failure does not fail package upgrade (and does not roll
back to matching modules)
Status in grub2 package in Ubuntu:
Confirmed
Status in grub2 source package in Xenial:
Fix Committed
Status in grub2 source package in Bionic:
Fix Committed
Status in grub2 source package in Focal:
Fix Committed
Status in grub2 source package in Groovy:
Confirmed
Bug description:
[SRU Justification]
SRU regression triggered by latent misconfiguration of grub on the host system, leading to a failure to boot due to ABI mismatch between /boot/grub/i386-pc which is updated, and the grub image in the MBR which is not
[Test case]
1. Boot a system in BIOS mode.
2. Run sudo sed -i -e'/Name: grub-pc\/install_devices/,/Name/ s,Value: .*,Value: /dev/non-existent,' /var/cache/debconf/config.dat
3. Enable -proposed in apt sources.list.
4. Run sudo env DEBIAN_FRONTEND=noninteractive apt install grub-pc
5. Reboot
6. Confirm that the system boots successfully
7. Boot a system in UEFI mode.
8. Enable -proposed in apt sources.list.
9. Run sudo env DEBIAN_FRONTEND=noninteractive apt install grub-efi-amd64-signed
10. Confirm that the contents of /boot/efi/EFI/ubuntu have been updated with the current timestamp.
Failure to install new grub core to the specified device does not
correctly prevent upgrade to incompatible modules (LP: #1889509)
$ sudo debconf-get-selections |grep sda
grub-pc grub-pc/install_devices_disks_changed multiselect /dev/sda
grub-pc grub-pc/install_devices multiselect /dev/sda
$ mount|grep nvme
/dev/nvme0n1p1 on / type ext4 (rw,relatime,discard,data=ordered)
$ ls /dev/sda
ls: cannot access '/dev/sda': No such file or directory
$ sudo env DEBIAN_FRONTEND=noninteractive apt full-upgrade -y
...
Get:10 http://us-west-2.ec2.archive.ubuntu.com/ubuntu xenial-updates/main amd64 grub-pc-bin amd64 2.02~beta2-36ubuntu3.26 [891 kB]
...
Installing for i386-pc platform.
grub-install: error: cannot find a GRUB drive for /dev/sda. Check your device.map.
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.4.0-1111-aws
Found linux image: /boot/vmlinuz-4.4.0-1109-aws
Found initrd image: /boot/initrd.img-4.4.0-1109-aws
done
...
# update-grub failed during the install but the return code is 0
$ echo $?
0
# The package is installed without apparent error, but the instance will fail to reboot (LP: #1889509)
$ dpkg -l|grep grub-pc
ii grub-pc 2.02~beta2-36ubuntu3.26 amd64 GRand Unified Bootloader, version 2 (PC/BIOS version)
ii grub-pc-bin 2.02~beta2-36ubuntu3.26 amd64 GRand Unified Bootloader, version 2 (PC/BIOS binaries)
# If I reboot it will fail to boot:
Booting from Hard Disk 0...
error: symbol `grub_calloc' not found.
Entering rescue mode...
grub rescue> _
---
Xenial in AWS (us-west-2 ami-060d1be0dd4526759 built on 20200611)
The debconf for grub was not set to the correct device when cloud-init first ran (LP: #1877491) or when the fix for that was applied (LP: #1889555)
The fact that grub-install fails during the upgrade but does not fail the package install (and cause a rollback) means that how we have a mismatch between grub core and modules which breaks boot (LP: #1889509).
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1889556/+subscriptions
More information about the foundations-bugs
mailing list