[syslinux] PXELINUX 6.03 / vesamenu.c32 hang

Gene Cumm gene.cumm at gmail.com
Thu Jun 16 04:07:04 PDT 2016

On Thu, Jun 16, 2016 at 4:53 AM, Jackson, Dan via Syslinux
<syslinux at zytor.com> wrote:
> Just tested with the latest VirtualBox and that works OK, so it's definitely something specific to ESXi 6.0.0 (it worked previously under 5.x ESXi versions).
> Thanks,
> Dan Jackson (Lead ITServices Technician).
> -----Original Message-----
> From: Syslinux [mailto:syslinux-bounces at zytor.com] On Behalf Of Jackson, Dan via Syslinux
> Sent: 16 June 2016 09:27
> To: 'syslinux at zytor.com' <syslinux at zytor.com>
> Subject: Re: [syslinux] PXELINUX 6.03 / vesamenu.c32 hang
> I've just tried 4.07 and that has the same results.

Thank you.

> I should note that I appear to be in error about things working OK with menu.c32 as opposed to vesamenu.c32 - I do indeed see the menu (which with vesamenu.c32 it does not get that far), but when I attempt to choose the Windows Deployment Services option, it hangs.

Hang is a little vague.  The question becomes if it does any network
activity or is interruptible with Ctrl-Alt-Ins from the keyboard
inside the VM (which becomes Ctrl-Alt-Del).  I typically use "stall"
when it appears to do nothing visually, without regards for underlying
network/disk activity and "hang" when Ctrl-Alt-Del (in this case as
Ctrl-Alt-Ins on the keyboard) does not respond.  There's yet the third
case wherein the machine is so busy, it only sometimes processes the
Ctrl-Alt-Del (which is even harder to distinguish).

> -----Original Message-----
> From: Jackson, Dan
> Sent: 16 June 2016 09:17
> To: 'syslinux at zytor.com' <syslinux at zytor.com>
> Subject: RE: [syslinux] PXELINUX 6.03 / vesamenu.c32 hang
> Hello,
> Thanks very much for your suggestions.
> I have double checked that all .c32 files are from the same version of syslinux. What I don't know - I only put those .c32 files I have in there on the basis of trial and error - is what .c32 files are actually needed for menu.c32 and/or vesamenu.c32. I thought perhaps there might be a .c32 file missing that I needed to put in there (though previously when that happened, there was an error message saying so).

The safe bet is putting ALL library COM32 modules in
(bios/com32/*/lib*.c32) however someone was nice enough to build a
list at http://www.syslinux.org/wiki/index.php?title=Library_modules#Syslinux_modules_working_dependencies

> I have tried 6.04-pre1, same result.
> I have tried your simplified configuration file, same result.

Excellent testing.  Thank you.

> Basically it hangs right after printing "PXELINUX 6.04 PXE 6.04-pre1 Copyright (C) 1994-2015 H. Peter Anvin et al". This is on the free ESXi 6.0.0.

The license of the host has no relevance in this situation.

> I tried different VM hardware versions but this did not produce a different result.

Which ones?  I typically use VMHWv8 for BIOS and VMHWv10 for EFI.
VMHWv8 has the most management compatibility while VMHWv10 resolves a
bunch of EFI-specific quirks/bugs.

> I haven't tried 4.07 yet, I'll try that.
> Thanks,
> Dan Jackson (Lead ITServices Technician).
> -----Original Message-----
> From: Syslinux [mailto:syslinux-bounces at zytor.com] On Behalf Of Ady via Syslinux
> Sent: 15 June 2016 18:02
> To: syslinux at zytor.com
> Subject: Re: [syslinux] PXELINUX 6.03 / vesamenu.c32 hang
>> Hello,
>> I'm experiencing an issue where if I use vesamenu.c32 with PXELINUX 6.03 when network booting a virtual machine hosted on VMware ESXi 6.0, it hangs (the version message is printed and then nothing - the VM has to be powered off and back on again).

So Ctrl-Alt-Ins on the keyboard or using the menu "Send Ctrl-Alt-Del"
options do nothing?  Good to note.

>> This happens no matter if I choose the E1000 network interface or the VMXNET3 network interface when creating the VM.

Again, nice testing.

>> The same problem does not happen if I change the configuration to use menu.c32 instead of vesamenu.c32.
> One possibility: double check that all your c32 modules are originated from the same package / version / build.
> Mixing versions (sometimes inadvertently) of Syslinux-related files is one source of strange behaviors. Since vesamenu.c32 has more c32 dependencies (lib*.c32) than menu.c32, I would suggest this double check as first step. Please check that you are using the c32 modules for the adequate platform (BIOS / EFI32 / EFI64).
> It is also possible that ESXi is having some problem / conflict / incompatibility with the graphics mode of vesamenu.c32. This happens to be also the case with some UEFI implementations.
> I seem to remember that VMWare has some customizations in their own c32 modules. This is another type of "mix" that is unsupported, because the customizations are not public.

Ady, good memory however not relevant since VMware's custom mboot.c32
is used for loading ESXi itself and not used in this scenario.

I do find it unfortunate that they choose to exercise their right
under that license to not contribute it back.

>> Both vesamenu.c32 and menu.c32 came from the same zip file as the PXELINUX binary. All PXELINUX related files came from the "bios" area of said zip file, and the VM is also set to use BIOS booting rather than EFI (this is because there are many older machines in our organisation which either do not support or are not set up for EFI booting).

EFI is a very different beast and, like a lot of changes, requires
planning and testing to understand its limits (or rather, the limits
of the EFI implementations on the target machines).

> That relates to part of my above comments. Yet, I would suggest double checking the files against those from the zip under the bios subdirectory tree.
>> I do not experience this problem when booting a physical machine.
> A compatibility issue with ESXi in particular, and/or any of my prior comments, can still be relevant.
>> Our setup is as follows:
>> PXE server: Windows Server 2008 R2 running Windows Deployment Services
>> DHCP server: not on the same server, WDS is authorised in DHCP
>> PXELINUX version: 6.03 (but it was originally 4.04, I upgraded to see
>> if it was some kind of bug which had been fixed in a later version)
> So, is the same exact behavior seen when using Syslinux 4.04? What about 4.07?
>> PXELINUX files in Boot/x64 and Boot/x86:
>> pxelinux.cfg\default
>> chain.c32
>> ldlinux.c32
>> libcom32.c32
>> libmenu.c32
>> libutil.c32
>> memdisk
>> menu.c32
>> pxelinux.com (renamed from pxelinux.0 as per instructions here
>> http://www.syslinux.org/wiki/index.php?title=WDSLINUX)
>> vesamenu.c32
>> Contents of pxelinux.cfg\default:

Trimming since the simple config demonstrates the issue.

>> Can anyone suggest what might be the problem?
>> Thanks,
>> Dan Jackson (Lead ITServices Technician).
>> Long Road Sixth Form College
>> Cambridge, UK.
> I would suggest trying a simplified pxelinux.cfg/default, with at least
> 2 entries:
> UI vesamenu.c32
> LABEL memtest
> KERNEL memtest
> LABEL wds
> KERNEL pxeboot.0
> LABEL Abort
> KERNEL abortpxe.0
> LABEL local
> Please note that I used a non-pxe first entry (memtest), no passwords, and no non-essential directive at all (not even a background image). I also used the UI directive instead of the DEFAULT one.
> We have also seen issues with some screen resolutions, and with using certain types of backgrounds (jpg vs. png).
> Testing with 6.04-pre1 might be of interest (although, if the same behavior is seen with 4.04, I would doubt that using 6.04-pre1 would show a different behavior than 6.03 in this case).
> Regards,
> Ady.

Excellent test scenario suggestions, Ady.  Thank you.  To make it
clearer to read, I generally add some blank lines and indentation but
perhaps I'm accustomed to staring at things like a programmer who
likes the look of such form.

UI vesamenu.c32

LABEL memtest
  KERNEL memtest
  KERNEL pxeboot.0
  KERNEL abortpxe.0
LABEL local


More information about the Syslinux mailing list