On Oct 26, 2007, at 3:21 AM, Matt Buckland wrote:

> Hi forum,
>
> I did something stupid the other day, managed to connect an  
> external disk that was part of zpool A such that it appeared in  
> zpool B. I realised as soon as I had done zpool status that zpool B  
> should not have been online, but it was. I immediately switched off  
> the machine, booted without that disk connected and destroyed zpool  
> B. I managed to get zpool A back and all of my data appears to be  
> there, but I have a data error which I am unable to track.  
> Apparently it is:
>
> DATASET 0, OBJECT a, RANGE lvl=0 blkid=0

this was from 'zpool status -v', right?

>
> I have found this line from output of zdb:
>
> Dataset mos [META], ID 0, cr_txg 4, last_txg 1759562, 406M, 362  
> objects
>
> Is anyone able to shed any light on where this error might be and  
> what I might be able to do about it? I do not have a backup of this  
> data so restoring is not an option.
>
> Any advice appreciated.

So in general,if you can upgrade to more recent bits, then ZFS will  
happily just tell you what file that is, see:
http://blogs.sun.com/erickustarz/entry/damaged_files_and_zpool_status

If you cannot upgrade, then see:
http://www.opensolaris.org/jive/thread.jspa?messageID=39450&tstart=0

But in your case, you've corrupted a piece of the metadata (object  
0xa of the MOS).  You can run 'zdb -dv <poolname>' to figure out what  
you've corrupted.  For example:
fsh-hake# zdb -dv d
Dataset mos [META], ID 0, cr_txg 4, 120K, 34 objects

     Object  lvl   iblk   dblk  lsize  asize  type
          0    1    16K    16K    32K  12.0K  DMU dnode
          1    1    16K    512    512  1.50K  object directory
          2    1    16K    512    512      0  DSL directory
          3    1    16K    512    512  1.50K  DSL props
          4    1    16K    512    512  1.50K  DSL directory child map
          5    1    16K    512    512      0  DSL dataset
          6    1    16K    512    512  1.50K  DSL dataset snap map
          7    1    16K   128K   128K      0  bplist
          8    1    16K    512    512      0  DSL directory
          9    1    16K    512    512  1.50K  DSL props
         10    1    16K    512    512  1.50K  DSL directory child map
         11    1    16K    16K    16K  4.50K  packed nvlist
         12    1    16K    16K    16K  48.0K  bplist (Z=uncompressed)
         13    1    16K   128K   128K  15.0K  SPA history
...

Object 0xa would be the " DSL directory child map" object on my pool.

As you can guess, corrupting a core piece of metadata is a bad place  
to be.  Your mileage may vary...  If you can still access all your  
data, the best may be to copy the data (or send/recv) to a backup,  
destroy & re-create the pool.

eric

_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to