IPXE Advanced Menu or Memdisk Problem
-
In the advanced.php file we already have a setting that gets your systems ip and webroot.
The start of the file is:
[code]print “#!ipxe\n”;
print “console\n”;
print “set fog-ip “.$FOGCore->getSetting(‘FOG_WEB_HOST’).”\n”;
print “set fog-webroot “.basename($FOGCore->getSetting(‘FOG_WEB_ROOT’)).”\n”;[/code]What does this mean? You don’t need to set the same fields unless you’re trying to point it another server. The only exception would be the boot url with:
[code]set boot-url http://${fog-ip}/${fog-webroot}[/code]So your code as below:
[code]
set fog-server IP-ADDRESS
set boot-url http://IP-ADDRESS/fog/:start-http
menu City of Lewiston - Imaging and Diagnosticsitem VMware VMware - Live
item DellDiag Dell Diagnostics
item hostinfo Host Informaton (Your Machine Info)#item foginfo FOG system info
choose fog-opt && goto ${fog-opt}
:VMware
initrd http://IP-ADDRESS/fog/service/ipxe/VMware/TinyCORE.iso raw
kernel http://IP-ADDRESS/fog/service/ipxe/memdisk
boot:DellDiag
initrd http://IP-ADDRESS/fog/service/ipxe/DellDiagnostics/DellDiag-7.iso
kernel http://IP-ADDRESS/fog/service/ipxe/memdisk iso raw ||
boot:hostinfo
echo This computer : ||
echo MAC address…${net0/mac} ||
echo IP address…${ip} ||
echo Netmask…${netmask} ||
echo Serial…${serial} ||
echo Asset number…${asset} ||
echo Manufacturer…${manufacturer} ||
echo Product…${product} ||
echo BIOS platform…${platform} ||
echo ||
echo press any key to return to Menu ||
promptgoto MENU[/code] Should “work” but I don’t know where it’s failing specifically. The nice part is you probably are calling the wrong method: Memdisk should always call the type of file and method (e.g. iso raw) So I’d try this:
[code]set boot-url http://IP-ADDRESS/fog/
:MENU
menu
item --gap – City of Lewiston - Imaging and Diagnostics
item VMware VMware - Live
item DellDiag Dell Diagnostics
item hostinfo Host Informaton (Your Machine Info)
choose fog-opt target && goto ${target}
:VMware
initrd ${boot-url}/service/ipxe/VMware/TinyCORE.iso
chain ${boot-url}/service/ipxe/memdisk raw iso
boot
:DellDiag
initrd ${boot-url}/service/ipxe/DellDiagnostics/DellDiag-7.iso
chain ${boot-url}/service/ipxe/memdisk iso raw
boot
:hostinfo
echo This computer :
echo MAC address…${net0/mac}
echo IP address…${ip}
echo Netmask…${netmask}
echo Serial…${serial}
echo Asset number…${asset}
echo Manufacturer…${manufacturer}
echo Product…${product}
echo BIOS platform…${platform}
echo
echo press any key to return to Menu
prompt && goto MENU[/code]Hopefully this helps. Remember that the || means OR that. So your hostinfo would only print This computer: MAC Address…${net0/mac} OR IP Address OR Netmask OR Serial only as things failed.
-
minor correction for tom: each line of the ipxe file is seen as a new command, so the || at the end of a line only meand ‘do this’ “or” ‘nothing’
if ‘do this’ fails, this is a failure to execute a command, if there is a “or” ‘nothing’ then the line is a success, because it successfully does nothing.
each line after a ||
will be executed -
Thank you to both of you. Good education. Although using the code copied from Tom with the IP-ADDRESS filled in I have a new problem. the advanced menu doesn’t appear any more. the screen flashes and returns to the standard menu. Is there a walk through or instructional guide available for the current release on how to set an ISO as a boot-able option? I am guessing not or you would have sent me that way already.
-
Side note I was playing around with the iso and raw options as you can see where the DellDiag option had it and the VMware one didn’t I was hoping to find the magic combination but was unsuccessful.
-
-
let’s try this again
[CODE]
set boot-url http://${fog-ip}/${fog-webroot}
:MENU
menu
item --gap – City of Lewiston - Imaging and Diagnostics
item VMware VMware - Live
item DellDiag Dell Diagnostics
item hostinfo Host Informaton (Your Machine Info)
choose target && goto ${target}:VMware
initrd ${boot-url}/service/ipxe/VMware/TinyCORE.iso
chain memdisk iso raw ||
echo failed to boot
prompt
goto MENU:DellDiag
initrd ${boot-url}/service/ipxe/DellDiagnostics/DellDiag-7.iso
chain memdisk iso raw ||
echo failed to boot
prompt
goto MENU:hostinfo
echo This computer : ||
echo MAC address…${net0/mac} ||
echo IP address…${ip} ||
echo Netmask…${netmask} ||
echo Serial…${serial} ||
echo Asset number…${asset} ||
echo Manufacturer…${manufacturer} ||
echo Product…${product} ||
echo BIOS platform…${platform} ||
echo ||
echo press any key to return to Menu ||
prompt
goto MENU
[/CODE] -
It Worked! Your Awesome.
[CODE]set boot-url http://${fog-ip}/${fog-webroot}
:start-http
menu City of Lewiston - Imaging and Diagnosticsitem VMware VMware - Live
item DellDiag Dell Diagnostics
item hostinfo Host Informaton (Your Machine Info)
choose target && goto ${target}:VMware
initrd ${boot-url}/ISO/VMware/TinyCORE.iso
chain memdisk iso raw ||
echo failed to boot
prompt
goto MENU:DellDiag
initrd ${boot-url}/ISO/DellDiagnostics/DellDiag-7.iso
chain memdisk iso raw ||
echo failed to boot
prompt
goto MENU:hostinfo
echo This computer : ||
echo MAC address…${net0/mac} ||
echo IP address…${ip} ||
echo Netmask…${netmask} ||
echo Serial…${serial} ||
echo Asset number…${asset} ||
echo Manufacturer…${manufacturer} ||
echo Product…${product} ||
echo BIOS platform…${platform} ||
echo
echo press any key to return to Menu
prompt
MENU[/CODE]This worked nicely! I had to change the last MENU prompt from your code. For some reason it would through up a bunch of “stuff” (for lack of my current knowledge or caring as to what it was talking about) and would restart. Once I changed it the screen would refresh after the prompt to the menu. Before after the prompt it would do the restart thing.
I also changed the main folder for the ISO images to one I noticed you used from your other posts. Made more sense and was easier. I wonder what memdisk file it is pulling up with the chain command compared to the original one where I specified the path.
-
Well I spoke to soon-ish. I can get TinyCore to boot but the GUI for it never loads it just boots into a terminal. on the same note the other items I have set to boot which all have the same settings just flash the menu screen back up. They don’t want to actually boot. bummer.
-
well, now that you have a basic idea how the ipxe menu system works, i suggest going over to ipxe.org to get more information about your specific boot needs
-
I have the same issue with the Advanced Menu. If i choose the Advanced Menu it just flashes, the screen turns blue and has the default menu back on the screen. I had this working in version 1.0.1 and had to update to the latest 1.1.0 trunk to get my snapins to work. Not sure where to go from here. Any ideas?
-
here is my code…
:MENU
menu
item --gap – ---------------- iPXE boot menu ----------------
item WIN7PE64BIT Win7 64bit Recovery Console
item WIN7PE32BIT Win7 32bit Recovery Console
item BOOTCD Hirens BootCD
item shell ipxe shell
item return return to previous menu
choose --default WIN7PE64BIT --timeout 5000 target && goto ${target}:WIN7PE64BIT
initrd [url]http://${boot-url}/MenuItems/Win7-64bit/7rd64.iso[/url]
chain [url]http://${boot-url}/MenuItems/Win7-64bit/memdisk[/url] iso raw
goto MENU:WIN7PE32BIT
initrd [url]http://${boot-url}/MenuItems/Win7-32bit/7rd32.iso[/url]
chain memdisk iso raw ||
goto MENU:BOOTCD
initrd [url]http://${boot-url}/MenuItems/bootcd/bootcd14.iso[/url]
chain memdisk iso raw ||
goto MENU:ipxedemo
chain [url]http://boot.ipxe.org/demo/boot.php[/url] ||
goto MENU:shell
shell ||
goto MENU:return
chain [url]http://${fog-ip}/${fog-webroot}/service/ipxe/boot.php?mac=${net0/mac}[/url] ||
prompt
goto MENUautoboot
-
the ${boot-url} parameter already sets the http part of the url. So try this below:
menu
item --gap – ---------------- iPXE boot menu ----------------
item WIN7PE64BIT Win7 64bit Recovery Console
item WIN7PE32BIT Win7 32bit Recovery Console
item BOOTCD Hirens BootCD
item shell ipxe shell
item return return to previous menu
choose --default WIN7PE64BIT --timeout 5000 target && goto ${target}:WIN7PE64BIT
initrd ${boot-url}/MenuItems/Win7-64bit/7rd64.iso
chain ${boot-url}/MenuItems/Win7-64bit/memdisk iso raw
goto MENU:WIN7PE32BIT
initrd ${boot-url}/MenuItems/Win7-32bit/7rd32.iso
chain memdisk iso raw ||
goto MENU:BOOTCD
initrd ${boot-url}/MenuItems/bootcd/bootcd14.iso
chain memdisk iso raw ||
goto MENU:ipxedemo
chain http://boot.ipxe.org/demo/boot.php ||
goto MENU:shell
shell ||
goto MENU:return
chain http://${fog-ip}/${fog-webroot}/service/ipxe/boot.php?mac=${net0/mac} ||
prompt
goto MENUautoboot[/code]
-
Ahhhh,
Yeah, it fails loading the console picture.
This is now fixed in SVN. Please update and sorry about that.
-
That worked!!! Thanks a ton!
Andy
-
Is there anyway to add the password option to these advanced items like in version .32?
Thanks,
Andy Morris -
Yes, and no.
The password “options” are no longer using md5pass as they once where.
The easiest method would be to add login prompts.
I don’t know much more about all the details you’d need though.
-
Just wanted to protect the items like it did in .32. I will take a look.
Thanks,Andy
-
That works!! Thanks again.
-
I’m still experiencing Advanced Menu selection issue mentioned by Danny and Andy. Screen flickers and default menu appears with blue background.
Tested with svn 1783 and 1799
I will update the subversion again now to see if there is any difference.
I’ve been using Junkhackers sample code from [URL=‘http://fogproject.org/forum/threads/fog-0-33b-edit-pxe-menu.10403/#post-26419’]this post[/URL]
menu
item --gap – ---------------- iPXE boot menu ----------------
item ipxedemo ipxe online boot demo
item shell ipxe shell
item return return to previous menu
choose --default return --timeout 5000 target && goto ${target}:ipxedemo
chain [url]http://boot.ipxe.org/demo/boot.php[/url] ||
goto MENU:shell
shell ||
goto MENU:return
chain [url]http://${fog-ip}/${fog-webroot}/service/ipxe/boot.php?mac=${net0/mac}[/url] ||
prompt
goto MENUautoboot[/FONT]
-
check for typo’s and/or hidden symbols from copying and pasting. ipxe is very picky
[url]http://www.fogproject.org/wiki/index.php/Advanced_Boot_Menu_Configuration_options[/url]