Symptoms
- Kernel doesn't update. That is after restart, the system is still on the old kernel.
- Changes to GRUB config aren't applied.
- Installing a new kernel isn't applying.
- bpool is missing due to not being imported.
Problem
This is caused by a change in the name of the disk device from time of installation to when the symptoms began. For example, if the disk where Ubuntu was installed was /dev/sda at the time of installation, then another disk was added, the first disk can become /dev/sdb. There Ubiquity installer version shipped with the Ubuntu 20.04 installation media uses the /dev/sdX names when creating the ZFS pools. That means rpool
and bpool
are created with vdevs /dev/sdaX
. Once those change post installation, the non-root pool cannot be imported because the original vdev ID no longer contains a ZFS pool in it. That results in booting Ubuntu without the /boot filesystem used by GRUB mounted. Instead files written to /boot during kernel updates or installation end up in /boot in rpool
which isn't used by GRUB during boot. Et viola.