iPXE discussion forum
Convert USB Boot to iPXE - Printable Version

+- iPXE discussion forum (https://forum.ipxe.org)
+-- Forum: iPXE user forums (/forumdisplay.php?fid=1)
+--- Forum: General (/forumdisplay.php?fid=2)
+--- Thread: Convert USB Boot to iPXE (/showthread.php?tid=7975)



Convert USB Boot to iPXE - Fimlore - 2016-03-01 18:03

Hello iPXE,

Since we're using 7 methods to boot to different scenario's, i am asked to investigate iPXE as an option.

I see that iPXE is able to boot machines from the network using either Legacy or (U)EFI which is perfect; because we are going to have to support all the variants, so the i386 & x64 UEFI and Legacy systems.

As of now, i'm using WDS to distribute iPXE that distributes pxelinux that displays a menu that either is able to boot to an ISO or WDS.

What I'm trying to do is to remove WDS from my enviroment and use iPXE to boot the ISO's and WIM's, so that I can have a single menu and other options attached to that.

However, I've already figured out that booting to ISO is impossible on UEFI. So then I have the following question:

The company that provides us with the ISO, also provides us with the ability to create a bootable USB-stick; on this stick there are multiple efi files (all the needed files).

I'm wondering if it is possible to use the files on the USB Stick to make iPXE able to boot to the ISO via HTTP.

Sadly our company does not have SAN-disks, so that is not a valid option.

I'd love to hear,

Alex


RE: Convert USB Boot to iPXE - mcb30 - 2016-03-07 23:46

(2016-03-01 18:03)Fimlore Wrote:  However, I've already figured out that booting to ISO is impossible on UEFI. So then I have the following question:

The company that provides us with the ISO, also provides us with the ability to create a bootable USB-stick; on this stick there are multiple efi files (all the needed files).

I'm wondering if it is possible to use the files on the USB Stick to make iPXE able to boot to the ISO via HTTP.

What is actually on these ISOs / USB sticks? If it's some variant of Windows, then you may want to look at using http://ipxe.org/wimboot.

Michael


RE: Convert USB Boot to iPXE - Fimlore - 2016-03-08 13:53

(2016-03-07 23:46)mcb30 Wrote:  
(2016-03-01 18:03)Fimlore Wrote:  However, I've already figured out that booting to ISO is impossible on UEFI. So then I have the following question:

The company that provides us with the ISO, also provides us with the ability to create a bootable USB-stick; on this stick there are multiple efi files (all the needed files).

I'm wondering if it is possible to use the files on the USB Stick to make iPXE able to boot to the ISO via HTTP.

What is actually on these ISOs / USB sticks? If it's some variant of Windows, then you may want to look at using http://ipxe.org/wimboot.

Michael

The ISO contains a version of ISOlinux; (ISOLINUX.BIN, VMLINUZ) and a DATA folder, containing multiple TAR.XZ files; I think it's used for the actual functions of the software


RE: Convert USB Boot to iPXE - mcb30 - 2016-03-08 15:17

(2016-03-08 13:53)Fimlore Wrote:  The ISO contains a version of ISOlinux; (ISOLINUX.BIN, VMLINUZ) and a DATA folder, containing multiple TAR.XZ files; I think it's used for the actual functions of the software

OK. You can load the kernel and the initrd directly from iPXE. The syntax is pretty straightforward and there are plenty of examples online. If it takes you more than a few minutes, then paste the isolinux.cfg file here and I'll give you a translation to an iPXE script.

That will get you to the point of having your kernel and initial userspace loaded. Your initrd then needs to be able to somehow retrieve the .tar.xz files. This part of the process is entirely under the control of the initrd itself. It may be hard-coded to assume the presence of a physical block device, or it may have the capability to retrieve files over the network. iPXE has no control over this stage.

As a last resort, you could look at exposing the entire contents of the ISO as the file "/dev/cdrom" within your initrd, using iPXE's ability to inject files into an initrd image on the fly. When your initrd scripts try to mount /dev/cdrom, then would then actually be mounting the ISO image (rather than a physical device).

Michael


RE: Convert USB Boot to iPXE - Fimlore - 2016-03-11 15:52

(2016-03-08 15:17)mcb30 Wrote:  
(2016-03-08 13:53)Fimlore Wrote:  The ISO contains a version of ISOlinux; (ISOLINUX.BIN, VMLINUZ) and a DATA folder, containing multiple TAR.XZ files; I think it's used for the actual functions of the software

OK. You can load the kernel and the initrd directly from iPXE. The syntax is pretty straightforward and there are plenty of examples online. If it takes you more than a few minutes, then paste the isolinux.cfg file here and I'll give you a translation to an iPXE script.

That will get you to the point of having your kernel and initial userspace loaded. Your initrd then needs to be able to somehow retrieve the .tar.xz files. This part of the process is entirely under the control of the initrd itself. It may be hard-coded to assume the presence of a physical block device, or it may have the capability to retrieve files over the network. iPXE has no control over this stage.

As a last resort, you could look at exposing the entire contents of the ISO as the file "/dev/cdrom" within your initrd, using iPXE's ability to inject files into an initrd image on the fly. When your initrd scripts try to mount /dev/cdrom, then would then actually be mounting the ISO image (rather than a physical device).

Michael

Thank you; I will look into this