2015-11-15, 12:58
It appears that a bug has crept into iPXE whereby what *should* be an unsupported root-path (eg an NFS root) is treated as "supported", resulting in a "Could not open SAN device" error. This looks like quite a recent bug, the version that ships with Ubuntu 14.04 works fine!
The following patch (amending parenthesis closures) fixes the problem; although I'm quite new to iPXE I think this is correct, and will not have any undesirable side-effects:
The following patch (amending parenthesis closures) fixes the problem; although I'm quite new to iPXE I think this is correct, and will not have any undesirable side-effects:
Code:
angus@ganymede:src$ git diff master lincor -- usr/autoboot.c
diff --git a/src/usr/autoboot.c b/src/usr/autoboot.c
index 8c6b690..96260d3 100644
--- a/src/usr/autoboot.c
+++ b/src/usr/autoboot.c
@@ -379,8 +379,8 @@ int netboot ( struct net_device *netdev ) {
* it may represent an NFS root.
*/
if ( filename && root_path &&
- ( ! ( uri_is_absolute ( root_path ) ||
- ( xfer_uri_opener ( root_path->scheme ) == NULL ) ) ) ) {
+ ( ! ( uri_is_absolute ( root_path )) ||
+ ( xfer_uri_opener ( root_path->scheme ) == NULL ) ) ) {
printf ( "Ignoring unsupported root path\n" );
uri_put ( root_path );
root_path = NULL;