IPXE Advanced Menu or Memdisk Problem
- 
 I am not sure if I have my advanced menu written poorly or if I have a problem with my memdisk file. I tried another memdisk file provided in another post [url]http://fogproject.org/forum/threads/pxe-boot-goldmemory.12/[/url] This had no change. Below is my Advanced menu script and below that I will include my error message. #/ Begin Boot Menu. the Pound and slash are not part of the menu script 
 set fog-server IP-ADDRESS
 set boot-url [url]http://IP-ADDRESS/fog/[/url]: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 [url]http://IP-ADDRESS/fog/service/ipxe/VMware/TinyCORE.iso[/url] raw
 kernel [url]http://IP-ADDRESS/fog/service/ipxe/memdisk[/url]
 boot:DellDiag 
 initrd [url]http://IP-ADDRESS/fog/service/ipxe/DellDiagnostics/DellDiag-7.iso[/url]
 kernel [url]http://IP-ADDRESS/fog/service/ipxe/memdisk[/url] 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 /#end menu MEMDISK: Image has fraction end sector 
 MEMDISK: Image seems to have fractional end cylinder
 Disk is hd0, 37038 k, C/H/S = 36/64/32 (guess/guess), EDD on, rw
 Using safe INT 15h access to high memory
 Total size needed = 2381 bytes, allocating 3K
 Old dos memory at 0x8e400 (map says 0e8400), loading at 0x8d800
 1588: 0xffff 15E801: 0x3c00 0x7b17
 INT 13 08: Success, count = 2, BPT = 0000:0000
 old: int13 = 8e40000a int15 = 8e40037f int1e = f000efc7
 new: int13 = 8d40000a int15 = 8d80037f int1e = f000efc7
 Loading boot sector… booting… <------ This is where the machine will hang forever.I can’t seem to make it past this part. any help would be appreciated and an education would be even more appreciated!  Note to the Developers: Awesome Product and Service you provide. Just plain incredible. 
- 
 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. 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. 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] 

