iPXE discussion forum

Full Version: [Solved] Boot ISO images over menu.ipxe
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
So far I've used pxelinux.0 default menu. Now I want to replace the default menu to menu.ipxe. I'm trying boot ISO image (75.3MB) over menu.ipxe. ISO loading but stop booting and message:
Code:
Loading boot sector... Booting...
What is wrong? This is part menu.ipxe:
Code:
:mxp14
echo Mini WinXP HBCD 14 - AUTOSTART NETWORK & TEAMVIEWER
kernel memdisk
initrd /images/mxp14.iso
boot
goto start

pxelinux.0 working OK with menu default:
Code:
LABEL mxp14
MENU LABEL Mini WinXP HBCD 14 - AUTOSTART NETWORK & TEAMVIEWER
kernel memdisk
append iso
initrd /images/mxp14.iso
Is there any instruction on how to build the menu?
You have some misunderstanding there.

menu.ipxe is a script that is run by ipxe, not pxelinux.0. default is a configuration file for pxelinux.0.

pxelinux.0 and ipxe are two different programs that behave totally different. It's like vi and emacs, they can both edit text files, but they go about it in totally different ways.

To load a menu.ipxe script, you normally use the chain command in iPXE. iPXE can't load a configuration file that is for pxelinux. To load that one, you first have to load pxelinux.0 from ipxe (which is again done with the chain command). pxelinux.0 then takes over control and will load the default configuration file as part of its start process.

Information on how to create ipxe scripts can be found here: http://ipxe.org/scripting

You might also find some help in looking over the various examples available: http://ipxe.org/examples
One more time:

1. I downloaded your menu.ipxe from https://gist.github.com/robinsmidsrod/22...-menu-ipxe and add own one config for boot ISO image mxp14.iso
2. I built ipxe.iso with MENU_CMD
3. Have running TFTPD32 by Ph. Jounin DHCP Boot file -> menu.ipxe
4. Boot from this server in VPC 2007 from ipxe.iso
[attachment=43]
5. Select position in menu: Mini WinXP HBCD 14 - AUTOSTART NETWORK & TEAMVIEWER
Code:
memdisk... ok
/images/mxp14.iso... ok
6. Booting stops and this messages:
[attachment=44]
OK, I found solution in this post Big Grin. Need menu.ipxe like this:
Code:
:mxp14
echo Mini WinXP HBCD 14 - AUTOSTART NETWORK & TEAMVIEWER
initrd /images/mxp14.iso
chain /memdisk iso raw || goto failed
goto start
WinXP working very good :-).
[attachment=45]
That means memdisk has started, and is trying to boot the actual iso. At this point you're no longer using iPXE and you've bumped into a problem booting mxp14.iso from memory. Maybe that particular iso is trying to do something funky to locate itself during boot and is just hanging. You could also try using the sanboot command in ipxe instead of using memdisk. Maybe it will work better.

The menu example you have already has several examples of using sanboot command to boot an ISO using HTTP (or TFTP).
(2013-04-19 10:43)robinsmidsrod Wrote: [ -> ]That means memdisk has started, and is trying to boot the actual iso. At this point you're no longer using iPXE and you've bumped into a problem booting mxp14.iso from memory. Maybe that particular iso is trying to do something funky to locate itself during boot and is just hanging. You could also try using the sanboot command in ipxe instead of using memdisk. Maybe it will work better.

The menu example you have already has several examples of using sanboot command to boot an ISO using HTTP (or TFTP).

Hi robin, this is exactly what i would like to do Big Grin booting iso via tftp, i'm working on synology to setup complete boot server that reside on nas
(2013-04-23 13:09)Aigor Wrote: [ -> ]Hi robin, this is exactly what i would like to do Big Grin booting iso via tftp, i'm working on synology to setup complete boot server that reside on nas

Don't do that; it's a bad idea. ISOs tend to be large, and TFTP is slow. Use a more appropriate protocol such as HTTP or iSCSI instead.

Michael
(2013-04-23 13:17)mcb30 Wrote: [ -> ]ISOs tend to be large, and TFTP is slow. Use a more appropriate protocol such as HTTP or iSCSI instead.
Right. I make some test with ISO image 75.3MB over LAN Wifi -> Ethernet 100. I run server PXE (TFTPD32) + Apache HTTP in laptop Wifi 54Mb WPA2/AES and boot other PC in LAN with gPXE 1.0.1 (have in motherboard BIOS):
Code:
Ctrl-B (to stop autoboot from TFTP)
dhcp net0 (config net0 interface from TFTPD32 DHCP)
initrd http://192.168.xxx.xxx:port/mxp14.iso
chain memdisk iso
  • HTTP time download: 51 seconds :-)
  • TFTP time download: 1 min. 28 sec. (88 seconds)
HTTP is fast than TFTP :-)
(2013-04-23 14:29)Maniek Wrote: [ -> ][*] HTTP time download: 51 seconds :-)

That's still pretty slow, unless your 54Mbps wireless link is really running at around 11Mbps. I suspect your problem may be this:

Quote:boot other PC in LAN with gPXE 1.0.1

Don't use gPXE. It isn't maintained any more, doesn't have any of the improvements that have been made in iPXE in the last three years, and contains lots of known bugs. Use iPXE instead.

Michael
Yes, I know but gPXE have in BIOS some time ago. Now test iPXE and I'm going to build iPXE and put to BIOS.
(2013-04-23 14:36)mcb30 Wrote: [ -> ]
(2013-04-23 14:29)Maniek Wrote: [ -> ][*] HTTP time download: 51 seconds :-)

That's still pretty slow, unless your 54Mbps wireless link is really running at around 11Mbps.

Right. Tested ISO loading over HTTP: ethernet 100 (server) -> ethernet 100 (client):
  • HTTP time download ISO 75.3MB : ~ 8-10 seconds Big GrinBig GrinBig Grin WOW !!!
Reference URL's