[syslinux] Syslinux 5 (i)pxelinux.0 unnecessary PATH requests

Shao Miller sha0.miller at gmail.com
Wed Dec 12 09:42:27 PST 2012


On 12/12/2012 12:16, Shao Miller wrote:
> On 12/12/2012 11:35, Thomas Bächler wrote:
>> Am 12.12.2012 16:43, schrieb Shao Miller:
>>> On 12/12/2012 07:54, Thomas Bächler wrote:
>>>> Am 11.12.2012 19:50, schrieb Shao Miller:
>>>>> Are you using DHCP option 210?  It is documented in
>>>>> doc/pxelinux.txt and
>>>>> is related to where PXELINUX goes looking for things.  Yes, PATH
>>>>> cannot
>>>>> be processed until ldlinux.c32 is fetched, but option 210 is processed
>>>>> before.  - Shao
>>>>
>>>> As Arends also pointed out, this is not very helpful.
>>>>
>>>> I have setups where I set 210 to the root, and set filename to
>>>> /path/to/pxelinux.0. A better alternative would be to look in the
>>>> dirname of the boot filename first.
>>>
>>> That is exactly what doc/pxelinux.txt documents that PXELINUX does
>>> _without_ option 210.  You are _overriding_ "the dirname of the boot
>>> filename" by using 210.  - Shao
>>
>> By using 210, I am setting the root path of _everything_, i.e., what '/'
>> refers to. I cannot use .. or / to escape this path.
>
> I don't follow.  210 sets the initial current working directory.  It
> doesn't do anything like a chroot.  For example, at the "boot:" prompt:
>
>    config.c32 http://webserver/path/to/configfile
> http://webserver/new/curdir
>
> Then configfile will be loaded and /new/curdir on the web-server will be
> the current working directory.
>

Or to address your ".." concern:

   config.c32 ../../path/to/configfile ../../new/curdir/

works.

I think part of the confusion is because of URIs involving HTTP.  It is 
a case where using a non-URI absolute path yields a different result 
than using a URI absolute path.  For example, if the current working 
directory is:

   http://webserver/my/path/

then the absolute filename:

   /test

results in:

   http://webserver/my/path//test

instead of what you might expect:

   http://webserver/test

In this way, even absolute paths are still relative to the current 
working directory, if the CWD is a URI and the absolute path is not.

If the CWD was:

   http://webserver/some.cgi?dyn_gen_file=

then you might see that:

   http://webserver/some.cgi?dyn_gen_file=/test

could be handy, even if a bit odd.

However there is nothing to prevent you from changing the current 
working directory to:

   http://webserver/

if that's what you want, when you're ready to do it.

- Shao Miller



More information about the Syslinux mailing list