Fog 0.33b edit PXE menu
-
Further to what Tom says, as you have noticed ipxe has a completely different menu structure to pxelinux which 0.32 used.
If you set anything in the fog settings->pxe boot menu->advanced configuration menu a new item (advanced) will appear at the bottom of the first level menu.
What you have to do is make sure that what you put in the advanced configuration menu is a valid ipxe menu.The example from the above post is below, note that the code inserts #!ipxe as the first line.
:MENU
menu
item example1 Boot to disk
item example2 Iso Boot
item example3 Example Text 3
:example1
sanboot --no-describe --drive 0x80 || goto MENU
:example2
kernel memdisk iso raw
initrd win764.iso
boot || goto MENU
:example3
kernel memdisk iso raw
initrd win8-164.iso
boot || goto MENU
autobootIt is useful to point you browser at the following urls, you can then see what is returned as the menu.
[url]http://<fog[/url] ip>/fog/service/ipxe/boot.php for the initial menu.
[url]http://<fog[/url] ip>/fog/service/ipxe/advanced.php for the advanced.you need to make sure that the files you are trying to use, (initrd, win764 etc) , can be accessed via http,
The example below is an adaptation of one I have used at work, I’ve not tested it in this form, but you would need to copy memdisk and the diags files to a fog/dell folder in the apache folder.
Don’t forget to change the ip address below to that of your fog server.set fog-server 192.168.1.11
set boot-url [url]http://${fog-server}/fog/[/url]FONT=Courier Newmenu Imaging and Diagnostics[/FONT]
FONT=Courier Newitem dell1 Dell Diags - GX760 GX380 E5400 XT2 E4200[/FONT]
FONT=Courier Newitem dell2 Dell Diags - D4x0 D600-D630 GX240-GX755 P370-T3400[/FONT]
FONT=Courier Newitem dell3 Dell Diags - XT[/FONT]
FONT=Courier Newitem dell4 Dell Diags - T1500[/FONT]
FONT=Courier New#item foginfo FOG system info[/FONT]
FONT=Courier New [/FONT]
FONT=Courier New [/FONT]
FONT=Courier Newitem shell shell[/FONT]
FONT=Courier New [/FONT]
FONT=Courier New [/FONT]
FONT=Courier Newchoose fog-opt && goto ${fog-opt}[/FONT]
FONT=Courier New [/FONT]FONT=Courier New [/FONT]
FONT=Courier New:dell1[/FONT]
FONT=Courier Newkernel ${boot-url}fog/dell/memdisk raw[/FONT]
FONT=Courier Newinitrd ${boot-url}fog/dell/diags1.img [/FONT]
FONT=Courier Newboot[/FONT]
FONT=Courier New [/FONT]
FONT=Courier New:dell2[/FONT]
FONT=Courier Newkernel ${boot-url}fog/dell/memdisk raw[/FONT]
FONT=Courier Newinitrd ${boot-url}fog/dell/diags2.img [/FONT]
FONT=Courier Newboot[/FONT]
FONT=Courier New [/FONT]
FONT=Courier New:dell3[/FONT]
FONT=Courier Newkernel ${boot-url}fog/dell/memdisk raw[/FONT]
FONT=Courier Newinitrd ${boot-url}fog/dell/diags3.img [/FONT]
FONT=Courier Newboot[/FONT]
FONT=Courier New [/FONT]
FONT=Courier New:dell4[/FONT]
FONT=Courier Newkernel ${boot-url}fog/dell/memdisk raw[/FONT]
FONT=Courier Newinitrd ${boot-url}fog/dell/diags4.img [/FONT]
FONT=Courier Newboot[/FONT]
FONT=Courier New [/FONT]
FONT=Courier New [/FONT]
FONT=Courier New:foginfo[/FONT]
FONT=Courier Newkernel ${boot-url}fog/kernel/bzImage root=/dev/ram0 rw ramdisk_size=127000 ip=dhcp dns= keymap= web=${fog-server}/fog/ loglevel=4 consoleblank=0 mode=sysinfo[/FONT]
FONT=Courier Newinitrd ${boot-url}fog/images/init.gz [/FONT]
FONT=Courier Newboot[/FONT]
FONT=Courier New [/FONT]
FONT=Courier New:shell[/FONT]
FONT=Courier Newshell[/FONT]Hope this helps
-
[quote=“jbsclm, post: 26417, member: 3158”]Further to what Tom says, as you have noticed ipxe has a completely different menu structure to pxelinux which 0.32 used.
If you set anything in the fog settings->pxe boot menu->advanced configuration menu a new item (advanced) will appear at the bottom of the first level menu.
What you have to do is make sure that what you put in the advanced configuration menu is a valid ipxe menu.The example from the above post is below, note that the code inserts #!ipxe as the first line.
…[/quote]
Very informative, I know this will be of use to me in the near future thank you!
-
i feel i should point out that yesterday Tom and I came up with an idea and added it to the advanced.php file.
[CODE]print “set fog-ip “.$FOGCore->getSetting(‘FOG_WEB_HOST’).”\n”;
print “set fog-webroot “.basename($FOGCore->getSetting(‘FOG_WEB_ROOT’)).”\n”;
[/CODE]
have been added so that you may use the ipxe variables “fog-ip” and “fog-webroot” for the creation of menus. here is a usable example that you should be able to paste into your advanced menu setting field without modification.
[CODE]:MENU
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 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]
-
here is an example of a menu for loading WinPE based ISO disks from a folder named ISO in the root of the web server
[CODE]:MENU
menu
item --gap – ---------------- iPXE boot menu ----------------
item WIN7PE64BIT Boot Windows 7 64 bit iso
item WIN7PE32BIT Boot Windows 7 32 bit iso
item shell ipxe shell
item return return to previous menu
choose --default WIN7PE64BIT --timeout 5000 target && goto ${target}:WIN7PE64BIT
initrd http://${fog-ip}/ISO/Win7PE_x64.ISO
chain memdisk iso raw ||
goto MENU:WIN7PE32BIT
initrd http://${fog-ip}/ISO/Win7PE_x86.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]
-
My only regret is that I can only give a post one ‘like’.
-
a bunch of people liked those, so i’ll give you one more just to show more with ipxe
[CODE]
:MENU
menu
item --gap – ---------------- iPXE boot menu ----------------
item ipxedemo ipxe online boot demo
item shell ipxe shell
item return return to previous menu
item hostinfo details about this computer
choose --default return --timeout 5000 target && goto ${target}: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 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 MENUautoboot
[/CODE] -
Could someone do an entry for GParted? The [URL=‘http://www.fogproject.org/wiki/index.php?title=Include_GParted’]Include Gparted[/URL] wiki page is out of date now and I can’t get the ISO to boot properly using the methods above.
I get as far as the GParted grub menu but once I try to boot to gparted, I get pages of
[CODE]modprobe: module unknown not found in modules.dep[/CODE]
followed by a blackscreen.iPXE menu entry below
[CODE]:gparted
initrd http://${fog-ip}/ISO/gparted-live-0.18.0-2-i486.iso
chain memdisk iso raw ||
goto MENU[/CODE]I found this which appears to be the same issue (a memdisk issue) but I am not sure how to implement the fix.
[url]http://gparted-forum.surf4.info/viewtopic.php?id=16884[/url] -
UPDATE; I got it working.
I copied vmlinuz, initrd.img and filesystem.squashfs from gparted into /var/www/fog/gparted/
and then updated my iPXE menu as follows:kernel http://${fog-ip}/fog/gparted/vmlinuz
initrd http://${fog-ip}/fog/gparted/initrd.img
imgargs vmlinuz boot=live config union=aufs noswap noprompt vga=788 fetch=http://${fog-ip}/fog/gparted/filesystem.squashfs
boot[/CODE]All tested and working now.
-
Hi!
To contribute a little, here is my advanced menu:
[CODE]# Chemin de boot de FOG
set boot_url http://${fog-ip}/fog_boot/
set boot_nfs ${fog-ip}:/images/fog_boot/Détection de l’architecture
isset ${arch} && goto skip_arch_detect ||
cpuid --ext 29 && set arch x86_64 || set arch i386
:skip_arch_detect:MENU
menu
item --gap – --------------------- Outils ---------------------
item SystemRescueCD Lancer SystemRescueCD (${arch})
item --gap –
item Debian Installer Debian Stable
item WS2008R2 Installer Windows Server 2008R2
item WS2012R2 Installer Windows Server 2012R2
#item --gap –
#item lubuntu32 Lubuntu 14.04 LTS (32 bits)
item --gap –
item retour Retouner au menu principal
choose --default SystemRescueCD --timeout 10000 target && goto ${target}:SystemRescueCD
initrd ${boot_url}sysrescuecd/initram.igz
kernel ${boot_url}sysrescuecd/rescue_${arch} scandelay=1 dostartx docache nfsboot=${boot_nfs}sysrescuecd/ setkmap=fr
boot
goto MENU:Debian
#set dir ${dir}${menu}-installer/${arch_a}/
imgfree
kernel http://ftp.fr.debian.org/debian/dists/stable/main/installer-amd64/current/images/netboot/debian-installer/amd64/linux priority=low ${desktop_param} – quiet ${params}
initrd http://ftp.fr.debian.org/debian/dists/stable/main/installer-amd64/current/images/netboot/debian-installer/amd64/initrd.gz
boot:WS2008R2
sanboot ${boot_url}discimg/WS2008R2.iso
goto MENU:WS2012R2
sanboot ${boot_url}discimg/WS20128R2.iso
goto MENU:precedent
chain http://${fog-ip}/${fog-webroot}/service/ipxe/boot.php?mac=${net0/mac} ||
prompt
goto MENUautoboot[/CODE]
-
where must i copy the iso files?
Grezz
-
to whatever location you specified in the menu
-
okay. i saved the iso under var/www/fog/Win7AIO/WindowsAIO.iso. but it doesnt work.
:MENU
menu
item --gap – ---------------- iPXE boot menu ----------------
item WIN7PE64BIT Boot Windows 7 64 bit iso
item WIN7PE32BIT Boot Windows 7 32 bit iso
item shell ipxe shell
item return return to previous menu
choose --default WIN7PE64BIT --timeout 5000 target && goto ${target}:WIN7PE64BIT
initrd var/www/fog/Win7AIO/WindowsAIO.iso
chain memdisk iso raw ||
goto MENU:WIN7PE32BIT
initrd [url]http://${fog-ip}/ISO/Win7PE_x86.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
-
pls help
-
The client doesn’t understand paths on the fog server, only http paths.
:WIN7PE64BIT
initrd var/www/fog/Win7AIO/WindowsAIO.iso
chain memdisk iso raw ||
goto MENUNeeds to be
:WIN7PE64BIT
initrd [URL=‘http://$%7Bfog-ip%7D/$%7Bfog-webroot%7D/service/ipxe/boot.php?mac=$%7Bnet0/mac%7D’]http://${fog-ip}/${fog-webroot}[/URL]/Win7AIO/WindowsAIO.iso
chain memdisk iso raw ||
goto MENUOR
:WIN7PE64BIT
initrd [URL=‘http://$%7Bfog-ip%7D/$%7Bfog-webroot%7D/service/ipxe/boot.php?mac=$%7Bnet0/mac%7D’]http://${fog-ip}/fog[/URL]/Win7AIO/WindowsAIO.iso
chain memdisk iso raw ||
goto MENUBoth should tell the client to look in the same place, although the first form is preferable.
If this fails check your apache log, it will tell you where i is looking for the iso.
-
okay thx, where i find the apache log?
-
The log location is os dependent,
Debian based Location (normally)
/var/log/apache2
Redhat based Location (normally)
/var/log/httpdthere are 2 logs, access.log and error.log.
The messages you need will probably be in the access log, search for WindowsAIO.iso starting at the end, you should see a status 404, which says not found
You can test by typing the following in to your browser[URL=‘http://$%7Bfog-ip%7D/$%7Bfog-webroot%7D/service/ipxe/boot.php?mac=$%7Bnet0/mac%7D’]http://<fog_ip_address>/fog[/URL]/Win7AIO/WindowsAIO.iso
replacing <fog_ip_address> with your fog server ip.eg
[URL=‘http://$%7Bfog-ip%7D/$%7Bfog-webroot%7D/service/ipxe/boot.php?mac=$%7Bnet0/mac%7D’]http://192.168.3.11/fog[/URL]/Win7AIO/WindowsAIO.iso -
my fog ip is 192.168.2.100
is this correct? [URL=‘http://%24%7Bfog-ip%7D/$%7Bfog-webroot%7D/service/ipxe/boot.php?mac=$%7Bnet0/mac%7D’]http://${fog-ip}/${fog-webroot}[/URL]/Win7AIO/WindowsAIO.iso
or [URL=‘http://%24%7Bfog-ip%7D/$%7Bfog-webroot%7D/service/ipxe/boot.php?mac=$%7Bnet0/mac%7D’]http://${192.168.2.100}/${fog-webroot}[/URL]/Win7AIO/WindowsAIO.iso
-
the first of those two is correct, assuming that you have that file located in /var/www/fog/Win7AIO/WindowsAIO.iso
[URL=‘http://%24%7Bfog-ip%7D/$%7Bfog-webroot%7D/service/ipxe/boot.php?mac=$%7Bnet0/mac%7D’]${fog-ip}[/URL] is a variable set to your server’s IP, in your case “fog”
[URL=‘http://%24%7Bfog-ip%7D/$%7Bfog-webroot%7D/service/ipxe/boot.php?mac=$%7Bnet0/mac%7D’]${fog-webroot}[/URL] is a variable set to the root of your fog installation, in your case “192.168.2.100” -
when i type [url]http://192.168.2.100/ISO/Windows8x64.iso[/url] it will start the download…i think it work but in the fog menu it goes direclty back to the menu.
-
if you paste your advanced menu code here, i will help you troubleshoot it
please use the “code” format button when doing so.