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
[email protected]
http://lists.gnu.org/mailman/listinfo/grub-devel