Booting via iSCSI

This tutorial describes a simple three-step process for getting your first iSCSI-booting operating system up and running. The three stages are:

Fedora Core 5 booting via iSCSI

Preparing the operating system image

The first stage is to prepare the operating system image for iSCSI boot. This generally involves installing an iSCSI initiator and adjusting a few configuration parameters. Instructions are available for:

Transferring the operating system image to an iSCSI target

The second stage is to transfer the prepared operating system image from the iSCSI boot machine to a remote iSCSI target.

If you do not have an iSCSI NAS box, you probably want to set up the Linux software iSCSI target. You can find prepackaged versions at http://sourceforge.net/project/showfiles.php?group_id=177003; you need to download and install the iscsitarget and dkms-iscsi_trgt RPMs.

There are several possible ways to perform the transfer:

  • Physically move the disk containing the prepared operating system image into the iSCSI target.
  • Copy the disk image containing the prepared operating system image to a file on the iSCSI target using dd and netcat.
  • Create an empty filesystem on the iSCSI target and copy the contents across using rsync -ax. Note that this method will require you to manually reinstall the bootloader (LILO or grub) after the transfer; if you don't know how to do this then don't use this method.

The easiest way for a first-time user is probably to physically transfer the disk to the iSCSI target and then add this disk to the export list. If you are using the Linux software iSCSI target, then you can do this by editing /etc/ietd.conf and adding an entry such as

Target iqn.2006-09.com.example.myhost:storage
  Lun 0 Path=/dev/hdb

(assuming that the hostname of the iSCSI target is myhost.example.com and the newly attached disk is /dev/hdb). The target name should follow the format of the example above.

Booting the operating system from the iSCSI target

The third stage is to configure the network card for iSCSI boot, and then to attempt booting.

You need a network card boot ROM that supports iSCSI boot. If your NIC vendor does not already supply such a ROM, you can build your own using

cvs -d:pserver:anonymous@etherboot.cvs.sourceforge.net:/cvsroot/etherboot login 
cvs -z3 -d:pserver:anonymous@etherboot.cvs.sourceforge.net:/cvsroot/etherboot co -P gpxe
cd gpxe/gpxe-0.5/src
make bin/rtl8139.rom

which will give you a boot ROM image for a RealTek 8139-based network card. Many other cards are available; if you can't find the one you need then ask on etherboot-discuss@lists.sourceforge.net for help.

For experimentation, you may prefer to build a “boot ROM on a floppy”, which you can do by changing .rom to .dsk, e.g.

make bin/rtl8139.dsk

This will give you a bootable floppy disk containing the boot ROM code, which may make testing easier. Once you have later verified that everything works, you can burn the code into the ROM.

You need to set up your DHCP server to request iSCSI boot. Edit /etc/dhcpd.conf and change or add the line

filename "";
option root-path "iscsi:192.168.0.1::::iqn.2006-09.com.example.myhost:storage";

where 192.168.0.1 is the IP address of your iSCSI target, and iqn.2006-09.com.example.myhost:storage is the target name.

Now boot the iSCSI boot machine using the iSCSI boot ROM (or iSCSI boot floppy, if you are using a floppy disk for experimentation). You should see the usual bootloader screen (LILO, grub or NTLDR, for example) appear, and the operating system will start as normal.

Congratulations! You have successfully booted an operating system from a remote iSCSI disk. If you encounter difficulties, please feel free to ask questions on the etherboot-discuss mailing list at etherboot-discuss@lists.sourceforge.net. If you have an urgent question, professional support is available on a consultancy basis.


QR Code
QR Code iscsiboot (generated for current page)