Bug 2207732 - error when loading large (500MB) initrd on UEFI: can't allocate initrd
Summary: error when loading large (500MB) initrd on UEFI: can't allocate initrd
Keywords:
Status: NEW
Alias: None
Product: Red Hat Enterprise Linux 8
Classification: Red Hat
Component: grub2
Version: 8.7
Hardware: x86_64
OS: Linux
high
urgent
Target Milestone: rc
: ---
Assignee: Bootloader engineering team
QA Contact: Release Test Team
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2023-05-16 16:58 UTC by Pavel Cahyna
Modified: 2023-08-08 12:51 UTC (History)
6 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed:
Type: Bug
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker RHELPLAN-157404 0 None None None 2023-05-16 16:58:38 UTC
Red Hat Knowledge Base (Solution) 7008085 0 None None None 2023-06-30 06:43:31 UTC

Description Pavel Cahyna 2023-05-16 16:58:14 UTC
Description of problem:

When I try to boot with a large (499342536 B) initrd on UEFI, Grub prints the error "can't allocate initrd" and the kernel then panics (it can't find root)

Version-Release number of selected component (if applicable):
1:2.02-142.el8_7.3

How reproducible:
Easily at least on a HP ProLiant DL180 Gen9 with a large initrd (I can provide one) and console access

Steps to Reproduce:
1. boot to the GRUB prompt
2. linux /rear/EFI/BOOT/kernel console=ttyS0,115200
3. initrd /rear/EFI/BOOT/initrd.cgz 

Actual results:
error: ../../grub-core/loader/i386/efi/linux.c:158:can't allocate initrd.

Expected results:
initrd gets loaded and I can boot

Additional info:
A similar bug was reported as bz2048433 and now it looks that it has reappeared.
I tried grub2-2.02-121.el8, works fine, so it is a regression.

Memory information from EFI shell

Shell> memmap
Type       Start            End              # Pages          Attributes
BS_Code    0000000000000000-0000000000000FFF 0000000000000001 000000000000000F
Available  0000000000001000-0000000000057FFF 0000000000000057 000000000000000F
BS_Code    0000000000058000-0000000000092FFF 000000000000003B 000000000000000F
BS_Data    0000000000093000-0000000000093FFF 0000000000000001 000000000000000F
BS_Code    0000000000094000-000000000009FFFF 000000000000000C 000000000000000F
Available  0000000000100000-0000000007FFFFFF 0000000000007F00 000000000000000F
BS_Code    0000000008000000-000000000FFFFFFF 0000000000008000 000000000000000F
Available  0000000010000000-000000003ECFFFFF 000000000002ED00 000000000000000F
BS_Data    000000003ED00000-000000003ED7FFFF 0000000000000080 000000000000000F
Available  000000003ED80000-000000005A6A0FFF 000000000001B921 000000000000000F
Reserved   000000005A6A1000-000000005B4A0FFF 0000000000000E00 000000000000000F
BS_Data    000000005B4A1000-000000006ECFAFFF 000000000001385A 000000000000000F
BS_Code    000000006ECFB000-000000006ECFBFFF 0000000000000001 000000000000000F
Available  000000006ECFC000-0000000070CD1FFF 0000000000001FD6 000000000000000F
BS_Data    0000000070CD2000-0000000070EBEFFF 00000000000001ED 000000000000000F
Available  0000000070EBF000-000000007100BFFF 000000000000014D 000000000000000F
BS_Data    000000007100C000-0000000071047FFF 000000000000003C 000000000000000F
Available  0000000071048000-0000000071055FFF 000000000000000E 000000000000000F
BS_Data    0000000071056000-0000000071072FFF 000000000000001D 000000000000000F
Available  0000000071073000-0000000071075FFF 0000000000000003 000000000000000F
BS_Data    0000000071076000-000000007107CFFF 0000000000000007 000000000000000F
Available  000000007107D000-000000007107FFFF 0000000000000003 000000000000000F
BS_Data    0000000071080000-0000000076CFEFFF 0000000000005C7F 000000000000000F
Available  0000000076CFF000-00000000772D1FFF 00000000000005D3 000000000000000F
LoaderCode 00000000772D2000-00000000774FEFFF 000000000000022D 000000000000000F
Available  00000000774FF000-00000000777ECFFF 00000000000002EE 000000000000000F
BS_Code    00000000777ED000-00000000784FEFFF 0000000000000D12 000000000000000F
RT_Data    00000000784FF000-00000000788FEFFF 0000000000000400 800000000000000F
RT_Code    00000000788FF000-00000000790FEFFF 0000000000000800 800000000000000F
Reserved   00000000790FF000-00000000791FEFFF 0000000000000100 000000000000000F
ACPI_NVS   00000000791FF000-000000007B5FEFFF 0000000000002400 000000000000000F
ACPI_Recl  000000007B5FF000-000000007B7FEFFF 0000000000000200 000000000000000F
BS_Data    000000007B7FF000-000000007B7FFFFF 0000000000000001 000000000000000F
Available  0000000100000000-000000047FFFFFFF 0000000000380000 000000000000000F
MMIO       0000000080000000-000000008FFFFFFF 0000000000010000 8000000000000000
 
  Reserved  :          3,840 Pages (15,728,640 Bytes)
  LoaderCode:            557 Pages (2,281,472 Bytes)
  LoaderData:              0 Pages (0 Bytes)
  BS_Code   :         36,187 Pages (148,221,952 Bytes)
  BS_Data   :        104,360 Pages (427,458,560 Bytes)
  RT_Code   :          2,048 Pages (8,388,608 Bytes)
  RT_Data   :          1,024 Pages (4,194,304 Bytes)
  ACPI_Recl :            512 Pages (2,097,152 Bytes)
  ACPI_NVS  :          9,216 Pages (37,748,736 Bytes)
  MMIO  es (0 Bytes)
  PalCode   :              0 Pages (0 Bytes)
  Available :      4,018,032 Pages (16,457,859,072 Bytes)
  Persistent:              0 Pages (0 Bytes)
              -------------- 
Total Memory:         16,296 MB (17,088,249,856 Bytes)
Shell>    :         65,536 Pages (268,435,456 Bytes)
  MMIO_Port :              0 Pag

memory information from GRUB2 1:2.02-142.el8_7.3

grub> lsefimmap      
Type      Physical start  - end             #Pages        Size Attributes
BS-code   0000000000000000-0000000000000fff 00000001      4KiB UC WC WT WB
conv-mem  0000000000001000-0000000000057fff 00000057    348KiB UC WC WT WB
BS-code   0000000000058000-0000000000092fff 0000003b    236KiB UC WC WT WB
BS-data   0000000000093000-0000000000093fff 00000001      4KiB UC WC WT WB
BS-code   0000000000094000-000000000009ffff 0000000c     48KiB UC WC WT WB
conv-mem  0000000000100000-0000000007ffffff 00007f00    127MiB UC WC WT WB
BS-code   0000000008000000-000000000fffffff 00008000    128MiB UC WC WT WB
conv-mem  0000000010000000-0000000029932fff 00019933 419020KiB UC WC WT WB
ldr-code  0000000029933000-000000003ecfffff 000153cd 347956KiB UC WC WT WB
BS-data   000000003ed00000-000000003ed7ffff 00000080    512KiB UC WC WT WB
conv-mem  000000003ed80000-000000005a6a0fff 0001b921 451716KiB UC WC WT WB
reserved  000000005a6a1000-000000005b4a0fff 00000e00     14MiB UC WC WT WB
BS-data   000000005b4a1000-000000006ecfafff 0001385a 319848KiB UC WC WT WB
BS-code   000000006ecfb000-000000006ecfbfff 00000001      4KiB UC WC WT WB
conv-mem  000000006ecfc000-000000007114efff 00002453  37196KiB UC WC WT WB
BS-data   000000007114f000-0000000071524fff 000003d6   3928KiB UC WC WT WB
conv-mem  0000000071525000-0000000071535fff 00000011     68KiB UC WC WT WB
BS-data   0000000071536000-000000007156dfff 00000038    224KiB UC WC WT WB
conv-mem  000000007156e000-000000007156ffff 00000002      8KiB UC WC WT WB
BS-data   0000000071570000-0000000071572fff 00000003     12KiB UC WC WT WB
conv-mem  0000000071573000-0000000071573fff 00000001      4KiB UC WC WT WB
BS-data   0000000071574000-0000000071582fff 0000000f     60KiB UC WC WT WB
conv-mem  0000000071583000-0000000071585fff 00000003     12KiB UC WC WT WB
BS-data   0000000071586000-0000000071591fff 0000000c     48KiB UC WC WT WB
conv-mem  0000000071592000-0000000071592fff 00000001      4KiB UC WC WT WB
BS-data   0000000071593000-0000000071f1dfff 0000098b   9772KiB UC WC WT WB
conv-mem  0000000071f1e000-0000000071f1efff 00000001      4KiB UC WC WT WB
BS-data   0000000071f1f000-0000000071f33fff 00000015     84KiB UC WC WT WB
conv-mem  0000000071f34000-0000000071f34fff 00000001      4KiB UC WC WT WB
BS-data   0000000071f35000-0000000071f35fff 00000001      4KiB UC WC WT WB
conv-mem  0000000071f36000-0000000071f36fff 00000001      4KiB UC WC WT WB
BS-data   0000000071f37000-0000000076cfefff 00004dc8  79648KiB UC WC WT WB
conv-mem  0000000076cff000-0000000076edbfff 000001dd   1908KiB UC WC WT WB
ldr-data  0000000076edc000-00000000770fcfff 00000221   2180KiB UC WC WT WB
conv-mem  00000000770fd000-00000000771dcfff 000000e0    896KiB UC WC WT WB
ldr-code  00000000771dd000-00000000774fefff 00000322   3208KiB UC WC WT WB
conv-mem  00000000774ff000-00000000777ecfff 000002ee   3000KiB UC WC WT WB
BS-code   00000000777ed000-00000000784fefff 00000d12  13384KiB UC WC WT WB
RT-data   00000000784ff000-00000000788fefff 00000400      4MiB RT UC WC WT WB
RT-code   00000000788ff000-00000000790fefff 00000800      8MiB RT UC WC WT WB
reserved  00000000790ff000-00000000791fefff 00000100      1MiB UC WC WT WB
ACPI-nvs  00000000791ff000-000000007b5fefff 00002400     36MiB UC WC WT WB
ACPI-rec  000000007b5ff000-000000007b7fefff 00000200      2MiB UC WC WT WB
BS-data   000000007b7ff000-000000007b7fffff 00000001      4KiB UC WC WT WB
conv-mem  0000000100000000-000000047fffffff 00380000     14GiB UC WC WT WB
MMIO      0000000080000000-000000008fffffff 00010000    256MiB RT


memory information from grub2-2.02-121.el8 (good)

grub> lsefimmap
Type      Physical start  - end             #Pages        Size Attributes
BS-code   0000000000000000-0000000000000fff 00000001      4KiB UC WC WT WB
conv-mem  0000000000001000-0000000000057fff 00000057    348KiB UC WC WT WB
BS-code   0000000000058000-0000000000092fff 0000003b    236KiB UC WC WT WB
BS-data   0000000000093000-0000000000093fff 00000001      4KiB UC WC WT WB
BS-code   0000000000094000-000000000009ffff 0000000c     48KiB UC WC WT WB
conv-mem  0000000000100000-0000000007ffffff 00007f00    127MiB UC WC WT WB
BS-code   0000000008000000-000000000fffffff 00008000    128MiB UC WC WT WB
conv-mem  0000000010000000-0000000029a51fff 00019a52 420168KiB UC WC WT WB
ldr-code  0000000029a52000-000000003ecfffff 000152ae 346808KiB UC WC WT WB
BS-data   000000003ed00000-000000003ed7ffff 00000080    512KiB UC WC WT WB
conv-mem  000000003ed80000-000000004a009fff 0000b28a 182824KiB UC WC WT WB
ldr-code  000000004a00a000-000000005a6a0fff 00010697 268892KiB UC WC WT WB
reserved  000000005a6a1000-000000005b4a0fff 00000e00     14MiB UC WC WT WB
BS-data   000000005b4a1000-000000006ecfafff 0001385a 319848KiB UC WC WT WB
BS-code   000000006ecfb000-000000006ecfbfff 00000001      4KiB UC WC WT WB
conv-mem  000000006ecfc000-0000000070cd1fff 00001fd6  32600KiB UC WC WT WB
BS-data   0000000070cd2000-0000000070ebefff 000001ed   1972KiB UC WC WT WB
conv-mem  0000000070ebf000-0000000071098fff 000001da   1896KiB UC WC WT WB
BS-data   0000000071099000-000000007109bfff 00000003     12KiB UC WC WT WB
conv-mem  000000007109c000-00000000710abfff 00000010     64KiB UC WC WT WB
BS-data   00000000710ac000-0000000071409fff 0000035e   3448KiB UC WC WT WB
conv-mem  000000007140a000-000000007141ffff 00000016     88KiB UC WC WT WB
BS-data   0000000071420000-0000000071422fff 00000003     12KiB UC WC WT WB
conv-mem  0000000071423000-0000000071426fff 00000004     16KiB UC WC WT WB
BS-data   0000000071427000-00000000714f6fff 000000d0    832KiB UC WC WT WB
conv-mem  00000000714f7000-00000000714f9fff 00000003     12KiB UC WC WT WB
BS-data   00000000714fa000-0000000071504fff 0000000b     44KiB UC WC WT WB
conv-mem  0000000071505000-0000000071506fff 00000002      8KiB UC WC WT WB
BS-data   0000000071507000-0000000071507fff 00000001      4KiB UC WC WT WB
conv-mem  0000000071508000-0000000071508fff 00000001      4KiB UC WC WT WB
BS-data   0000000071509000-0000000076cfefff 000057f6  90072KiB UC WC WT WB
conv-mem  0000000076cff000-00000000770f7fff 000003f9   4068KiB UC WC WT WB
ldr-data  00000000770f8000-00000000770f8fff 00000001      4KiB UC WC WT WB
conv-mem  00000000770f9000-00000000774befff 000003c6   3864KiB UC WC WT WB
ldr-code  00000000774bf000-00000000774fefff 00000040    256KiB UC WC WT WB
conv-mem  00000000774ff000-00000000777ecfff 000002ee   3000KiB UC WC WT WB
BS-code   00000000777ed000-00000000784fefff 00000d12  13384KiB UC WC WT WB
RT-data   00000000784ff000-00000000788fefff 00000400      4MiB RT UC WC WT WB
RT-code   00000000788ff000-00000000790fefff 00000800      8MiB RT UC WC WT WB
reserved  00000000790ff000-00000000791fefff 00000100      1MiB UC WC WT WB
ACPI-nvs  00000000791ff000-000000007b5fefff 00002400     36MiB UC WC WT WB
ACPI-rec  000000007b5ff000-000000007b7fefff 00000200      2MiB UC WC WT WB
BS-data   000000007b7ff000-000000007b7fffff 00000001      4KiB UC WC WT WB
conv-mem  0000000100000000-000000047fffffff 00380000     14GiB UC WC WT WB
MMIO      0000000080000000-000000008fffffff 00010000    256MiB RT

Comment 5 Renaud Métrich 2023-06-30 06:38:40 UTC
The real root cause is ReaR embeds all firmware files by default, which causes the initrd.cgz file to be huge.
And usually this is not needed at all, because customers run pretty standard hardware: we don't support wifi in ReaR, don't require graphics, etc.


Note You need to log in before you can comment on or make changes to this bug.