On Jan 7, 2012 7:15 PM, "Andy Walls" <awalls at
md.metrocast.net> wrote:>
> Hi All,
>
> I have a system, that, ~80% of the time, fails to properly boot using
> pxelinux.0 as provided by RHEL 5.5 (syslinux 3.11, I think). The
> gripe, before the console messages stop, is a message that comes from
> the linux kernel complaining the compressed ram drive image is bad:
> "invalid compressed format (err=[small number])".
>
> I have two questions:
>
> 1. How should I go about debugging the problem to find the root cause of
> the initrd image corruption?
>
> I've examined the TFTP transfers with Wireshark; they appear OK.
> I have not tried a more modern pxelinux.0 yet.
How big are the kernel/initrd individually? How much RAM does the system
have? What tftpd? Some tftpds don't handle rollover and will refuse to
transmit or truncate.
> 2. Can anyone provide a description or simple diagram of what regions of
> system memory PXELINUX uses?
>
> From the linker file, I know that .earlybss starts at 0x800 (or 0x1000),
> and a number of sections directly follow it.
> I also realize some allocated regions are system specific, depending on
> what the BIOS returns in its E820 map.
> I am, not surprisingly, interested in the regions where PXELINUX stores
> the kernel and initramdisk images after TFTP-ing them over.
PXELINUX itself stays in the first 1 MiB. With regards to e820, I know the
current version does pay attention to these regions to fail loading.
linux.c32 will also take these into account to be more intelligent. I
believe in at least some scenarios, kernel/initrd start at 1 MiB. However,
3.11 is old enough I can't speak for its internals.
Any chance you could use meminfo.c32 (not in 3.11), screenshot or
transcibed?
I'd also advise boot testing with a more current version.
--
-Gene