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.
Cheers,
--Ian Turner
_______________________________________________
Grub-devel mailing list
address@hidden
http://lists.gnu.org/mailman/listinfo/grub-devel