try import -a. If it fails, check your cache file.
Check your zpool.cache file if you have one, you might be able to make out some text on it, to see if it contains info on your pool. lending hope here.
Now, see if it has the device information for each drive, this can help you in your hunt for the drives.
Check your partition tables, make sure they are good, use fdisk -l
and or gdisk
.
If you imported the drives using device names, ive even seen it where the device letters switch under some configuration changes(or not?) on reboot. For e.g. /dev/sda
may become /dev/sdb
and vice versa. This would kill the entire array if one of those drives differ, until the boot order changes back, or the letters are swapped in the zfs configuration (For this reason it may not be good to create pools using device names, e.g. /dev/sda
for this reason).
One thing you can do is back up partition tables, especially if they state they are bad. You can use testdisk, or allow gdisk to recover the partition, by letting it select what it thinks is correct.
By restoring/updating your partition tables, your zpool.cache will then again recognize your array, then be able to once again re import it, where after reboot of updating the partition tables, you would then simply import the correct way zpool import <poolname>
Suggestion1:
(for future comers) If you have a dataset, never assume the data is in jeopardy until you can get the pool back online where a scrub can be ran.
ZFS is an extremely robust file system. At worse case, you can use a dev mod of zfs, and disable the importing checks, to get your pool imported, in some cases.
Suggestion2:
(for future comers) When creating pools, try to use the disk-by-id when importing. /dev/disk/by-id/
. You can also use /dev/disk/by-partuuid/
or /dev/disk/by-uuid/