Discussion:
[ipxe-devel] Size limit in iPXE
Pedro Goncalves
2016-03-16 17:59:02 UTC
Permalink
Hi,

We are trying to use iPXE to boot a firmware update ISO provided by Dell to update our Dell Poweredge servers, but iPXE fails to fetch the iso with the error “Error: No space left on device”(http://ipxe.org/err/341820 <http://ipxe.org/err/341820>). The size of the iso is approx. 2GB. So we wanted to ask you if there is a size limit hardcoded somewhere. If not, why are getting this error message? Our server has 128GB of RAM, so that can’t be the issue.

Thank you very much.

Best Regards,
--
Pedro Rocha Goncalves | Systems Engineer | www.thousandeyes.com <http://www.thousandeyes.com/>

Watch ThousandEyes Product Intro (60 Second Video) <https://www.thousandeyes.com/lp/product-intro-video>
Gene Cumm
2016-03-18 10:11:07 UTC
Permalink
Post by Pedro Goncalves
Hi,
We are trying to use iPXE to boot a firmware update ISO provided by Dell to
update our Dell Poweredge servers, but iPXE fails to fetch the iso with the
error “Error: No space left on device”(http://ipxe.org/err/341820). The size
of the iso is approx. 2GB. So we wanted to ask you if there is a size limit
hardcoded somewhere. If not, why are getting this error message? Our server
has 128GB of RAM, so that can’t be the issue.
Thank you very much.
Best Regards,
--
Pedro Rocha Goncalves | Systems Engineer | www.thousandeyes.com
BIOS is a bit different than a normal system, limited to 32-bit
addressing and a bunch of occupied windows in between.

That said, if it's an 11th generation or newer, I'd suggest using the
Lifecycle Controller to perform updates if possible. Last I checked,
I could customize ISOs with the Repository Manager that were more
targetted.
--
-Gene
Michael Brown
2016-03-18 10:20:29 UTC
Permalink
Post by Pedro Goncalves
We are trying to use iPXE to boot a firmware update ISO provided by Dell
to update our Dell Poweredge servers, but iPXE fails to fetch the iso
with the error “Error: No space left on
device”(http://ipxe.org/err/341820). The size of the iso is approx. 2GB.
So we wanted to ask you if there is a size limit hardcoded somewhere. If
not, why are getting this error message? Our server has 128GB of RAM, so
that can’t be the issue.
How are you trying to boot this ISO?

Downloads are placed in the 32-bit address space (i.e. below 4GB). It
is very plausible that a large chunk of this address space is allocated
for PCI BARs, and so you may have only ~2GB of actual RAM within this
address space.

You can try SAN-booting your ISO instead, which will not require it to
first be downloaded into RAM. For example:

sanboot http//192.168.0.1/boot/dell.iso

However, most ISOs are not amenable to network booting anyway. You
generally have to unpack the contents of the ISO, expose those contents
via a web server, use iPXE to boot the kernel+initrd directly from the
web server, and pass in command line arguments so that the initrd can
locate the web server to load the remainder.

Michael
Pedro Goncalves
2016-03-18 17:12:06 UTC
Permalink
Hi Michael and Gene,

Thank you very much for your answers. That explains everything.

We wanted to get the ISOS working with iPXE because it’s so convenient and we already use iPXE for bootstrapping all of our servers (using the initrd+kernel). But this is very particular situation, so it’s fine that it doesn’t work, we’ll just put the firmware updates for the servers in USB pens. We just wanted to understand what was going on and why it was failing.

Thank you again for your answers.

Best Regards,
--
Pedro Rocha Goncalves | Systems Engineer | www.thousandeyes.com <http://www.thousandeyes.com/>

Watch ThousandEyes Product Intro (60 Second Video) <https://www.thousandeyes.com/lp/product-intro-video>
Post by Michael Brown
Post by Pedro Goncalves
We are trying to use iPXE to boot a firmware update ISO provided by Dell
to update our Dell Poweredge servers, but iPXE fails to fetch the iso
with the error “Error: No space left on
device”(http://ipxe.org/err/341820). The size of the iso is approx. 2GB.
So we wanted to ask you if there is a size limit hardcoded somewhere. If
not, why are getting this error message? Our server has 128GB of RAM, so
that can’t be the issue.
How are you trying to boot this ISO?
Downloads are placed in the 32-bit address space (i.e. below 4GB). It is very plausible that a large chunk of this address space is allocated for PCI BARs, and so you may have only ~2GB of actual RAM within this address space.
sanboot http//192.168.0.1/boot/dell.iso
However, most ISOs are not amenable to network booting anyway. You generally have to unpack the contents of the ISO, expose those contents via a web server, use iPXE to boot the kernel+initrd directly from the web server, and pass in command line arguments so that the initrd can locate the web server to load the remainder.
Michael
Loading...