Post Reply 
 
Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[solved] Load an ISO over HTTP using iPXE?
2012-07-27, 01:56 (This post was last modified: 2012-10-12 21:35 by stefanlasiewski.)
Post: #1
[solved] Load an ISO over HTTP using iPXE?
I have a host which contains ISOs of CentOS, FreeBSD and other OSes.

Is iPXE capable of loading an ISO over HTTP so that I can install the OS from the ISO? Would loading the ISO image into a memdisk be an option? My machines have 4GB of RAM or more.

It looks like it's possible to do this, but I have been unable to find a solid example which shows how to do this.

iPXE looks very useful. Thank you for providing it.

-= Stefan
Visit this user's website Find all posts by this user
Quote this message in a reply
2012-08-01, 14:53
Post: #2
RE: Load an ISO over HTTP using iPXE?
My example script provides examples of a lot of different things you can do with iPXE: https://gist.github.com/2234639

Be aware that the install ISO must be capable of network booting for things to work or must be completely initrd-based (that is, the entire installer is loaded into memory immediately). Whenever the OS kernel has booted up iPXE is no longer in control and all file fetching must be handled by the OS kernel. Look carefully at the Ubuntu installer and live entries in the menu. They show how you can make debian-installer and casper able to read its files from the network (I use NFS).

The RedHat-based distributions I don't have a lot of experience with.
Visit this user's website Find all posts by this user
Quote this message in a reply
2012-09-24, 23:02
Post: #3
RE: Load an ISO over HTTP using iPXE?
Here is another example, using gPXE, grub4dos and loading an ISO over HTTP. I assume it should work with iPXE as well.

http://serverfault.com/a/421938/36178
Visit this user's website Find all posts by this user
Quote this message in a reply
2012-10-11, 20:52
Post: #4
RE: Load an ISO over HTTP using iPXE?
(2012-08-01 14:53)robinsmidsrod Wrote:  My example script provides examples of a lot of different things you can do with iPXE: https://gist.github.com/2234639

Your script is full of great examples. However, it relies on Sanbooting and I am not booting from a San. I am trying to load an ISO over HTTP, and I'm just not sure how to proceed.

But thank you for the example script!
Visit this user's website Find all posts by this user
Quote this message in a reply
2012-10-12, 06:53
Post: #5
RE: Load an ISO over HTTP using iPXE?
Just chiming in on this one, you don't need to be running a san 'per se'. It just uses the san interface to load the ISO over http.

examples from robinsmidsrob include the following:

Code:
# Start Windows 7 installer DVD
sanboot --no-describe --drive 0x81 ${boot-url}/windows-7/ultimate-x64.iso || goto failed
goto start

:macrium-winpe
sanboot --no-describe ${boot-url}/macrium-5.0/macrium-5.0-rescue-winpe-3.1.iso || goto failed
goto start

Both of those examples are booting ISO's over http without loading them into a local memdisk first. The boot-url variable would usually be the address for your webserver. ie: http://bootserver.local

Otherwise load it into a memdisk if you've got plenty of ram.
Code:
initrd ${boot-url}/windows-7/winpe-x64.iso
chain ${boot-url}/memdisk iso raw || goto failed
goto start

the examples are actually pretty comprehensive if you read through them. the memdisk option requires taking the memdisk from the syslinux file set.

Jp.
Find all posts by this user
Quote this message in a reply
2012-10-12, 10:04
Post: #6
RE: Load an ISO over HTTP using iPXE?
I also want to mention that your web server must support keep-alive and ranged requests to work properly with the sanboot command. The default configuration of Apache on most Linux distributions has the right setup.
Visit this user's website Find all posts by this user
Quote this message in a reply
2012-10-12, 21:09 (This post was last modified: 2012-10-12 21:18 by stefanlasiewski.)
Post: #7
RE: Load an ISO over HTTP using iPXE?
Great! Exactly what I need. I can now load the iso over HTTP. Now I just need to figure my way through memdisk/syslinux issues. I read that some people use grub4dos instead of memdisk.

> Just chiming in on this one, you don't need to be running a san 'per se'. It just uses the san interface to load the ISO over http.

Ah! I see, it is called 'sanboot' but it doesn't require a san at all. I just used it to load a 200MB boot .iso over the LAN. Excelent!

> the examples are actually pretty comprehensive if you read through them. the memdisk option requires taking the memdisk from the syslinux file set.

Yes, they are. And thanks again for the example. It's just hard to wrap my head around the concepts.
Visit this user's website Find all posts by this user
Quote this message in a reply
2012-10-13, 01:26
Post: #8
RE: Load an ISO over HTTP using iPXE?
(2012-10-12 21:09)stefanlasiewski Wrote:  Great! Exactly what I need. I can now load the iso over HTTP. Now I just need to figure my way through memdisk/syslinux issues. I read that some people use grub4dos instead of memdisk.

> Just chiming in on this one, you don't need to be running a san 'per se'. It just uses the san interface to load the ISO over http.

Ah! I see, it is called 'sanboot' but it doesn't require a san at all. I just used it to load a 200MB boot .iso over the LAN. Excelent!

> the examples are actually pretty comprehensive if you read through them. the memdisk option requires taking the memdisk from the syslinux file set.

Yes, they are. And thanks again for the example. It's just hard to wrap my head around the concepts.

You can also look into different distributions, and they will usually offer instructions on how to load their installers over PXE. For example, I setup Debian AMD64 and i386 installers following their directions. Especially if they offer it without requiring a NFS share, it normally loads everything via the initrd.
Visit this user's website Find all posts by this user
Quote this message in a reply
Post Reply 




User(s) browsing this thread: 1 Guest(s)