|
@@ -136,6 +136,14 @@ struct setting keep_san_setting __setting = {
|
136
|
136
|
.type = &setting_type_int8,
|
137
|
137
|
};
|
138
|
138
|
|
|
139
|
+/** The "skip-san-boot" setting */
|
|
140
|
+struct setting skip_san_boot_setting __setting = {
|
|
141
|
+ .name = "skip-san-boot",
|
|
142
|
+ .description = "Do not boot the SAN drive after connecting",
|
|
143
|
+ .tag = DHCP_EB_SKIP_SAN_BOOT,
|
|
144
|
+ .type = &setting_type_int8,
|
|
145
|
+};
|
|
146
|
+
|
139
|
147
|
/**
|
140
|
148
|
* Boot using root path
|
141
|
149
|
*
|
|
@@ -171,10 +179,15 @@ int boot_root_path ( const char *root_path ) {
|
171
|
179
|
goto err_describe;
|
172
|
180
|
}
|
173
|
181
|
|
174
|
|
- printf ( "Booting from SAN device %#02x\n", drive );
|
175
|
|
- rc = san_boot ( drive );
|
176
|
|
- printf ( "Boot from SAN device %#02x failed: %s\n",
|
177
|
|
- drive, strerror ( rc ) );
|
|
182
|
+ /* Boot from SAN device */
|
|
183
|
+ if ( fetch_intz_setting ( NULL, &skip_san_boot_setting) != 0 ) {
|
|
184
|
+ printf ( "Skipping boot from SAN device %#02x\n", drive );
|
|
185
|
+ } else {
|
|
186
|
+ printf ( "Booting from SAN device %#02x\n", drive );
|
|
187
|
+ rc = san_boot ( drive );
|
|
188
|
+ printf ( "Boot from SAN device %#02x failed: %s\n",
|
|
189
|
+ drive, strerror ( rc ) );
|
|
190
|
+ }
|
178
|
191
|
|
179
|
192
|
/* Leave drive registered, if instructed to do so */
|
180
|
193
|
if ( fetch_intz_setting ( NULL, &keep_san_setting ) != 0 ) {
|