====== 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. {{ :screenshots:winnt_dhcp_iscsi.png?716×511 |Windows DHCP server configuration}} ===== Booting Your Client ===== Boot your diskless client using gPXE. If all has gone well, you should see it boot from your iSCSI target image. {{:sanboot:sanbootcli.jpg}} Congratulations on a successful boot from SAN! \\ \\ ===== Troubleshooting ===== If you have difficulties booting Windows from SAN, take a look at [[:sanboot:winnt_iscsi_debug|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::[protocol]:[port]:[LUN]: **"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 [[http://www.rfc-archive.org/getrfc.php?rfc=4173|RFC 4173]].