zfs space_map panic on import

Hi all.

I have freebsd FreeBSD 8.1 with raidz from three 320GB drives. The system is installed on a headless machine.

Once I rebooted my server and it just froze. I tried once more. And heard the reboot sound. When I finally booted it I saw that my pool had bad status. Insufficient replicas it said. I already solved some such problems by deleting /boot/zfs/zpool.cache and reboot/reimport the pool. So I decided to do it again. But this time after deletion of zpool.cache my pool can't be imported. I plugged the monitor in and tried zpool import tank. I saw the kernel panic. It said "allocating allocated". Then I tried to set vfs.zfs.recovery -> 1

Now it says something like this (not mine but looks very similar):
Code:
panic: solaris assert: sm->sm_space == space (0x5e45000 == 0x5e45600), file:
 /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/space_map.c, line: 361

Then I tried to make zdb -e -bcsvL tank. It said that unknown option -L. So I upgraded my system to 8.2. And successfully ran zdb -e -bcsvL tank. But import is with the same result - kernel panic.

I have no backup cos because I believed that zfs RAID is very stable for me. Any suggestion please?
 
Now I am trying to upgrade to FreeBSD 9.0. I think that there are any new restore mechanics added to a ZFS libraries. Does this look resonable? And is this an option to use OpenSolaris for restoring/accessing the pool?

Right now I want to just access my data to copy it out of the pool.
 
I upgraded to FreeBSD 9.0 and still have the same problem. It seems to me that zdb -e -bcsvAAAF tank can help me. But when I try zdb -e tank it says that there's "no such file". Is this is a bug in this version of zdb? Or I have used wrong parameters?
 
It seems to me that in freebsd FreeBSD 9.0 zdb is broken for non-imported pools. I solved the problem with OpenSolaris 11 liveUSB. The pool imported well. Then I ran zpool scrub tank and when it was done the pool successfully imported into freebsd FreeBSD.
 
Back
Top