[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Problems booting Linux via PXE

From: Omni Flux
Subject: Re: Problems booting Linux via PXE
Date: Wed, 25 Aug 2010 19:14:08 -0600
User-agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv: Gecko/20100802 Lightning/1.0b2 Thunderbird/3.1.2

I am able to reproduce this with GRUB2 1.97~beta3-1~bpo50+1 from Debian backports attempting to boot the current Debian Lenny net installer kernels (32-bit and 64-bit) on several machines.

A packet capture shows the tftp server sending block 3 of the kernel several times with no response from the client.

This did work with some version of grub2 and the D-I linux kernel in the past.

If I can make time, I will try to test with the current version in the repository later tonight.

Omni Flux

On 2010-08-25 13:02, Turner, Ian wrote:
I’m having some trouble using GRUB to boot Linux via PXE. It seems that
for some reason the call to the PXE BIOS fails when retrieving the third
packet of the Linux kernel. I don’t have this problem loading multiboot
kernels or GRUB modules. This is using GRUB 1.98.
I’ve seen the problem on all three servers where I’ve tested, which are
as follows:
- A Sun Fire X4100
- with four Dual Core AMD Opteron(tm) Processor 285 SE
- Running Intel Boot Agent GE 1.2.50
Intel Boot Agent PXE Base Code (PXE-2.1 build 086)
- A Sun Fire X4150
- with two Intel X5440 processors
- Running Intel Boot Agent GE 1.2.42
Intel Boot Agent PXE Base Code (PXE-2.1 build 085)
- A Dell PowerEdge R610
- With two Intel X5570 processors
- Running Broadcom NetXtreme II Ethernet Boot Agent v5.0.5
Broadcom UNDI PXE-2.1 v5.0.5
Broadcom Base Code PXE-2.1 v1.1.1
On the Sun servers, the relevant call to
grub_pxe_call(GRUB_PXENV_TFTP_READ) at fs/i386/pc/pxe.c:300 simply does
not return. On the Dell server, some dots (2-200) are printed to the
console at the time this call is placed, and sometimes the call does
return, but with a (invalid) status code of 65536. Other times the call
hangs after printing the dots.
Looking at loader/i386/linux.c, the grub_file_read() at line 638 works,
as does the one at line 698. It’s the third read, at line 891, which
creates the failure.
I should emphasize that the PXE code seems to work fine for everything
else. I am able to load dozens of GRUB modules, multiple configuration
files, and multiboot and linux16 kernels with no problem. It’s only the
bzImage that seems to create trouble, and only the third packet of that
image. It doesn’t seem to matter what kernel I use; at least, I see this
problem with RHEL kernels from 5.2 up to 5.5.
I hypothesize that something between linux.c line 698 and linux.c line
891 writes to a region of memory reserved by the PXE bios. Is there a
way to test this theory?
Has anyone else been able to make this work? Is there something simple
that I am missing? I would love to hear your thoughts. Also, if I should
take this over to grub-help or grub-bugs, let me know.
--Ian Turner

Grub-devel mailing list

reply via email to

[Prev in Thread] Current Thread [Next in Thread]