Home | History | Annotate | Download | only in html
      1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
      2     "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
      3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
      4 <head>
      5 <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
      6 <meta name="generator" content="AsciiDoc 8.6.8" />
      7 <title>pxelinux(1)</title>
      8 <style type="text/css">
      9 /* Shared CSS for AsciiDoc xhtml11 and html5 backends */
     10 
     11 /* Default font. */
     12 body {
     13   font-family: Georgia,serif;
     14 }
     15 
     16 /* Title font. */
     17 h1, h2, h3, h4, h5, h6,
     18 div.title, caption.title,
     19 thead, p.table.header,
     20 #toctitle,
     21 #author, #revnumber, #revdate, #revremark,
     22 #footer {
     23   font-family: Arial,Helvetica,sans-serif;
     24 }
     25 
     26 body {
     27   margin: 1em 5% 1em 5%;
     28 }
     29 
     30 a {
     31   color: blue;
     32   text-decoration: underline;
     33 }
     34 a:visited {
     35   color: fuchsia;
     36 }
     37 
     38 em {
     39   font-style: italic;
     40   color: navy;
     41 }
     42 
     43 strong {
     44   font-weight: bold;
     45   color: #083194;
     46 }
     47 
     48 h1, h2, h3, h4, h5, h6 {
     49   color: #527bbd;
     50   margin-top: 1.2em;
     51   margin-bottom: 0.5em;
     52   line-height: 1.3;
     53 }
     54 
     55 h1, h2, h3 {
     56   border-bottom: 2px solid silver;
     57 }
     58 h2 {
     59   padding-top: 0.5em;
     60 }
     61 h3 {
     62   float: left;
     63 }
     64 h3 + * {
     65   clear: left;
     66 }
     67 h5 {
     68   font-size: 1.0em;
     69 }
     70 
     71 div.sectionbody {
     72   margin-left: 0;
     73 }
     74 
     75 hr {
     76   border: 1px solid silver;
     77 }
     78 
     79 p {
     80   margin-top: 0.5em;
     81   margin-bottom: 0.5em;
     82 }
     83 
     84 ul, ol, li > p {
     85   margin-top: 0;
     86 }
     87 ul > li     { color: #aaa; }
     88 ul > li > * { color: black; }
     89 
     90 .monospaced, code, pre {
     91   font-family: "Courier New", Courier, monospace;
     92   font-size: inherit;
     93   color: navy;
     94   padding: 0;
     95   margin: 0;
     96 }
     97 
     98 
     99 #author {
    100   color: #527bbd;
    101   font-weight: bold;
    102   font-size: 1.1em;
    103 }
    104 #email {
    105 }
    106 #revnumber, #revdate, #revremark {
    107 }
    108 
    109 #footer {
    110   font-size: small;
    111   border-top: 2px solid silver;
    112   padding-top: 0.5em;
    113   margin-top: 4.0em;
    114 }
    115 #footer-text {
    116   float: left;
    117   padding-bottom: 0.5em;
    118 }
    119 #footer-badges {
    120   float: right;
    121   padding-bottom: 0.5em;
    122 }
    123 
    124 #preamble {
    125   margin-top: 1.5em;
    126   margin-bottom: 1.5em;
    127 }
    128 div.imageblock, div.exampleblock, div.verseblock,
    129 div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
    130 div.admonitionblock {
    131   margin-top: 1.0em;
    132   margin-bottom: 1.5em;
    133 }
    134 div.admonitionblock {
    135   margin-top: 2.0em;
    136   margin-bottom: 2.0em;
    137   margin-right: 10%;
    138   color: #606060;
    139 }
    140 
    141 div.content { /* Block element content. */
    142   padding: 0;
    143 }
    144 
    145 /* Block element titles. */
    146 div.title, caption.title {
    147   color: #527bbd;
    148   font-weight: bold;
    149   text-align: left;
    150   margin-top: 1.0em;
    151   margin-bottom: 0.5em;
    152 }
    153 div.title + * {
    154   margin-top: 0;
    155 }
    156 
    157 td div.title:first-child {
    158   margin-top: 0.0em;
    159 }
    160 div.content div.title:first-child {
    161   margin-top: 0.0em;
    162 }
    163 div.content + div.title {
    164   margin-top: 0.0em;
    165 }
    166 
    167 div.sidebarblock > div.content {
    168   background: #ffffee;
    169   border: 1px solid #dddddd;
    170   border-left: 4px solid #f0f0f0;
    171   padding: 0.5em;
    172 }
    173 
    174 div.listingblock > div.content {
    175   border: 1px solid #dddddd;
    176   border-left: 5px solid #f0f0f0;
    177   background: #f8f8f8;
    178   padding: 0.5em;
    179 }
    180 
    181 div.quoteblock, div.verseblock {
    182   padding-left: 1.0em;
    183   margin-left: 1.0em;
    184   margin-right: 10%;
    185   border-left: 5px solid #f0f0f0;
    186   color: #888;
    187 }
    188 
    189 div.quoteblock > div.attribution {
    190   padding-top: 0.5em;
    191   text-align: right;
    192 }
    193 
    194 div.verseblock > pre.content {
    195   font-family: inherit;
    196   font-size: inherit;
    197 }
    198 div.verseblock > div.attribution {
    199   padding-top: 0.75em;
    200   text-align: left;
    201 }
    202 /* DEPRECATED: Pre version 8.2.7 verse style literal block. */
    203 div.verseblock + div.attribution {
    204   text-align: left;
    205 }
    206 
    207 div.admonitionblock .icon {
    208   vertical-align: top;
    209   font-size: 1.1em;
    210   font-weight: bold;
    211   text-decoration: underline;
    212   color: #527bbd;
    213   padding-right: 0.5em;
    214 }
    215 div.admonitionblock td.content {
    216   padding-left: 0.5em;
    217   border-left: 3px solid #dddddd;
    218 }
    219 
    220 div.exampleblock > div.content {
    221   border-left: 3px solid #dddddd;
    222   padding-left: 0.5em;
    223 }
    224 
    225 div.imageblock div.content { padding-left: 0; }
    226 span.image img { border-style: none; }
    227 a.image:visited { color: white; }
    228 
    229 dl {
    230   margin-top: 0.8em;
    231   margin-bottom: 0.8em;
    232 }
    233 dt {
    234   margin-top: 0.5em;
    235   margin-bottom: 0;
    236   font-style: normal;
    237   color: navy;
    238 }
    239 dd > *:first-child {
    240   margin-top: 0.1em;
    241 }
    242 
    243 ul, ol {
    244     list-style-position: outside;
    245 }
    246 ol.arabic {
    247   list-style-type: decimal;
    248 }
    249 ol.loweralpha {
    250   list-style-type: lower-alpha;
    251 }
    252 ol.upperalpha {
    253   list-style-type: upper-alpha;
    254 }
    255 ol.lowerroman {
    256   list-style-type: lower-roman;
    257 }
    258 ol.upperroman {
    259   list-style-type: upper-roman;
    260 }
    261 
    262 div.compact ul, div.compact ol,
    263 div.compact p, div.compact p,
    264 div.compact div, div.compact div {
    265   margin-top: 0.1em;
    266   margin-bottom: 0.1em;
    267 }
    268 
    269 tfoot {
    270   font-weight: bold;
    271 }
    272 td > div.verse {
    273   white-space: pre;
    274 }
    275 
    276 div.hdlist {
    277   margin-top: 0.8em;
    278   margin-bottom: 0.8em;
    279 }
    280 div.hdlist tr {
    281   padding-bottom: 15px;
    282 }
    283 dt.hdlist1.strong, td.hdlist1.strong {
    284   font-weight: bold;
    285 }
    286 td.hdlist1 {
    287   vertical-align: top;
    288   font-style: normal;
    289   padding-right: 0.8em;
    290   color: navy;
    291 }
    292 td.hdlist2 {
    293   vertical-align: top;
    294 }
    295 div.hdlist.compact tr {
    296   margin: 0;
    297   padding-bottom: 0;
    298 }
    299 
    300 .comment {
    301   background: yellow;
    302 }
    303 
    304 .footnote, .footnoteref {
    305   font-size: 0.8em;
    306 }
    307 
    308 span.footnote, span.footnoteref {
    309   vertical-align: super;
    310 }
    311 
    312 #footnotes {
    313   margin: 20px 0 20px 0;
    314   padding: 7px 0 0 0;
    315 }
    316 
    317 #footnotes div.footnote {
    318   margin: 0 0 5px 0;
    319 }
    320 
    321 #footnotes hr {
    322   border: none;
    323   border-top: 1px solid silver;
    324   height: 1px;
    325   text-align: left;
    326   margin-left: 0;
    327   width: 20%;
    328   min-width: 100px;
    329 }
    330 
    331 div.colist td {
    332   padding-right: 0.5em;
    333   padding-bottom: 0.3em;
    334   vertical-align: top;
    335 }
    336 div.colist td img {
    337   margin-top: 0.3em;
    338 }
    339 
    340 @media print {
    341   #footer-badges { display: none; }
    342 }
    343 
    344 #toc {
    345   margin-bottom: 2.5em;
    346 }
    347 
    348 #toctitle {
    349   color: #527bbd;
    350   font-size: 1.1em;
    351   font-weight: bold;
    352   margin-top: 1.0em;
    353   margin-bottom: 0.1em;
    354 }
    355 
    356 div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
    357   margin-top: 0;
    358   margin-bottom: 0;
    359 }
    360 div.toclevel2 {
    361   margin-left: 2em;
    362   font-size: 0.9em;
    363 }
    364 div.toclevel3 {
    365   margin-left: 4em;
    366   font-size: 0.9em;
    367 }
    368 div.toclevel4 {
    369   margin-left: 6em;
    370   font-size: 0.9em;
    371 }
    372 
    373 span.aqua { color: aqua; }
    374 span.black { color: black; }
    375 span.blue { color: blue; }
    376 span.fuchsia { color: fuchsia; }
    377 span.gray { color: gray; }
    378 span.green { color: green; }
    379 span.lime { color: lime; }
    380 span.maroon { color: maroon; }
    381 span.navy { color: navy; }
    382 span.olive { color: olive; }
    383 span.purple { color: purple; }
    384 span.red { color: red; }
    385 span.silver { color: silver; }
    386 span.teal { color: teal; }
    387 span.white { color: white; }
    388 span.yellow { color: yellow; }
    389 
    390 span.aqua-background { background: aqua; }
    391 span.black-background { background: black; }
    392 span.blue-background { background: blue; }
    393 span.fuchsia-background { background: fuchsia; }
    394 span.gray-background { background: gray; }
    395 span.green-background { background: green; }
    396 span.lime-background { background: lime; }
    397 span.maroon-background { background: maroon; }
    398 span.navy-background { background: navy; }
    399 span.olive-background { background: olive; }
    400 span.purple-background { background: purple; }
    401 span.red-background { background: red; }
    402 span.silver-background { background: silver; }
    403 span.teal-background { background: teal; }
    404 span.white-background { background: white; }
    405 span.yellow-background { background: yellow; }
    406 
    407 span.big { font-size: 2em; }
    408 span.small { font-size: 0.6em; }
    409 
    410 span.underline { text-decoration: underline; }
    411 span.overline { text-decoration: overline; }
    412 span.line-through { text-decoration: line-through; }
    413 
    414 div.unbreakable { page-break-inside: avoid; }
    415 
    416 
    417 /*
    418  * xhtml11 specific
    419  *
    420  * */
    421 
    422 div.tableblock {
    423   margin-top: 1.0em;
    424   margin-bottom: 1.5em;
    425 }
    426 div.tableblock > table {
    427   border: 3px solid #527bbd;
    428 }
    429 thead, p.table.header {
    430   font-weight: bold;
    431   color: #527bbd;
    432 }
    433 p.table {
    434   margin-top: 0;
    435 }
    436 /* Because the table frame attribute is overriden by CSS in most browsers. */
    437 div.tableblock > table[frame="void"] {
    438   border-style: none;
    439 }
    440 div.tableblock > table[frame="hsides"] {
    441   border-left-style: none;
    442   border-right-style: none;
    443 }
    444 div.tableblock > table[frame="vsides"] {
    445   border-top-style: none;
    446   border-bottom-style: none;
    447 }
    448 
    449 
    450 /*
    451  * html5 specific
    452  *
    453  * */
    454 
    455 table.tableblock {
    456   margin-top: 1.0em;
    457   margin-bottom: 1.5em;
    458 }
    459 thead, p.tableblock.header {
    460   font-weight: bold;
    461   color: #527bbd;
    462 }
    463 p.tableblock {
    464   margin-top: 0;
    465 }
    466 table.tableblock {
    467   border-width: 3px;
    468   border-spacing: 0px;
    469   border-style: solid;
    470   border-color: #527bbd;
    471   border-collapse: collapse;
    472 }
    473 th.tableblock, td.tableblock {
    474   border-width: 1px;
    475   padding: 4px;
    476   border-style: solid;
    477   border-color: #527bbd;
    478 }
    479 
    480 table.tableblock.frame-topbot {
    481   border-left-style: hidden;
    482   border-right-style: hidden;
    483 }
    484 table.tableblock.frame-sides {
    485   border-top-style: hidden;
    486   border-bottom-style: hidden;
    487 }
    488 table.tableblock.frame-none {
    489   border-style: hidden;
    490 }
    491 
    492 th.tableblock.halign-left, td.tableblock.halign-left {
    493   text-align: left;
    494 }
    495 th.tableblock.halign-center, td.tableblock.halign-center {
    496   text-align: center;
    497 }
    498 th.tableblock.halign-right, td.tableblock.halign-right {
    499   text-align: right;
    500 }
    501 
    502 th.tableblock.valign-top, td.tableblock.valign-top {
    503   vertical-align: top;
    504 }
    505 th.tableblock.valign-middle, td.tableblock.valign-middle {
    506   vertical-align: middle;
    507 }
    508 th.tableblock.valign-bottom, td.tableblock.valign-bottom {
    509   vertical-align: bottom;
    510 }
    511 
    512 
    513 /*
    514  * manpage specific
    515  *
    516  * */
    517 
    518 body.manpage h1 {
    519   padding-top: 0.5em;
    520   padding-bottom: 0.5em;
    521   border-top: 2px solid silver;
    522   border-bottom: 2px solid silver;
    523 }
    524 body.manpage h2 {
    525   border-style: none;
    526 }
    527 body.manpage div.sectionbody {
    528   margin-left: 3em;
    529 }
    530 
    531 @media print {
    532   body.manpage div#toc { display: none; }
    533 }
    534 
    535 
    536 </style>
    537 <script type="text/javascript">
    538 /*<![CDATA[*/
    539 var asciidoc = {  // Namespace.
    540 
    541 /////////////////////////////////////////////////////////////////////
    542 // Table Of Contents generator
    543 /////////////////////////////////////////////////////////////////////
    544 
    545 /* Author: Mihai Bazon, September 2002
    546  * http://students.infoiasi.ro/~mishoo
    547  *
    548  * Table Of Content generator
    549  * Version: 0.4
    550  *
    551  * Feel free to use this script under the terms of the GNU General Public
    552  * License, as long as you do not remove or alter this notice.
    553  */
    554 
    555  /* modified by Troy D. Hanson, September 2006. License: GPL */
    556  /* modified by Stuart Rackham, 2006, 2009. License: GPL */
    557 
    558 // toclevels = 1..4.
    559 toc: function (toclevels) {
    560 
    561   function getText(el) {
    562     var text = "";
    563     for (var i = el.firstChild; i != null; i = i.nextSibling) {
    564       if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
    565         text += i.data;
    566       else if (i.firstChild != null)
    567         text += getText(i);
    568     }
    569     return text;
    570   }
    571 
    572   function TocEntry(el, text, toclevel) {
    573     this.element = el;
    574     this.text = text;
    575     this.toclevel = toclevel;
    576   }
    577 
    578   function tocEntries(el, toclevels) {
    579     var result = new Array;
    580     var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
    581     // Function that scans the DOM tree for header elements (the DOM2
    582     // nodeIterator API would be a better technique but not supported by all
    583     // browsers).
    584     var iterate = function (el) {
    585       for (var i = el.firstChild; i != null; i = i.nextSibling) {
    586         if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
    587           var mo = re.exec(i.tagName);
    588           if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
    589             result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
    590           }
    591           iterate(i);
    592         }
    593       }
    594     }
    595     iterate(el);
    596     return result;
    597   }
    598 
    599   var toc = document.getElementById("toc");
    600   if (!toc) {
    601     return;
    602   }
    603 
    604   // Delete existing TOC entries in case we're reloading the TOC.
    605   var tocEntriesToRemove = [];
    606   var i;
    607   for (i = 0; i < toc.childNodes.length; i++) {
    608     var entry = toc.childNodes[i];
    609     if (entry.nodeName.toLowerCase() == 'div'
    610      && entry.getAttribute("class")
    611      && entry.getAttribute("class").match(/^toclevel/))
    612       tocEntriesToRemove.push(entry);
    613   }
    614   for (i = 0; i < tocEntriesToRemove.length; i++) {
    615     toc.removeChild(tocEntriesToRemove[i]);
    616   }
    617 
    618   // Rebuild TOC entries.
    619   var entries = tocEntries(document.getElementById("content"), toclevels);
    620   for (var i = 0; i < entries.length; ++i) {
    621     var entry = entries[i];
    622     if (entry.element.id == "")
    623       entry.element.id = "_toc_" + i;
    624     var a = document.createElement("a");
    625     a.href = "#" + entry.element.id;
    626     a.appendChild(document.createTextNode(entry.text));
    627     var div = document.createElement("div");
    628     div.appendChild(a);
    629     div.className = "toclevel" + entry.toclevel;
    630     toc.appendChild(div);
    631   }
    632   if (entries.length == 0)
    633     toc.parentNode.removeChild(toc);
    634 },
    635 
    636 
    637 /////////////////////////////////////////////////////////////////////
    638 // Footnotes generator
    639 /////////////////////////////////////////////////////////////////////
    640 
    641 /* Based on footnote generation code from:
    642  * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
    643  */
    644 
    645 footnotes: function () {
    646   // Delete existing footnote entries in case we're reloading the footnodes.
    647   var i;
    648   var noteholder = document.getElementById("footnotes");
    649   if (!noteholder) {
    650     return;
    651   }
    652   var entriesToRemove = [];
    653   for (i = 0; i < noteholder.childNodes.length; i++) {
    654     var entry = noteholder.childNodes[i];
    655     if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
    656       entriesToRemove.push(entry);
    657   }
    658   for (i = 0; i < entriesToRemove.length; i++) {
    659     noteholder.removeChild(entriesToRemove[i]);
    660   }
    661 
    662   // Rebuild footnote entries.
    663   var cont = document.getElementById("content");
    664   var spans = cont.getElementsByTagName("span");
    665   var refs = {};
    666   var n = 0;
    667   for (i=0; i<spans.length; i++) {
    668     if (spans[i].className == "footnote") {
    669       n++;
    670       var note = spans[i].getAttribute("data-note");
    671       if (!note) {
    672         // Use [\s\S] in place of . so multi-line matches work.
    673         // Because JavaScript has no s (dotall) regex flag.
    674         note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
    675         spans[i].innerHTML =
    676           "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
    677           "' title='View footnote' class='footnote'>" + n + "</a>]";
    678         spans[i].setAttribute("data-note", note);
    679       }
    680       noteholder.innerHTML +=
    681         "<div class='footnote' id='_footnote_" + n + "'>" +
    682         "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
    683         n + "</a>. " + note + "</div>";
    684       var id =spans[i].getAttribute("id");
    685       if (id != null) refs["#"+id] = n;
    686     }
    687   }
    688   if (n == 0)
    689     noteholder.parentNode.removeChild(noteholder);
    690   else {
    691     // Process footnoterefs.
    692     for (i=0; i<spans.length; i++) {
    693       if (spans[i].className == "footnoteref") {
    694         var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
    695         href = href.match(/#.*/)[0];  // Because IE return full URL.
    696         n = refs[href];
    697         spans[i].innerHTML =
    698           "[<a href='#_footnote_" + n +
    699           "' title='View footnote' class='footnote'>" + n + "</a>]";
    700       }
    701     }
    702   }
    703 },
    704 
    705 install: function(toclevels) {
    706   var timerId;
    707 
    708   function reinstall() {
    709     asciidoc.footnotes();
    710     if (toclevels) {
    711       asciidoc.toc(toclevels);
    712     }
    713   }
    714 
    715   function reinstallAndRemoveTimer() {
    716     clearInterval(timerId);
    717     reinstall();
    718   }
    719 
    720   timerId = setInterval(reinstall, 500);
    721   if (document.addEventListener)
    722     document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
    723   else
    724     window.onload = reinstallAndRemoveTimer;
    725 }
    726 
    727 }
    728 asciidoc.install();
    729 /*]]>*/
    730 </script>
    731 </head>
    732 <body class="manpage">
    733 <div id="header">
    734 <h1>
    735 pxelinux(1) Manual Page
    736 </h1>
    737 <h2>NAME</h2>
    738 <div class="sectionbody">
    739 <p>pxelinux -
    740    The Syslinux derivative PXELINUX for PXE network booting
    741 </p>
    742 </div>
    743 </div>
    744 <div id="content">
    745 <div class="sect1">
    746 <h2 id="_synopsis">SYNOPSIS</h2>
    747 <div class="sectionbody">
    748 <div class="verseblock">
    749 <pre class="content">pxelinux.0</pre>
    750 <div class="attribution">
    751 </div></div>
    752 </div>
    753 </div>
    754 <div class="sect1">
    755 <h2 id="_description">DESCRIPTION</h2>
    756 <div class="sectionbody">
    757 <div class="paragraph"><p><strong>PXELINUX</strong> is a Syslinux derivative, for booting Linux off a network
    758 server, using a network ROM conforming to the Intel PXE (Pre-Execution
    759 Environment) specification.  <strong>PXELINUX</strong> is <em>*not*</em> a program that is
    760 intended to be flashed or burned into a PROM on the network card; if
    761 you want that, check out Etherboot (<a href="http://www.etherboot.org/">http://www.etherboot.org/</a>).
    762 Etherboot 5.4 or later can also be used to create a PXE-compliant boot
    763 PROM for many network cards.</p></div>
    764 <div class="paragraph"><p>PXELINUX generally requires that full file pathnames are 127 characters or shorter in length.</p></div>
    765 </div>
    766 </div>
    767 <div class="sect1">
    768 <h2 id="_current_directory">CURRENT DIRECTORY</h2>
    769 <div class="sectionbody">
    770 <div class="paragraph"><p>The initial current working directory is either as supplied by DHCP
    771 option 210 (pxelinux.pathprefix), the hardcoded path-prefix or the
    772 parent directory of the PXELINUX file, as indicated by DHCP fields
    773 <em>sname</em> and <em>file</em> (sname="192.168.2.3" and file="boot/pxelinux.0"
    774 results in "tftp://192.168.2.3/boot/", "192.168.2.3::boot/" in older
    775 PXELINUX format) with precedence specified under <strong>OPTIONS</strong>.</p></div>
    776 <div class="paragraph"><p>All unqualified filenames are relative to the current directory.</p></div>
    777 </div>
    778 </div>
    779 <div class="sect1">
    780 <h2 id="_configuration">CONFIGURATION</h2>
    781 <div class="sectionbody">
    782 <div class="paragraph"><p>See <strong>syslinux.cfg</strong>(5) for the format of the contents.</p></div>
    783 <div class="paragraph"><p>Because more than one system may be booted from the same server, the
    784 configuration file name depends on the IP address of the booting
    785 machine.  After attempting the file as specified in the DHCP or
    786 hardcoded options, PXELINUX will probe the following paths, prefixed
    787 with "pxelinux.cfg/", under the initial current working directory:</p></div>
    788 <div class="ulist"><ul>
    789 <li>
    790 <p>
    791 The client UUID if provided by the PXE stack (note, some BIOSes don&#8217;t
    792 have a valid UUID, and you might end up with something like all 1&#8217;s.)
    793 This is in the standard UUID format using lower case hexadecimal digits,
    794 e.g. b8945908-d6a6-41a9-611d-74a6ab80b83d.
    795 </p>
    796 </li>
    797 <li>
    798 <p>
    799 The hardware type (using its ARP type code) and address, all in lower
    800 case hexadecimal with dash separators; for example, for an Ethernet (ARP
    801 type 1) with address 88:99:AA:BB:CC:DD it would search for the filename
    802 01-88-99-aa-bb-cc-dd.
    803 </p>
    804 </li>
    805 <li>
    806 <p>
    807 The client&#8217;s IPv4 address in upper-case hexidecimal (ie 192.168.2.91
    808 &#8594; C0A8025B; you can use the included progam "gethostip" to compute the
    809 hexadecimal IP address for any host.) followed by removing characters,
    810 one at a time, from the end.
    811 </p>
    812 </li>
    813 <li>
    814 <p>
    815 "default"
    816 </p>
    817 </li>
    818 </ul></div>
    819 <div class="paragraph"><p>Starting in release 3.20, if PXELINUX can not find a configuration file,
    820 it will reboot after the timeout interval has expired.  This keeps a
    821 machine from getting stuck indefinitely due to a boot server failure.</p></div>
    822 </div>
    823 </div>
    824 <div class="sect1">
    825 <h2 id="_options">OPTIONS</h2>
    826 <div class="sectionbody">
    827 <div class="paragraph"><p><strong>PXELINUX</strong> (starting with version 1.62) supports the following
    828 nonstandard DHCP options, which depending on your DHCP server you may be
    829 able to use to customize the specific behaviour of <strong>PXELINUX</strong>.  See RFC
    830 5071 for some additional information about these options. Options for
    831 <strong>PXELINUX</strong> can be specified by DHCP options or hardcoded into the
    832 binary.</p></div>
    833 <div class="sect2">
    834 <h3 id="_option_priority">Option Priority</h3>
    835 <div class="paragraph"><p>Hardcoded after-options are applied after DHCP options (and overrride)
    836 while hardcoded before-options are applied prior to DHCP options and
    837 default behavior takes the lowest priority.</p></div>
    838 </div>
    839 <div class="sect2">
    840 <h3 id="_dhcp_options">DHCP options</h3>
    841 <div class="dlist"><dl>
    842 <dt class="hdlist1">
    843 <strong>Option 208</strong> (pxelinux.magic)
    844 </dt>
    845 <dd>
    846 <p>
    847 Earlier versions of <strong>PXELINUX</strong> required this to be set to F1:00:74:7E
    848 (241.0.116.126) for <strong>PXELINUX</strong> to recognize any special DHCP options
    849 whatsoever.  As of <strong>PXELINUX</strong> 3.55, this option is deprecated and is no
    850 longer required.
    851 </p>
    852 </dd>
    853 <dt class="hdlist1">
    854 <strong>Option 209</strong> (pxelinux.configfile)
    855 </dt>
    856 <dd>
    857 <p>
    858 Specifies the initial <strong>PXELINUX</strong> configuration file name which may be
    859 qualified or unqualified.
    860 </p>
    861 </dd>
    862 <dt class="hdlist1">
    863 <strong>Option 210</strong> (pxelinux.pathprefix)
    864 </dt>
    865 <dd>
    866 <p>
    867 Specifies the <strong>PXELINUX</strong> common path prefix, instead of deriving it from
    868 the boot file name.  This almost certainly needs to end in whatever
    869 character the TFTP server OS uses as a pathname separator, e.g. slash
    870 (/) for Unix.
    871 </p>
    872 </dd>
    873 <dt class="hdlist1">
    874 <strong>Option 211</strong> (pxelinux.reboottime)
    875 </dt>
    876 <dd>
    877 <p>
    878 Specifies, in seconds, the time to wait before reboot in the event of
    879 TFTP failure.  0 means wait "forever" (in reality, it waits
    880 approximately 136 years.)
    881 </p>
    882 </dd>
    883 </dl></div>
    884 </div>
    885 <div class="sect2">
    886 <h3 id="_hardcoded_options">Hardcoded options</h3>
    887 <div class="paragraph"><p>Since version 3.83, the program "pxelinux-options" can be used to
    888 hard-code DHCP options into the pxelinux.0 image file; this is
    889 sometimes useful when the DHCP server is under different
    890 administrative control.  Hardcoded options</p></div>
    891 <div class="literalblock">
    892 <div class="content">
    893 <pre><code>  6 =&gt; 'domain-name-servers',
    894  15 =&gt; 'domain-name',
    895  54 =&gt; 'next-server',
    896 209 =&gt; 'config-file',
    897 210 =&gt; 'path-prefix',
    898 211 =&gt; 'reboottime'</code></pre>
    899 </div></div>
    900 </div>
    901 </div>
    902 </div>
    903 <div class="sect1">
    904 <h2 id="_http_ftp">HTTP/FTP</h2>
    905 <div class="sectionbody">
    906 <div class="paragraph"><p>Since version 5.10, a special PXELINUX binary, lpxelinux.0, natively
    907 supports HTTP and FTP transfers, greatly increasing load speed and
    908 allowing for standard HTTP scripts to present PXELINUX&#8217;s configuration
    909 file.  To use http or ftp, use standard URL syntax as filename; use the
    910 DHCP options below to transmit a suitable URL prefix to the client, or
    911 use the "pxelinux-options" tool provided in the utils directory to
    912 program it directly into the lpxelinux.0 file.</p></div>
    913 </div>
    914 </div>
    915 <div class="sect1">
    916 <h2 id="_filename_syntax">FILENAME SYNTAX</h2>
    917 <div class="sectionbody">
    918 <div class="paragraph"><p>PXELINUX supports the following special pathname conventions:</p></div>
    919 <div class="dlist"><dl>
    920 <dt class="hdlist1">
    921 <strong>::filename</strong>
    922 </dt>
    923 <dd>
    924 <p>
    925 Suppresses the common filename prefix, i.e. passes the string "filename"
    926 unmodified to the server.
    927 </p>
    928 </dd>
    929 <dt class="hdlist1">
    930 <strong>IP address::filename</strong> (e.g. 192.168.2.3::filename)
    931 </dt>
    932 <dd>
    933 <p>
    934 Suppresses the common filename prefix, <strong>and</strong> sends a request to an alternate TFTP server.  Instead of an IP address, a DNS name can be used.  It will be assumed to be fully qualified if it contains dots; otherwise the local domain as reported by the DHCP server (option 15) will be added.
    935 </p>
    936 </dd>
    937 </dl></div>
    938 <div class="paragraph"><p>:: was chosen because it is unlikely to conflict with operating system
    939 usage.  However, if you happen to have an environment for which the
    940 special treatment of :: is a problem, please contact the Syslinux
    941 mailing list.</p></div>
    942 <div class="paragraph"><p>Since version 4.00, PXELINUX also supports standard URL syntax.</p></div>
    943 </div>
    944 </div>
    945 <div class="sect1">
    946 <h2 id="_keeppxe">KEEPPXE</h2>
    947 <div class="sectionbody">
    948 <div class="paragraph"><p>Normally, PXELINUX will unload the PXE and UNDI stacks before invoking
    949 the kernel.  In special circumstances (for example, when using MEMDISK
    950 to boot an operating system with an UNDI network driver) it might be
    951 desirable to keep the PXE stack in memory.  If the option "keeppxe"
    952 is given on the kernel command line, PXELINUX will keep the PXE and
    953 UNDI stacks in memory.  (If you don&#8217;t know what this means, you
    954 probably don&#8217;t need it.)</p></div>
    955 </div>
    956 </div>
    957 <div class="sect1">
    958 <h2 id="_examples">EXAMPLES</h2>
    959 <div class="sectionbody">
    960 <div class="sect2">
    961 <h3 id="_configuration_filename">Configuration filename</h3>
    962 <div class="paragraph"><p>For DHCP siaddr 192.168.2.3, file <em>mybootdir/pxelinux.0</em>, client UUID
    963 b8945908-d6a6-41a9-611d-74a6ab80b83d, Ethernet MAC address
    964 88:99:AA:BB:CC:DD and IPv4 address 192.168.2.91, the following files in
    965 this order will be attempted (after config-file options):</p></div>
    966 <div class="literalblock">
    967 <div class="content">
    968 <pre><code>mybootdir/pxelinux.cfg/b8945908-d6a6-41a9-611d-74a6ab80b83d
    969 mybootdir/pxelinux.cfg/01-88-99-aa-bb-cc-dd
    970 mybootdir/pxelinux.cfg/C0A8025B
    971 mybootdir/pxelinux.cfg/C0A8025
    972 mybootdir/pxelinux.cfg/C0A802
    973 mybootdir/pxelinux.cfg/C0A80
    974 mybootdir/pxelinux.cfg/C0A8
    975 mybootdir/pxelinux.cfg/C0A
    976 mybootdir/pxelinux.cfg/C0
    977 mybootdir/pxelinux.cfg/C
    978 mybootdir/pxelinux.cfg/default</code></pre>
    979 </div></div>
    980 </div>
    981 <div class="sect2">
    982 <h3 id="_tftp_servers">TFTP servers</h3>
    983 <div class="paragraph"><p>For best results, use a TFTP server which supports the "tsize" TFTP
    984 option (RFC 1784/RFC 2349).  The "tftp-hpa" TFTP server, which support
    985 options, is available at:</p></div>
    986 <div class="literalblock">
    987 <div class="content">
    988 <pre><code>http://www.kernel.org/pub/software/network/tftp/
    989 ftp://www.kernel.org/pub/software/network/tftp/</code></pre>
    990 </div></div>
    991 <div class="paragraph"><p>and on any kernel.org mirror (see <a href="http://www.kernel.org/mirrors/">http://www.kernel.org/mirrors/</a>).</p></div>
    992 <div class="paragraph"><p>Another TFTP server which supports this is atftp by Jean-Pierre
    993 Lefebvre:</p></div>
    994 <div class="literalblock">
    995 <div class="content">
    996 <pre><code>ftp://ftp.mamalinux.com/pub/atftp/</code></pre>
    997 </div></div>
    998 <div class="paragraph"><p>If your boot server is running Windows (and you can&#8217;t fix that), try
    999 tftpd32 by Philippe Jounin (you need version 2.11 or later; previous
   1000 versions had a bug which made it incompatible with PXELINUX):</p></div>
   1001 <div class="literalblock">
   1002 <div class="content">
   1003 <pre><code>http://tftpd32.jounin.net/</code></pre>
   1004 </div></div>
   1005 </div>
   1006 <div class="sect2">
   1007 <h3 id="_dhcp_config_simple">DHCP config: Simple</h3>
   1008 <div class="paragraph"><p>The PXE protocol uses a very complex set of extensions to DHCP or
   1009 BOOTP.  However, most PXE implementations&#8201;&#8212;&#8201;this includes all Intel
   1010 ones version 0.99n and later&#8201;&#8212;&#8201;seem to be able to boot in a
   1011 "conventional" DHCP/TFTP configuration.  Assuming you don&#8217;t have to
   1012 support any very old or otherwise severely broken clients, this is
   1013 probably the best configuration unless you already have a PXE boot
   1014 server on your network.</p></div>
   1015 <div class="paragraph"><p>A sample DHCP setup, using the "conventional TFTP" configuration,
   1016 would look something like the following, using ISC dhcp 2.0 dhcpd.conf
   1017 syntax:</p></div>
   1018 <div class="listingblock">
   1019 <div class="content">
   1020 <pre><code>allow booting;
   1021 allow bootp;
   1022 
   1023 # Standard configuration directives...
   1024 
   1025 option domain-name "&lt;domain name&gt;";
   1026 option subnet-mask &lt;subnet mask&gt;;
   1027 option broadcast-address &lt;broadcast address&gt;;
   1028 option domain-name-servers &lt;dns servers&gt;;
   1029 option routers &lt;default router&gt;;
   1030 
   1031 # Group the PXE bootable hosts together
   1032 group {
   1033         # PXE-specific configuration directives...
   1034         next-server &lt;TFTP server address&gt;;
   1035         filename "/tftpboot/pxelinux.0";
   1036 
   1037         # You need an entry like this for every host
   1038         # unless you're using dynamic addresses
   1039         host &lt;hostname&gt; {
   1040                 hardware ethernet &lt;ethernet address&gt;;
   1041                 fixed-address &lt;hostname&gt;;
   1042         }
   1043 }</code></pre>
   1044 </div></div>
   1045 <div class="paragraph"><p>Note that if your particular TFTP daemon runs under chroot (tftp-hpa
   1046 will do this if you specify the -s (secure) option; this is highly
   1047 recommended), you almost certainly should not include the /tftpboot
   1048 prefix in the filename statement.</p></div>
   1049 </div>
   1050 <div class="sect2">
   1051 <h3 id="_dhcp_config_pxe_1">DHCP Config: PXE-1</h3>
   1052 <div class="paragraph"><p>If the simple config does not work for your environment, you probably
   1053 should set up a "PXE boot server" on port 4011 of your TFTP server; a
   1054 free PXE boot server is available at:</p></div>
   1055 <div class="paragraph"><p><a href="http://www.kano.org.uk/projects/pxe/">http://www.kano.org.uk/projects/pxe/</a></p></div>
   1056 <div class="paragraph"><p>With such a boot server defined, your DHCP configuration should look
   1057 the same except for an "option dhcp-class-identifier" ("option
   1058 vendor-class-identifier" if you are using DHCP 3.0):</p></div>
   1059 <div class="listingblock">
   1060 <div class="content">
   1061 <pre><code>allow booting;
   1062 allow bootp;
   1063 
   1064 # Standard configuration directives...
   1065 
   1066 option domain-name "&lt;domain name&gt;";
   1067 option subnet-mask &lt;subnet mask&gt;;
   1068 option broadcast-address &lt;broadcast address&gt;;
   1069 option domain-name-servers &lt;dns servers&gt;;
   1070 option routers &lt;default router&gt;;
   1071 
   1072 # Group the PXE bootable hosts together
   1073 group {
   1074         # PXE-specific configuration directives...
   1075         option dhcp-class-identifier "PXEClient";
   1076         next-server &lt;pxe boot server address&gt;;
   1077 
   1078         # You need an entry like this for every host
   1079         # unless you're using dynamic addresses
   1080         host &lt;hostname&gt; {
   1081                 hardware ethernet &lt;ethernet address&gt;;
   1082                 fixed-address &lt;hostname&gt;;
   1083         }
   1084 }</code></pre>
   1085 </div></div>
   1086 <div class="paragraph"><p>Here, the boot file name is obtained from the PXE server.</p></div>
   1087 </div>
   1088 <div class="sect2">
   1089 <h3 id="_dhcp_config_encapsulated">DHCP Config: Encapsulated</h3>
   1090 <div class="paragraph"><p>If the "conventional TFTP" configuration doesn&#8217;t work on your clients,
   1091 and setting up a PXE boot server is not an option, you can attempt the
   1092 following configuration.  It has been known to boot some
   1093 configurations correctly; however, there are no guarantees:</p></div>
   1094 <div class="listingblock">
   1095 <div class="content">
   1096 <pre><code>allow booting;
   1097 allow bootp;
   1098 
   1099 # Standard configuration directives...
   1100 
   1101 option domain-name "&lt;domain name&gt;";
   1102 option subnet-mask &lt;subnet mask&gt;;
   1103 option broadcast-address &lt;broadcast address&gt;;
   1104 option domain-name-servers &lt;dns servers&gt;;
   1105 option routers &lt;default router&gt;;
   1106 
   1107 # Group the PXE bootable hosts together
   1108 group {
   1109         # PXE-specific configuration directives...
   1110         option dhcp-class-identifier "PXEClient";
   1111         option vendor-encapsulated-options 09:0f:80:00:0c:4e:65:74:77:6f:72:6b:20:62:6f:6f:74:0a:07:00:50:72:6f:6d:70:74:06:01:02:08:03:80:00:00:47:04:80:00:00:00:ff;
   1112         next-server &lt;TFTP server&gt;;
   1113         filename "/tftpboot/pxelinux.0";
   1114 
   1115         # You need an entry like this for every host
   1116         # unless you're using dynamic addresses
   1117         host &lt;hostname&gt; {
   1118                 hardware ethernet &lt;ethernet address&gt;;
   1119                 fixed-address &lt;hostname&gt;;
   1120         }
   1121 }</code></pre>
   1122 </div></div>
   1123 <div class="paragraph"><p>Note that this <strong>will not</strong> boot some clients that <strong>will</strong> boot with the
   1124 "conventional TFTP" configuration; Intel Boot Client 3.0 and later are
   1125 known to fall into this category.</p></div>
   1126 </div>
   1127 <div class="sect2">
   1128 <h3 id="_dhcp_config_isc_dhcpd_options">DHCP Config: ISC dhcpd options</h3>
   1129 <div class="paragraph"><p>ISC dhcp 3.0 supports a rather nice syntax for specifying custom
   1130 options; you can use the following syntax in dhcpd.conf if you are
   1131 running this version of dhcpd:</p></div>
   1132 <div class="listingblock">
   1133 <div class="content">
   1134 <pre><code>option space pxelinux;
   1135 option pxelinux.magic      code 208 = string;
   1136 option pxelinux.configfile code 209 = text;
   1137 option pxelinux.pathprefix code 210 = text;
   1138 option pxelinux.reboottime code 211 = unsigned integer 32;</code></pre>
   1139 </div></div>
   1140 <div class="literalblock">
   1141 <div class="content">
   1142 <pre><code>NOTE: In earlier versions of PXELINUX, this would only work as a
   1143 "site-option-space".  Since PXELINUX 2.07, this will work both as a
   1144 "site-option-space" (unencapsulated) and as a "vendor-option-space"
   1145 (type 43 encapsulated.)  This may avoid messing with the
   1146 dhcp-parameter-request-list, as detailed below.</code></pre>
   1147 </div></div>
   1148 <div class="paragraph"><p>Then, inside your PXELINUX-booting group or class (whereever you have
   1149 the PXELINUX-related options, such as the filename option), you can
   1150 add, for example:</p></div>
   1151 <div class="listingblock">
   1152 <div class="content">
   1153 <pre><code># Always include the following lines for all PXELINUX clients
   1154 site-option-space "pxelinux";
   1155 option pxelinux.magic f1:00:74:7e;
   1156 if exists dhcp-parameter-request-list {
   1157         # Always send the PXELINUX options (specified in hexadecimal)
   1158         option dhcp-parameter-request-list = concat(option dhcp-parameter-request-list,d0,d1,d2,d3);
   1159 }
   1160 # These lines should be customized to your setup
   1161 option pxelinux.configfile "configs/common";
   1162 option pxelinux.pathprefix "/tftpboot/pxelinux/files/";
   1163 option pxelinux.reboottime 30;
   1164 filename "/tftpboot/pxelinux/pxelinux.bin";</code></pre>
   1165 </div></div>
   1166 <div class="paragraph"><p>Note that the configfile is relative to the pathprefix: this will look
   1167 for a config file called /tftpboot/pxelinux/files/configs/common on
   1168 the TFTP server.</p></div>
   1169 <div class="paragraph"><p>The "option dhcp-parameter-request-list" statement forces the DHCP
   1170 server to send the PXELINUX-specific options, even though they are not
   1171 explicitly requested.  Since the DHCP request is done before PXELINUX
   1172 is loaded, the PXE client won&#8217;t know to request them.</p></div>
   1173 <div class="paragraph"><p>Using ISC dhcp 3.0 you can create a lot of these strings on the fly.
   1174 For example, to use the hexadecimal form of the hardware address as
   1175 the configuration file name, you could do something like:</p></div>
   1176 <div class="listingblock">
   1177 <div class="content">
   1178 <pre><code>site-option-space "pxelinux";
   1179 option pxelinux.magic f1:00:74:7e;
   1180 if exists dhcp-parameter-request-list {
   1181         # Always send the PXELINUX options (specified in hexadecimal)
   1182         option dhcp-parameter-request-list = concat(option dhcp-parameter-request-list,d0,d1,d2,d3);
   1183 }
   1184 option pxelinux.configfile =
   1185         concat("pxelinux.cfg/", binary-to-ascii(16, 8, ":", hardware));
   1186 filename "/tftpboot/pxelinux.bin";</code></pre>
   1187 </div></div>
   1188 <div class="paragraph"><p>If you used this from a client whose Ethernet address was
   1189 58:FA:84:CF:55:0E, this would look for a configuration file named
   1190 "/tftpboot/pxelinux.cfg/1:58:fa:84:cf:55:e".</p></div>
   1191 </div>
   1192 </div>
   1193 </div>
   1194 <div class="sect1">
   1195 <h2 id="_known_issues">KNOWN ISSUES</h2>
   1196 <div class="sectionbody">
   1197 <div class="paragraph"><p>The following problems are known with PXELINUX, so far:</p></div>
   1198 <div class="ulist"><ul>
   1199 <li>
   1200 <p>
   1201 The error recovery routine doesn&#8217;t work quite right.  For right now,
   1202   it just does a hard reset - seems good enough.
   1203 </p>
   1204 </li>
   1205 <li>
   1206 <p>
   1207 We should probably call the UDP receive function in the keyboard
   1208   entry loop, so that we answer ARP requests.
   1209 </p>
   1210 </li>
   1211 <li>
   1212 <p>
   1213 Boot sectors/disk images are not supported yet.
   1214 </p>
   1215 </li>
   1216 </ul></div>
   1217 <div class="paragraph"><p>If you have additional problems, please contact the Syslinux mailing
   1218 list (see syslinux.txt for the address.)</p></div>
   1219 <div class="sect2">
   1220 <h3 id="_broken_pxe_stacks">Broken PXE stacks</h3>
   1221 <div class="paragraph"><p>Lots of PXE stacks, especially old ones, have various problems of
   1222 varying degrees of severity.  Please see:</p></div>
   1223 <div class="literalblock">
   1224 <div class="content">
   1225 <pre><code>http://syslinux.zytor.com/hardware.php</code></pre>
   1226 </div></div>
   1227 <div class="olist lowerroman"><ol class="lowerroman">
   1228 <li>
   1229 <p>
   1230 for a list of currently known hardware problems, with workarounds
   1231 if known.
   1232 </p>
   1233 </li>
   1234 </ol></div>
   1235 <div class="paragraph"><p>There are a number of extremely broken PXE stacks in the field.  The
   1236 gPXE project (formerly known as Etherboot) provides an open-source PXE
   1237 stack that works with a number of cards, and which can be loaded from
   1238 a CD-ROM, USB key, or floppy if desired.</p></div>
   1239 <div class="paragraph"><p>Information on gPXE is available from:</p></div>
   1240 <div class="literalblock">
   1241 <div class="content">
   1242 <pre><code>http://www.etherboot.org/</code></pre>
   1243 </div></div>
   1244 <div class="olist lowerroman"><ol class="lowerroman">
   1245 <li>
   1246 <p>
   1247 and ready-to-use ROM or disk images from:
   1248 </p>
   1249 <div class="literalblock">
   1250 <div class="content">
   1251 <pre><code>http://www.rom-o-matic.net/</code></pre>
   1252 </div></div>
   1253 </li>
   1254 </ol></div>
   1255 <div class="paragraph"><p>Some cards, like may systems with the SiS 900, has a PXE stack which
   1256 works just barely well enough to load a single file, but doesn&#8217;t
   1257 handle the more advanced items required by PXELINUX.  If so, it is
   1258 possible to use the built-in PXE stack to load gPXE, which can then
   1259 load PXELINUX.  See:</p></div>
   1260 <div class="literalblock">
   1261 <div class="content">
   1262 <pre><code>http://www.etherboot.org/wiki/pxechaining</code></pre>
   1263 </div></div>
   1264 </div>
   1265 </div>
   1266 </div>
   1267 <div class="sect1">
   1268 <h2 id="_notes">NOTES</h2>
   1269 <div class="sectionbody">
   1270 <div class="sect2">
   1271 <h3 id="_mtftp">MTFTP</h3>
   1272 <div class="paragraph"><p>PXELINUX does not support MTFTP, and there are no plans of doing so, as
   1273 MTFTP is inherently broken for files more than 65535 packets (about 92
   1274 MB) in size.  It is of course possible to use MTFTP for the initial
   1275 boot, if you have such a setup.  MTFTP server setup is beyond the scope
   1276 of this document.</p></div>
   1277 </div>
   1278 <div class="sect2">
   1279 <h3 id="_error_recovery">Error Recovery</h3>
   1280 <div class="paragraph"><p>If the boot fails, PXELINUX (unlike SYSLINUX) will not wait forever;
   1281 rather, if it has not received any input for approximately five
   1282 minutes after displaying an error message, it will reset the machine.
   1283 This allows an unattended machine to recover in case it had bad enough
   1284 luck of trying to boot at the same time the TFTP server goes down.</p></div>
   1285 </div>
   1286 </div>
   1287 </div>
   1288 <div class="sect1">
   1289 <h2 id="_see_also">SEE ALSO</h2>
   1290 <div class="sectionbody">
   1291 <div class="paragraph"><p><strong>syslinux.cfg</strong>(5), <strong>syslinux-cli</strong>(1), <strong>lilo</strong>(8), <strong>keytab-lilo.pl</strong>(8),
   1292 <strong>fdisk</strong>(8), <strong>mkfs</strong>(8), <strong>superformat</strong>(1).</p></div>
   1293 </div>
   1294 </div>
   1295 <div class="sect1">
   1296 <h2 id="_author">AUTHOR</h2>
   1297 <div class="sectionbody">
   1298 <div class="paragraph"><p>This AsciiDoc derived document is a modified version of the original
   1299 <strong>SYSLINUX</strong> documentation by H. Peter Anvin &lt;<a href="mailto:hpa (a] zytor.com">hpa (a] zytor.com</a>&gt;.  The conversion
   1300 to an AsciiDoc was made by Gene Cumm &lt;<a href="mailto:gene.cumm (a] gmail.com">gene.cumm (a] gmail.com</a>&gt;</p></div>
   1301 </div>
   1302 </div>
   1303 </div>
   1304 <div id="footnotes"><hr /></div>
   1305 <div id="footer">
   1306 <div id="footer-text">
   1307 Last updated 2014-01-17 16:09:56 PST
   1308 </div>
   1309 </div>
   1310 </body>
   1311 </html>
   1312