Linux – PXE Boot an ISO with iSCSI information

iscsilinuxpxe-bootwindows

High Level: I'm using pxelinux.0 and memdisk to boot a Windows PE iso. I then connect to an iSCSI lun and apply a Windows WIM.

More information: Normally netboot/i is used to automatically assign clients their initiator name and target when they boot. The options available are boot from iscsi, next bbs device, boot from CD, and my custom boot to WinPE iso. When I burn the ISO to CD and use the boot from CD option the client is connected to its LUN via the iscsicd.0 file provided with netboot/i. This results in the initiator name, target and a session being set and created in the WinPE environment. Letting the technicians treat the system as though it had a physical disk. Less headache for me.

The Problem: Trying to go true diskless, I need a way to load the iSCSI information via one of the netboot/i provided .0 files, then pass control back to pxelinux.0 which in turn will use memdisk and load the WinPE ISO. Currently the only way to set the initiator name and connect to the target is to set the initiator manually, add the discover portal manually and launch the session manually. This is a bit beyond me.

Why? While I could go through the whole headace of setting up a pxeboot directly to the WinPe.Wim file, it seems as though booting to the ISO is faster. Not to mention easier to add tools and scripts to the disk by simply mounting the ISO and adding/updating files.

Best Answer

Use iPXE instead of using pxelinux, then the winpe image can be loaded over HTTP(S) which is faster than TFTP.

Or use iPXE to boot directly from an iSCSI LUN

You might find the iPXE documentation useful

http://ipxe.org/howto/winpe http://ipxe.org/howto/wds_iscsi