initrd not loaded with > 4 GB and PAE kernel

Mikkel L. Ellertson mikkel at infinity-ltd.com
Fri Dec 15 00:41:50 UTC 2006


Diego Santa Cruz wrote:
>> -----Original Message-----
>> From: fedora-list-bounces at redhat.com [mailto:fedora-list-
>> bounces at redhat.com] On Behalf Of Mikkel L. Ellertson
>> Sent: Wednesday, December 06, 2006 5:43 PM
>> To: For users of Fedora
>> Subject: Re: initrd not loaded with > 4 GB and PAE kernel
>>
>> Diego Santa Cruz wrote:
>>> Hello,
>>>
>>> I have installed the FC6 kernel 2.6.18-1.2849.fc6PAE on a machine
> with 4
>>> GB of memory (of which the upper 2 GB are mapped by the BIOS above
> the 4
>>> GB barrier).
>>>
>>> The kernel is not booting since it does not find the initrd and thus
>>> panics (cannot find init).
>>>
>>> Passing the mem=4096M option to the kernel solves the problem, but
>>> limits the actual memory to 2 GB only.
>>>
>>> The BIOS-provided physical RAM map is:
>>>  BIOS-e820: 0000000000000000 - 000000000009ec00 (usable)
>>>  BIOS-e820: 000000000009ec00 - 00000000000a0000 (reserved)
>>>  BIOS-e820: 00000000000e4000 - 0000000000100000 (reserved)
>>>  BIOS-e820: 0000000000100000 - 000000007ffa0000 (usable)
>>>  BIOS-e820: 000000007ffa0000 - 000000007ffae000 (ACPI data)
>>>  BIOS-e820: 000000007ffae000 - 000000007ffe0000 (ACPI NVS)
>>>  BIOS-e820: 000000007ffe0000 - 0000000080000000 (reserved)
>>>  BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
>>>  BIOS-e820: 00000000ffb00000 - 0000000100000000 (reserved)
>>>  BIOS-e820: 0000000100000000 - 0000000180000000 (usable)
>>>
> [snip.]
>> It sounds like your BIOS is not passing the correct memory map to
>> the kernel. You may need to look at the memmap boot options. This
>> will let you pass the correct memory map to the kernel.
>>
>> You can also try the noapic and/or the nolapic options, and see if
>> they help.
>>
> 
> Thanks for the tips, but no success yet. The apic related options did
> not improve the situation. About the memmap option I do not know how
> should I build one. Any tips? The BIOS actually has a remapping option:
> without remapping only 3 GB are made available, but everything is below
> 4 GB, with remapping the 2 to 4 GB zone is reserved and the upper 2 GB
> are made available between 4 and 6. At least that is what the doc says.
> 
> Anyhow, I got a serial console set up and now I can see that the initrd
> is loaded as an initramfs without complaints.
> 
> The /dev/console and /init files are found on the initramfs, but the
> detected binary handler for init is binfmt-0000 (for which it attempts
> to load a module). I guess it should be the script handler, so I suspect
> that the contents of the /init file are somehow corrupted somewhere
> (zeroes are read as the magic number instead of #!). Any ideas on what
> might be going wrong?
> 
> I even tried to execute /bin/nash directly (using rdinit=/bin/nash) just
> to see if nash started, but that failed too.
> 
> Many thanks,
> 
> Diego
> 
> 
I don't think your problem is in the initrd. If it was, then using
mem=4096M would not let the system boot. It sounds more like at
least part of the initrd is being loaded into nonexistent memory.

Looking at kernel-parameters.txt from the kernel documentation, it
looks like you use memmap=exactmap and then using
memmap=nn[KMG]@ss[KMG], memmap=nn[KMG]#ss[KMG] and
memmap=nn[KMG]$ss[KMG] statements to specify the map. You may be
able to just get away with a memmap=nn[KMG]$ss[KMG] statement to
tell it not to use the area between the end of the first 2G chunk,
and the start of the second 2G chunk.

Mikkel
-- 

  Do not meddle in the affairs of dragons,
for thou art crunchy and taste good with Ketchup!




More information about the fedora-list mailing list