Moonshot ProLiant m400 fails to boot "Wrong Ramdisk Image Format"
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
ubuntu-kernel-tests |
New
|
Undecided
|
Unassigned | ||
flash-kernel (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Xenial |
New
|
Undecided
|
Unassigned | ||
Bionic |
Confirmed
|
Undecided
|
Unassigned | ||
Focal |
Fix Released
|
Undecided
|
Unassigned | ||
Groovy |
Fix Released
|
Undecided
|
Unassigned | ||
Hirsute |
Fix Released
|
Undecided
|
Unassigned | ||
plymouth (Ubuntu) |
Invalid
|
Undecided
|
Unassigned | ||
Xenial |
Invalid
|
Undecided
|
Unassigned | ||
Bionic |
Invalid
|
Undecided
|
Unassigned | ||
Focal |
Invalid
|
Undecided
|
Unassigned | ||
Groovy |
Invalid
|
Undecided
|
Unassigned | ||
Hirsute |
Invalid
|
Undecided
|
Unassigned |
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.
description: | updated |
description: | updated |
tags: | added: patch |
Changed in plymouth (Ubuntu Groovy): | |
status: | New → Invalid |
Changed in plymouth (Ubuntu Focal): | |
status: | New → Invalid |
Changed in plymouth (Ubuntu Bionic): | |
status: | New → Invalid |
Changed in plymouth (Ubuntu Xenial): | |
status: | New → Invalid |
Changed in flash-kernel (Ubuntu Groovy): | |
status: | New → Confirmed |
Changed in flash-kernel (Ubuntu Focal): | |
status: | New → Confirmed |
Changed in flash-kernel (Ubuntu Bionic): | |
status: | New → Confirmed |
description: | updated |
tags: |
added: verification-done verification-done-focal verification-done-groovy removed: verification-needed verification-needed-focal verification-needed-groovy |
There is no such issue on another ARM64 ThunderX node (starmie-kernel, with architecture set to arm64/generic on MAAS)
$ sudo apt install plymouth theme-ubuntu- text theme-ubuntu- text ports.ubuntu. com/ubuntu- ports focal-proposed/main arm64 plymouth- theme-ubuntu- text arm64 0.9.4git2020032 3-0ubuntu6. 1 [9148 B] ports.ubuntu. com/ubuntu- ports focal-proposed/main arm64 plymouth arm64 0.9.4git2020032 3-0ubuntu6. 1 [112 kB] theme-ubuntu- text_0. 9.4git20200323- 0ubuntu6. 1_arm64. deb ... theme-ubuntu- text (0.9.4git202003 23-0ubuntu6. 1) over (0.9.4git202003 23-0ubuntu6) ... 0.9.4git2020032 3-0ubuntu6. 1_arm64. deb ... 23-0ubuntu6. 1) over (0.9.4git202003 23-0ubuntu6) ... 23-0ubuntu6. 1) ... theme-ubuntu- text (0.9.4git202003 23-0ubuntu6. 1) ... img-5.8. 0-25-generic ast_dp501_ fw.bin for module ast
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
plymouth-
Suggested packages:
desktop-base plymouth-themes
The following packages will be upgraded:
plymouth plymouth-
2 upgraded, 0 newly installed, 0 to remove and 31 not upgraded.
Need to get 121 kB of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n]
Get:1 http://
Get:2 http://
Fetched 121 kB in 0s (318 kB/s)
(Reading database ... 112976 files and directories currently installed.)
Preparing to unpack .../plymouth-
Unpacking plymouth-
Preparing to unpack .../plymouth_
Unpacking plymouth (0.9.4git202003
Setting up plymouth (0.9.4git202003
update-initramfs: deferring update (trigger activated)
update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults
update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults
Setting up plymouth-
update-initramfs: deferring update (trigger activated)
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for systemd (245.4-4ubuntu3.2) ...
Processing triggers for initramfs-tools (0.136ubuntu6.3) ...
update-initramfs: Generating /boot/initrd.
W: Possible missing firmware /lib/firmware/
Unsupported platform on EFI system, doing nothing.