PXELINUX always selects default option

Bug #1691218 reported by Ben Harris on 2017-05-16
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
syslinux (Ubuntu)
Undecided
Unassigned

Bug Description

I have a DHCP/TFTP server that's used for network installations. When I tried to switch it to use the version of PXELINUX supplied with Ubuntu 16.04 (3:6.03+dfsg-11ubuntu1), I found that whatever I typed at the PXELINUX command-line, PXELINUX would boot the default image. Replacing the Ubuntu PXELINUX binaries with the official upstream binaries caused the problem to go away.

More specifically, I installed /usr/lib/PXELINUX/pxelinux.0 and /usr/lib/syslinux/modules/bios/ldlinux.c32 into my /tftpboot directory. To avoid breaking the existing PXELINUX 4.03 installation, I installed pxelinux.0 as "test.0" and configured my DHCP server to provide that as a filename to my test server. I put the following configuration file in /tftpboot/pxelinux.cfg/AC1CD020 (the correct name for the IP address of my server):

DEFAULT mongoose
PROMPT 1

LABEL mongoose
        KERNEL mongoose

LABEL kitten
        KERNEL kitten

When I boot my test server, pressing [TAB] twice at the PXELINUX prompt lists both "mongoose" and "kitten" as available images, but whatever I type, PXELINUX says "Loading mongoose... failed: No such file or directory" (see attached screenshot), indicating that PXELINUX was trying to load "mongoose" every time. When I replace test.0 and ldlinux.c32 with pxelinux.0 and ldlinux.c32 from the official PXELINUX 6.03 release, I get the behaviour I expect, namely that the error message mentions the name of the image I selected.

While my test involves images that don't exist, I get the same behaviour for more normal configuration files that load actual kernels. I also get the same behaviour from two different PXE implementations (VMware and a Sun Fire X4150).

ProblemType: Bug
DistroRelease: Ubuntu 16.04
Package: pxelinux 3:6.03+dfsg-11ubuntu1
ProcVersionSignature: Ubuntu 4.4.0-77.98-generic 4.4.59
Uname: Linux 4.4.0-77-generic x86_64
ApportVersion: 2.20.1-0ubuntu2.5
Architecture: amd64
Date: Tue May 16 18:37:49 2017
Dependencies: syslinux-common 3:6.03+dfsg-11ubuntu1
JournalErrors:
 Error: command ['journalctl', '-b', '--priority=warning', '--lines=1000'] failed with exit code 1: Hint: You are currently not seeing messages from other users and the system.
       Users in the 'systemd-journal' group can see all messages. Pass -q to
       turn off this notice.
 No journal files were opened due to insufficient permissions.
PackageArchitecture: all
SourcePackage: syslinux
UpgradeStatus: Upgraded to xenial on 2017-05-11 (5 days ago)

Ben Harris (bjh21) wrote :
Alexander Achenbach (xela) wrote :

Same problem here, using pxelinux 6.03 as of 16.04.

I initially thought that it failed at an earlier PXE stage, as it alway
booted to the local hard disk (exiting PXE), but that was only due to a
'default harddisk' within the configuration:

--------------------------------
default harddisk
timeout 300
prompt 1

label harddisk
  localboot 0

label netboot
  kernel ...
  ...
--------------------------------

Booting into 'netboot' worked well if specified as 'default netboot', but again,
it would always select that default, regardless of prompt input.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers