*
* If set to a non-zero value, iPXE will not detach any SAN drive
* after failing to boot from it. (This option is required in order
- * to perform a Windows Server 2008 installation direct to an iSCSI
- * target.)
+ * to perform an installation direct to an iSCSI target.)
*/
#define DHCP_EB_KEEP_SAN DHCP_ENCAP_OPT ( DHCP_EB_ENCAP, 0x08 )
+/** Skip booting from SAN drive
+ *
+ * If set to a non-zero value, iPXE will skip booting from any SAN
+ * drive. (This option is sometimes required in conjunction with @c
+ * DHCP_EB_KEEP_SAN in order to perform an installation direct to an
+ * iSCSI target.)
+ */
+#define DHCP_EB_SKIP_SAN_BOOT DHCP_ENCAP_OPT ( DHCP_EB_ENCAP, 0x09 )
+
/*
* Tags in the range 0x10-0x7f are reserved for feature markers
*
.type = &setting_type_int8,
};
+/** The "skip-san-boot" setting */
+struct setting skip_san_boot_setting __setting = {
+ .name = "skip-san-boot",
+ .description = "Do not boot the SAN drive after connecting",
+ .tag = DHCP_EB_SKIP_SAN_BOOT,
+ .type = &setting_type_int8,
+};
+
/**
* Boot using root path
*
goto err_describe;
}
- printf ( "Booting from SAN device %#02x\n", drive );
- rc = san_boot ( drive );
- printf ( "Boot from SAN device %#02x failed: %s\n",
- drive, strerror ( rc ) );
+ /* Boot from SAN device */
+ if ( fetch_intz_setting ( NULL, &skip_san_boot_setting) != 0 ) {
+ printf ( "Skipping boot from SAN device %#02x\n", drive );
+ } else {
+ printf ( "Booting from SAN device %#02x\n", drive );
+ rc = san_boot ( drive );
+ printf ( "Boot from SAN device %#02x failed: %s\n",
+ drive, strerror ( rc ) );
+ }
/* Leave drive registered, if instructed to do so */
if ( fetch_intz_setting ( NULL, &keep_san_setting ) != 0 ) {