[syslinux] tftp file size limit: pxelinux.0 vs. syslinux.efi

Keith Grider keith.grider at gmail.com
Wed Feb 22 08:45:21 PST 2017


>
> On 11/28/16 06:15, John Z. Bohach via Syslinux wrote:
> >* Hello,
> *> >* I am pxebooting a large linux kernel (with embedded initramfs) that is around
> *>* 250 MB in size.
> *> >* When booting a board in legacy BIOS mode, the pxelinux.0 executable is
> *>* transferred to the board and takes over, from where loading and booting this
> *>* large kernel works as expected.  Actually, better than expected, as no tftp
> *>* file size limit is incurred.
> *> >* If I change the BIOS settings to UEFI mode, then syslinux.efi is transferred
> *>* and takes over executing my menu, etc. just like pxelinux.0 did.  But then if
> *>* try to boot the same large linux kernel, board hangs during file transfer.
> *> >* I've run a network analyzer on the tftp transfer, and can see that the
> *>* transfer stops after 65535 blocks have been transferred, which is the usual
> *>* limit for tftp.  I understand that this is a tftp limit.
> *> >* However, this same limit is not encountered by pxelinux.0 and the entirety of
> *>* the large file makes it through just fine, and then proceeds to boot just fine.
> *> >* Can someone please confirm if there is a known or intentional difference in
> *>* pxelinux.0 vs. syslinux.efi as far as tftp file size limits?
> *>
> No, it is not.  The TFTP limit is unofficially exceeded by allowing the
> block numbers to wrap.  I'm not sure why UEFI would behave differently
> in that respect.
>
> However, the best would be if you could use HTTP instead of TFTP, which
> should always be available when booted off UEFI.  You will likely get
> much higher transfer rates in addition to avoiding these kinds of limits.
>
> 	-hpa
>
> I have run into the same issue. I am running 6.04_pre. I experienced the
same behavior with 6.03. I have been using legacy PXE to boot a live ububtu
image for installation on machnies. I recently received a new uefi machine
and want to get it to boot UEFI instead of legacy. I re-organized my
directory structure on the tftp server to be able to use either efi64 or
legacy and get a menu from either one. The live image will boot with legacy
just fine. When I try to boot it from uefi, It hangs. I can try building
the current git if that may help diagnosis. I get this same behavior from 2
different machines.

The reason I want it to boot using UEFI is that after the installation,
ubuntu/debian will install an incorrect grub if it is a UEFI booting
machine which is booted from legacy PXE.

Thanks!

KeithG


More information about the Syslinux mailing list