I think this is a firmware issue. Normally you should see something like:
288 bytes read in 34 ms (7.8 KiB/s)
## Executing script at 4004000000
10741547 bytes read in 323 ms (31.7 MiB/s) <- This is loading the kernel
64692535 bytes read in 1672 ms (36.9 MiB/s) <- This is loading the initramfs
## Booting kernel from Legacy Image at 4002000000 ...
Image Name: kernel 5.4.0-56-generic
Created: 2020-12-08 1:43:18 UTC
Image Type: ARM Linux Kernel Image (gzip compressed)
Data Size: 10741483 Bytes = 10.2 MiB
Load Address: 00080000
Entry Point: 00080000
Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 4005000000 ...
Image Name: ramdisk 5.4.0-56-generic
Created: 2020-12-08 1:43:18 UTC
Image Type: ARM Linux RAMDisk Image (uncompressed)
Data Size: 64692471 Bytes = 61.7 MiB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
## Flattened Device Tree blob at 4003000000
Booting using the fdt blob at 0x0000004003000000
Uncompressing Kernel Image ... OK
Loading Ramdisk to 4fec24d000, end 4feffff0f7 ... OK
Loading Device Tree to 0000004000078000, end 000000400007fa67 ... OK
But in your output - where we'd expect to see initramfs load size/rate, we instead see "invalid extent block". And then later:
Wrong Ramdisk Image Format
Ramdisk image is corrupt or invalid
I was able to reproduce this by installing bionic, upgrading to the 5.4-based HWE kernel, rebooting, then upgrading my HWE kernel from bionic-proposed. Possibly the interesting bit here is that I was running a 5.4-based ext4 when generating the new uInitrd. I was able to get it working by defragmenting the file:
Total/best extents 15/1
Average size per extent 2469 KB
Fragmentation score 1
[0-30 no problem: 31-55 a little bit fragmented: 56- needs defrag]
This file (/boot/uInitrd) does not need defragmentation.
Done.
$ sudo e4defrag /boot/uInitrd
e4defrag 1.44.1 (24-Mar-2018)
ext4 defragmentation for /boot/uInitrd
[1/1]/boot/uInitrd: 100% [ OK ]
Success: [1/1]
Since that is ext4-specific, a workaround might be to use an ext2/ext3 /boot. There is newer firmware available for m400s that we could try, but "An active warranty or support agreement covering Proliant servers must be linked to your HPE Support Center profile to access this BIOS.", so I can't access it :(
I think this is a firmware issue. Normally you should see something like:
288 bytes read in 34 ms (7.8 KiB/s)
## Executing script at 4004000000
10741547 bytes read in 323 ms (31.7 MiB/s) <- This is loading the kernel
64692535 bytes read in 1672 ms (36.9 MiB/s) <- This is loading the initramfs
## Booting kernel from Legacy Image at 4002000000 ...
Image Name: kernel 5.4.0-56-generic
Created: 2020-12-08 1:43:18 UTC
Image Type: ARM Linux Kernel Image (gzip compressed)
Data Size: 10741483 Bytes = 10.2 MiB
Load Address: 00080000
Entry Point: 00080000
Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 4005000000 ...
Image Name: ramdisk 5.4.0-56-generic
Created: 2020-12-08 1:43:18 UTC
Image Type: ARM Linux RAMDisk Image (uncompressed)
Data Size: 64692471 Bytes = 61.7 MiB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
## Flattened Device Tree blob at 4003000000
Booting using the fdt blob at 0x0000004003000000
Uncompressing Kernel Image ... OK
Loading Ramdisk to 4fec24d000, end 4feffff0f7 ... OK
Loading Device Tree to 0000004000078000, end 000000400007fa67 ... OK
But in your output - where we'd expect to see initramfs load size/rate, we instead see "invalid extent block". And then later:
Wrong Ramdisk Image Format
Ramdisk image is corrupt or invalid
This could be a u-boot bug, possibly fixed by this patch: /lists. denx.de/ pipermail/ u-boot/ 2014-January/ 170802. html
https:/
I was able to reproduce this by installing bionic, upgrading to the 5.4-based HWE kernel, rebooting, then upgrading my HWE kernel from bionic-proposed. Possibly the interesting bit here is that I was running a 5.4-based ext4 when generating the new uInitrd. I was able to get it working by defragmenting the file:
$ sudo e4defrag -c /boot/uInitrd
e4defrag 1.44.1 (24-Mar-2018)
<File> now/best size/ext
/boot/uInitrd 15/1 2469 KB
Total/best extents 15/1
Average size per extent 2469 KB
Fragmentation score 1
[0-30 no problem: 31-55 a little bit fragmented: 56- needs defrag]
This file (/boot/uInitrd) does not need defragmentation.
Done.
$ sudo e4defrag /boot/uInitrd
e4defrag 1.44.1 (24-Mar-2018)
ext4 defragmentation for /boot/uInitrd
[1/1]/boot/uInitrd: 100% [ OK ]
Success: [1/1]
Since that is ext4-specific, a workaround might be to use an ext2/ext3 /boot. There is newer firmware available for m400s that we could try, but "An active warranty or support agreement covering Proliant servers must be linked to your HPE Support Center profile to access this BIOS.", so I can't access it :(