iPXE discussion forum

Full Version: Submenus through chain loading. Any drawbacks?
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi all,

while playing with iPXE lately and having a working setup working distros came flying in so my main menu got a bit crowed and I decided to go with submenus. Following the example on https://gist.github.com/robinsmidsrod/22...u-ipxe-L16 I found the file a bit to big and tried to split the submenus into seperate files calling them with chain filename. This worked reall easy. Just now I wonder if there might be any drawbacks in the method I'm using?

This calls menu-inst.ipxe just fine and presents the submenu.
# calling the submenu from main menu
chain --replace --autofree ${boot-url}/menu-inst.ipxe

The back item just calls the main menu with chain and were back at the main menu.

# set menu timeout
set submenu-timeout 0

# set default menu. run after menu timeout
isset ${submenu-default} || set submenu-default back

# Show Main Menu #

menu Install Media
#item --gap --          --- Entries ---
item --key d debian     Debian Wheezy (Gnome)
item debianK            Debian Wheezy (KDE)
item debianL            Debian Wheezy (LXDE)
item debianX            Debian Wheezy (XFCE)
item --gap --
item --key b back       Back to Main Menu

choose --timeout ${submenu-timeout} --default ${submenu-default} selected || goto cancel
set submenu-timeout 0
goto ${selected}

kernel isos/debian/netboot${arch}/linux priority=low vga=788 ${desktop}
initrd isos/debian/netboot${arch}/initrd.gz
boot || goto failed

set desktop kde
goto debian

set desktop lxde
goto debian

set desktop xcfe
goto debian

chain --replace --autofree ${menu-url}

echo Booting failed.
prompt Press key to continue
goto menu-inst

echo Menu canceled. Restarting machine.

I right now have on main menu file and three sub menu files. All neat and clean and easy to read. Also some code is duplicated like failed back and cancel but thats no deal for me.

Any comments or thoughts you have calling submenus like that?

That is as good a method as any. The reason I've got it all in one file in the example is that it is easier to copy and paste when I need to update the example. Using multiple files is more modular, and absolutely a Good Thing™. I actually had my menus setup in multiple files, and then slowly combined them into a single one as I learned more about how to do things. What works for you is all dependent on your use-case.
That sounds good. So I will procede with my way.

Thanks for such a nice and easy software.
Also some code is duplicated like failed back and cancel but thats no deal for me.
Reference URL's