iPXE discussion forum

Full Version: memdisk: bootstrap too large to load (from subfolder)
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Afternoon all,
Not entirely sure if this is a memdisk issue or an iPXE issue but here goes.

I have an ISO that boots into the Windows PE environment, ISO is around 340Mb.

I'm booting it from a simple script (actually from a menu, but this simple script demonstrates the issue):
Code:
#!ipxe
dhcp
initrd http://${net0.dhcp/next-server}:8001/iso/DaRT70.iso
chain /memdisk iso raw
and the script is loaded via TFTP from the boot server, and /tftpboot served via HTTP. (I'm using the value of next-server rather than hard coded as DHCP servers are a load balanced HA pair, and the tftpboot folder is synchronized between nodes. I load the ISO via HTTP for speed.

If the script is in the root of /tftpboot, along with the memdisk loader, and the ISO in an iso subfolder, it works perfectly.
If the script is moved into a scripts subfolder and loaded from that folder, it loads the ISO fine, but when memdisk is run, it fails with 'memdisk: bootstrap too large to load'. I'm loading /memdisk rather than just memdisk so that it works wherever the script is. Given that I'm using absolute paths for memdisk and the ISO, I can't see any reason why it fails to load when the iPXE script to load it is in a subfolder?

The DHCP/TFTP server is running Ubuntu 16.04 and I'm using the packaged versions of iPXE and memdisk (from pxelinux) so versions are
iPXE: 1.0.0+git-20150424.a25a16d-1ubuntu1
pxelinux: 6.03+dfsg-11ubuntu1
(2017-02-27 17:05)sjwk Wrote: [ -> ]I have an ISO that boots into the Windows PE environment, ISO is around 340Mb.

You might want to look at wimboot instead if you are booting windows, much more stable then memdisk.

you might want to add a imgstat && prompt line, just to see that there is nothing else loaded, and maybe call imgfree before the initrd.

(2017-02-27 17:05)sjwk Wrote: [ -> ]The DHCP/TFTP server is running Ubuntu 16.04 and I'm using the packaged versions of iPXE and memdisk (from pxelinux) so versions are
iPXE: 1.0.0+git-20150424.a25a16d-1ubuntu1
pxelinux: 6.03+dfsg-11ubuntu1

please use the latest iPXE master, a version that is almost 2 years old is so horribly out of date it is scary to even think about how much have changed and been fixed.
(2017-02-27 19:13)NiKiZe Wrote: [ -> ]You might want to look at wimboot instead if you are booting windows, much more stable then memdisk.

you might want to add a imgstat && prompt line, just to see that there is nothing else loaded, and maybe call imgfree before the initrd.

I'll give wimboot a try - the MS tools that generate the boot image create an ISO so was just using that as it seemed neater than having to take the ISO, mount it and extract the contents every time we generate a new one.

(2017-02-27 19:13)NiKiZe Wrote: [ -> ]please use the latest iPXE master, a version that is almost 2 years old is so horribly out of date it is scary to even think about how much have changed and been fixed.

Will do - I prefer to use packages where possible as it simplifies any dependency versioning issues, that's the version of iPXE in even the next Ubuntu release, so clearly the package maintainer has gone AWOL. An annoying trend in most distributions I've found, particularly on smaller packages :-(
you can also find the latest builds of ipxe at http://boot.ipxe.org
Reference URL's