I have a Lenovo Thinkpad E16 which came with Ubuntu 22.04 pre-installed, along with a 22.04 recovery partition.
A couple of years ago it updated to 24.04 LTS without any trouble (it must have, because I don't remember doing the upgrade...).
Yesterday I upgraded to 26.04 LTS - the upgrade appeared to run ok (no major errors reported), but it completely failed to boot.
I am out of my depth with regard to modern boot systems with EFI, secureboot etc, so with a lot of help from Google Gemini, I got as far as the following diagnosis....before finally giving up and doing a clean install of 26.04 LTS, which worked fine....
Note to self - don't bother with upgrades, carry on with my previous policy of doing a clean install instead!
- Device: Lenovo ThinkPad E16
- Storage: 1 TB NVMe SSD (
/dev/nvme0n1) - Initial Setup: Factory OEM pre-installed Ubuntu 22.04 LTS, upgraded to 24.04 LTS, followed by an upgrade attempt to the 26.04 LTS cycle.
- Disk Layout: Partition 1 (
p1) as VFAT EFI, Partition 2 (p2) as the OEM Ubuntu 22.04 Recovery system, and Partition 3 (p3) as the main Ubuntu root (/) filesystem.
- GRUB Panic: The bootloader consistently threw an immediate
initramfs not founderror. - GRUB CLI Crash: Attempting to manually execute kernel boot parameters from the GRUB prompt (
grub>) resulted in an immediate heap corruption crash:alloc magic is broken at 0x52864020: 0, or halted witherror: cannot load image. - Firmware Safety Rejection: Attempting to force-boot via the physical device identifier in the Lenovo
F12BIOS menu triggered a hard stop firmware failure:failed to boot both main and fallback entries.
- Chroot Attempt (Partial Success): The system root (
p3) and EFI (p1) were mounted under/mnt. Virtual file systems (/dev,/proc,/sys,/run) were bound. - GRUB Reinstallation: Inside the
chrootsandbox,grub-installandupdate-grubcompleted successfully with zero errors. The kernel andinitrdfiles were verified to physically exist on disk with valid file sizes. - The Block Disconnect: Despite successful file writes inside the chroot, the resulting binaries could not be read at actual boot. Testing the configurations via
grub-emuinside the Live environment consistently triggered graphical freeze dialogues and returnederror: no such device <uuid>, proving that the bootloader parsing logic was entirely breaking when mapping the underlying block device hardware. - GParted Warning: GParted explicitly flagged partitions
p1andp2with a warning stating it was “unable to read the contents of this file system.”
- Complete Metadata Invisibility (
blkidfailure): While tools likepartedandfile -scould see/dev/nvme0n1p3as a rawext4volume block, runningblkidcompletely failed to register a UUID or file format signature for the partition. - NVRAM Purge (No Effect): Utilizing
efibootmgrto successfully delete old cached boot records, remountingefivarfs, and cleanly rewriting a brand-new boot path toshimx64.efifailed to resolve the issue. - Lenovo Firmware Cleared (No Effect): Toggling Secure Boot off, clearing all cryptographic Secure Boot Keys in the BIOS, restoring default platform factory keys, and performing a physical Embedded Controller (EC) hardware pinhole reset failed to get the firmware to recognize the partition state.
ext4 filesystem features (specifically metadata_csum_seed and orphan_file via updated e2fsprogs parameters) to the main system partition (p3).- The Regression: These newly activated features broke backward compatibility with the boot infrastructure.
- The Result: Because the partition metadata layout changed, the GRUB bootloader encountered unparseable header structures at boot time, throwing memory pointer pokes (
alloc magic is broken). Furthermore, it introduced a severe tool pipeline regression where the partition identification layer (blkid) on the older recovery kernel could no longer map or resolve the partition's UUID, rendering standardchrootautomated recovery loops fundamentally unviable.