I’d recently made a bunch of changes to my company’s server build scripts, making changes that automatically generate system builds for a variety of operating systems and CPU architectures. We use PXE Boot to boot servers, then install images from a central install server which is running OpenSUSE 11.1.
After I made the changes I started seeing the error message “Missing parameter in config file” at boot:
XELINUX 3.07 0x41e470ae Copyright (C) 1994-2005 H. Peter Anvin Missing parameter in config file. Missing parameter in config file. Missing parameter in config file. Missing parameter in config file. Missing parameter in config file. Missing parameter in config file. Missing parameter in config file. Missing parameter in config file. boot:
Everything worked just fine, we had no problems booting or building servers, but the error messages seemed to indicate that there was a problem. I searched the net to see if anyone else was having this problem, and many people were, but no one seemed to have a good answer as to what was causing the error message.
Our pxelinux.cfg/default config file lists about a hundred different boot options, so I made a backup copy and started deleting portions of pxelinux.cfg/default to see if I could reduce the number of errors.
I managed to reduce the number of errors, but couldn’t find anything in the lines I’d deleted that would cause a problem — I was deleting working configurations from the list, and I couldn’t figure out why a working configuration would cause an error message.
I finally figured it out — it was the comment blocks that I’d added. Something is buggy about the way that PXE parses comment lines. I’d commented out some old labels and even though every line started with “#”, those were the lines that were causing the “Missing parameter in config file” errors.
To solve the problem, I edited pxelinux.cfg/default, deleted blank lines in-between comments and labels, deleted blank lines between comments, deleted spaces between “#” and the start of any comment text, deleted old labels that had previously been commented out, and restarted atftpd.
By simplifying the comment lines and deleting old blocks of commented-out code I eliminated the error messages. I couldn’t believe that comment lines could be causing errors, so I tried various combinations of edits on the pxelinux.cfg/default file, restarting atftpd and rebooting a spare server about 30 times, but the only thing that eliminated the error messages was removing comment lines and blank lines from pxelinux.cfg/default.
Hope you find this useful.
YES VERY HELPFUL THANK YOU!
BIG THK!
Nice work!!
After updating SYSLINUX following instructions from here http://www.fogproject.org/wiki/index.php?title=Boot_looping_and_Chainloading my /tftpboot/pxeconfig.cfg/default had managed to add a bunch of “/n” instead of line breaks.
No idea why this happened, but I removed all the /n from ‘default’ and everything started booting and working again.