You the man Andrew!  You were spot on! 

I had tried "clear filename", "clear net0/filename", clear
"net0.dhcp/filename" many times before, but with no love.. but options
66 and 67 were as you say. 

However, despite that, the solution was precisely what I had hoped to
actually make a feature request.... that is: "chain tftp://server/image";
works perfectly!  I didn't see that documented anywhere, but it works,
and that's absolutely perfect because it will make the scripts that much
more clear.

Thanks Andrew!  I'll see about getting wiki edit access to write up some
of this a little more clearly for the masses.

benr.



On 10/31/10 12:11 PM, Andrew Bobulsky wrote:
> Hello Ben,
>
> I think the behavior that you're experiencing is similar to what
> usually baffles people the first time they try to drop gPXE into into
> a PXELINUX environment.  Getting the protocols to be used when and
> where you want them without being extremely explicit in your scripts
> tends to be a bit of a configuration chore.
>
> I /think/ that what you're experiencing comes from your DHCP option
> 67, where I'm guessing you've specified an HTTP URI.  Because that's a
> URI that starts with HTTP, gPXE will assume that any "unspecified"
> filenames will begin with the prefix that's sitting on your option 67
> string.  Conversely, when you perform the Ctrl-B and clear the
> filenames from the command line, it defaults back to TFTP behavior.
>
> The only thing I can think of is to try taking your SMBIOS based CGI
> script and tossing the "clear filename" and/or "clear
> net0.dhcp/filename" directive[s] in it before the "chain pxegrub"
> command.  As long as gPXE still has your boot server specified from
> DHCP (option 66 I think... I could have server/filename reversed in my
> head ;D) in the absence of HTTP being specified anywhere in the URI
> you present to the "chain" command, gPXE /should/ default back to
> TFTP....  though I might be wrong there, as I've never tried it!
>
> Secondly, the other thing you could do is to try specifying TFTP on
> your chain command like so:
>
> chain TFTP://${next-server}/pxegrub <TFTP://$%7Bnext-server%7D/pxegrub>
>
> That might work too.
>
> Cheers,
> Andrew Bobulsky
>
>
> On Oct 31, 2010, at 6:40 AM, Ben Rockwood wrote:
>
>> I'm trying to augment my existing PXE deployment with gPXE to allow for
>> scripting via CGI, etc..
>>
>> In the "usual" way (according to the docs) I TFTP gPXE, it autoboots and
>> grabs a URL from DHCP, then the gpxe script tells it to chainload a
>> different URL based on the SMBIOS serial
>> (http://server/${serial}.gpxe <http://server/$%7Bserial%7D.gpxe>).
>> So up to the point of chainloading the second gpxe script everything is
>> by the book.
>>
>> My problem is that from the HTTP script I want to TFTP boot.  According
>> to the docs and video talks, any path that doesn't contain "http://";
>> should be interpreted as TFTP... but this isn't the case.  Instead,
>> "chain pxegrub" acts as though I mistakenly left off the base URL and
>> fills it in for me.  I've even tried "chain /pxegrub", etc, but no luck.
>>
>> So here's the wierd part that confuses the hell out of me.  If I boot to
>> gPXE, bail out to the CLI and then walk it though my steps manually it
>> works.  That is, if I do the following I'm fine via CLI:
>>
>> <control-b>
>> ifopen net0
>> dhcp net0
>> clear net0.dhcp/filename
>> clear filename
>> chain pxegrub
>>
>> Like I said, the above proceedure done manually works just great.  I can
>> boot my old SYSLINUX and PXEGRUB images via TFTP just as I always have.
>> But if I translate the above into gpxe scripts from HTTP it doesn't work.
>>
>> I've tried all manner for clearing variables, imgfree, etc, etc, etc.
>> No matter what I do, I can't TFTP from an HTTP boot script.
>>
>>
>> Please oh please, can someone point me in the right direction?  I've
>> spent hours going round and round, and I'm sure its gotta be something
>> simple I'm missing.
>>
>> benr.
>> _______________________________________________
>> gPXE mailing list
>> gPXE@etherboot.org <mailto:gPXE@etherboot.org>
>> http://etherboot.org/mailman/listinfo/gpxe
>
>
> _______________________________________________
> gPXE mailing list
> gPXE@etherboot.org
> http://etherboot.org/mailman/listinfo/gpxe

_______________________________________________
gPXE mailing list
gPXE@etherboot.org
http://etherboot.org/mailman/listinfo/gpxe

Reply via email to