Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 14 May 2012 19:11:43 +0300
From:      Andriy Gapon <avg@FreeBSD.org>
To:        Fabian Keil <freebsd-listen@fabiankeil.de>
Cc:        Bruce Cran <bruce@cran.org.uk>, freebsd-current <freebsd-current@FreeBSD.org>
Subject:   Re: Default directory used for 'zpool import' broken (/dev/dsk)?
Message-ID:  <4FB12EBF.2030804@FreeBSD.org>
In-Reply-To: <20120514171914.7a1e9d10@fabiankeil.de>
References:  <4FAF767C.8030500@cran.org.uk> <4FB0ED96.6010100@FreeBSD.org> <20120514171914.7a1e9d10@fabiankeil.de>

next in thread | previous in thread | raw e-mail | index | archive | help
on 14/05/2012 18:19 Fabian Keil said the following:
> Andriy Gapon <avg@FreeBSD.org> wrote:
> 
>> on 13/05/2012 11:53 Bruce Cran said the following:
>>> When running 'zpool import' without -d I get the error:
>>> "cannot open '/dev/dsk': must be an absolute path"
>>>
>>> zpool(8) suggests the default should have been updated for FreeBSD:
>>> "If the -d option is not specified, this command searches for devices
>>> in "/dev""
>>>
>>> Was this broken recently?
> 
>> Not sure, but maybe /dev/dsk is recorded somewhere in the pool metadata
>> or in zpool.cache.  It could have happened with the older version of the
>> code. I think that you could check that with zdb.  I think that a fresh
>> import should fix it, though.
> 
> The following patch seems to work for me:
> 
> ####
> commit 7ec69700f2d6944a61f5c7a826e67f46fa160221
> Author: Fabian Keil <fk@fabiankeil.de>
> Date:   Mon May 12 16:53:56 2012 +0200
> 
>     Default to searching vdevs in /dev. /dev/dsk doesn't exist on FreeBSD.
>     
>     Fixes import issues if no cachefile exists and -d isn't used:
>     
>     fk@r500 ~ $sudo zpool import wde2
>     cannot open '/dev/dsk': must be an absolute path

Hah, so this hasn't been fixed actually.
Thank you for the patch!

> diff --git a/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c b/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c
> index fe76250..5d1e454 100644
> --- a/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c
> +++ b/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c
> @@ -1909,7 +1909,7 @@ zpool_do_import(int argc, char **argv)
>  
>  	if (searchdirs == NULL) {
>  		searchdirs = safe_malloc(sizeof (char *));
> -		searchdirs[0] = "/dev/dsk";
> +		searchdirs[0] = "/dev";
>  		nsearch = 1;
>  	}
> ####
> 
> The cachefile part is speculation ...


-- 
Andriy Gapon



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4FB12EBF.2030804>