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.
No comments:
Post a Comment