diff --git a/lib/libefivar/efivar-dp-xlate.c b/lib/libefivar/efivar-dp-xlate.c --- a/lib/libefivar/efivar-dp-xlate.c +++ b/lib/libefivar/efivar-dp-xlate.c @@ -527,6 +527,13 @@ if (pp == NULL) return (NULL); efimedia = geom_pp_attr(mesh, pp, "efimedia"); + /* + * If there's nothing here, check the geom since its name will be what + * the label refers to. We haev to lookup the provider by name, though. + */ + if (efimedia == NULL && + strcmp(pp->lg_geom->lg_class->lg_name, G_LABEL) == 0) + efimedia = find_geom_efimedia(mesh, pp->lg_geom->lg_name); if (efimedia == NULL) return (NULL); return strdup(efimedia);