bectl: Improve error message when ZFS root is not found.

When recovering a system that is unbootable due to some
problem with the active BE, it is likely you'll be booted
from a rescue image running UFS.  In this case, bectl
needs help finding the zpool root that you want to operate
on.  In this case, improve the error message to suggest
specifying a root, rather than just emitting a generic
error message that might imply, to the naive user, that
there is a ZFS compatibility issue between the rescue
image and the on-disk ZFS pool.

Reviewed by: imp, kevans
Sponsored by: Netflix
Differential Revision:	https://reviews.freebsd.org/D39346
This commit is contained in:
Andrew Gallatin 2023-03-30 17:57:26 -04:00 committed by Oscar Zhao
parent 93dd6b19f3
commit f02cc2ff2b

View File

@ -584,9 +584,13 @@ main(int argc, char *argv[])
}
if ((be = libbe_init(root)) == NULL) {
if (!cmd->silent)
if (!cmd->silent) {
fprintf(stderr, "libbe_init(\"%s\") failed.\n",
root != NULL ? root : "");
if (root == NULL)
fprintf(stderr,
"Try specifying ZFS root using -r.\n");
}
return (-1);
}