Table of Contents
Booting from an iSCSI target
Configuring your DHCP Server
Using ISC dhcpd
Place the following two lines in /etc/dhcpd.conf:
filename ""; option root-path "iscsi:my.target.dns.name::::iqn.2007-08.name.dns.target.my:iscsiboot";
where my.target.dns.name is the DNS name (or IP address) of your iSCSI target, and iqn.2007-08.name.dns.target.my:iscsiboot is the iSCSI target IQN that you wish to boot from.
You will probably need to restart your DHCP server for the changes to take effect:
/etc/init.d/dhcpd restart
Using Microsoft DHCP Server
In the DHCP administrative tool, right-click on Server Options and choose Configure Options. Click on “017 Root Path” and set the “String value” to
iscsi:my.target.dns.name::::iqn.2007-08.name.dns.target.my:iscsiboot
where my.target.dns.name is the DNS name (or IP address) of your iSCSI target, and iqn.2007-08.name.dns.target.my:iscsiboot is the iSCSI target IQN that you wish to boot from.
Booting Your Client
Boot your diskless client using gPXE. If all has gone well, you should see it boot from your iSCSI target image.
Congratulations on a successful boot from SAN!
Troubleshooting
If you have difficulties booting Windows from SAN, take a look at Debugging Windows iSCSI boot.
iSCSI Root Path Syntax
Theory
Described heavily in depth in RFC 4173, the root path string used to boot from SAN can range from relatively simple, to a very explicit, information packed line. According to the RFC, the root path string is formatted as follows:
iscsi:<servername>:[protocol]:[port]:[LUN]:<targetname>
“servername” is required, and can be the domain name or IPv4 (or IPv6, which is not supported by gPXE) address of your iSCSI target server.
“protocol” is optional, and is generally left blank, assuming a default value of “6” for TCP.
- RFC 4173 states that TCP is the only valid protocol at the time of writing.
“port” is optional, and if left blank will assume a default value of 3260.
“LUN” is optional, and if left blank will assume a default value of 0.
“targetname” is required, and should be the iSCSI target IQN you wish to boot from.
Practice
For most non-complex deployments, such as the samples in above sections, your root path will look like:
iscsi:my.target.dns.name::::iqn.2007-08.name.dns.target.my:iscsiboot
That root path string omits the protocol, port, and LUN used by the iSCSI target server, defaulting to TCP, port 3260, and LUN 0, but is functionally equivalent to:
iscsi:my.target.dns.name:6:3260:0:iqn.2007-08.name.dns.target.my:iscsiboot
Furthermore, the LUN ID itself has a rather sophisticated set of rules for how it can be defined, but that goes beyond the scope of this article.
Advanced Reading
For more information, please see pages 3 and 4 of RFC 4173.