[Bug 1900796] Re: Moonshot ProLiant m400 fails to boot "Wrong Ramdisk Image Format"
dann frazier
1900796 at bugs.launchpad.net
Mon Jan 25 16:31:26 UTC 2021
I've verified that an m400 remains bootable after upgrading to and
executing the focal-proposed and groovy-proposed versions of flash-
kernel.
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to flash-kernel in Ubuntu.
https://bugs.launchpad.net/bugs/1900796
Title:
Moonshot ProLiant m400 fails to boot "Wrong Ramdisk Image Format"
Status in ubuntu-kernel-tests:
New
Status in flash-kernel package in Ubuntu:
Fix Released
Status in plymouth package in Ubuntu:
Invalid
Status in flash-kernel source package in Xenial:
New
Status in plymouth source package in Xenial:
Invalid
Status in flash-kernel source package in Bionic:
Confirmed
Status in plymouth source package in Bionic:
Invalid
Status in flash-kernel source package in Focal:
Fix Committed
Status in plymouth source package in Focal:
Invalid
Status in flash-kernel source package in Groovy:
Fix Committed
Status in plymouth source package in Groovy:
Invalid
Status in flash-kernel source package in Hirsute:
Fix Released
Status in plymouth source package in Hirsute:
Invalid
Bug description:
[Impact]
Due to a firmware (u-boot) bug in reading ext4 filesystems extents, ProLiant m400 systems may fail to boot after installing a new kernel. This seems to be exacerbated when there is limited free space on the /boot filesystem. HPE is no longer providing new firmware fixes for this platform.
[Test Case]
Install a new kernel and reboot. When this bug is triggered, you'll see the following errors (emphasis <<>> mine):
## Executing script at 4004000000
11349894 bytes read in 312 ms (34.7 MiB/s)
<<invalid extent block>>
## Booting kernel from Legacy Image at 4002000000 ...
Image Name: kernel 5.8.0-25-generic
Created: 2020-10-21 5:26:34 UTC
Image Type: ARM Linux Kernel Image (gzip compressed)
Data Size: 11349830 Bytes = 10.8 MiB
Load Address: 00080000
Entry Point: 00080000
Verifying Checksum ... OK
Wrong Ramdisk Image Format
<<Ramdisk image is corrupt or invalid>>
[Where Problems Could Occur]
The workaround I've added here is to attempt to defrag the boot files so that the u-boot parsing bug is not triggered. This workaround is only activated for machines tagged with a certain property, and only the m400 server is tagged w/ that property. If there is a bug in detecting the platform or property, it could of course impact other platforms. Though it should be said that this code uses a well-established flash-kernel pattern. On the m400, the code only implements the workaround if /boot is on an ext4 filesystem (the Ubuntu default). If the filesystem detection code is buggy, we may unintentionally run e4defrag on a non-ext4 filesystem which could cause errors. Those errors currently only cause a warning to be printed - it does not fail the script. Users who miss this warning could still end up with an unbootable system if the workaround fails -- which it may, if the disk is very close to full. Long term, we should consider making this error fatal.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu-kernel-tests/+bug/1900796/+subscriptions
More information about the foundations-bugs
mailing list