On 08/20/2012 08:55 PM, Ernest Dipko wrote:
> Is there any way to recover the data within a zpool after a spool create -f
> was issued on the disks?
> We had a pool that contained two internal disks (mirrored) and we added a
> zvol to it our of an existing pool for some temporary space. After the
> reboot, the pool was not able to be imported because it could not find the
> zvol disk. Trying to import the pool and specifying a -d /dev/zvol/dsk/rpool
> actually found the zvol which contained the missing disk, but failed import
> with missing disks (the two internal).
That's because adding -d to import overrides the default search paths.
You should have specified -d multiple times to point the machine to the
two physical disks. The manpage explicitly states this.
> We then tried to recreate the pool, which was successful - but without data…
A zpool create overwrites all labels on a device (that's why you had to
add "-f", which essentially means "blame me if all goes wrong"). Since
the vdev labels contain the root block pointer (which points to the root
block of the entire pool object tree) and the value in this block
pointer moves around as new data is added (due to COW semantics), your
data is now toast. Sorry about that.
zfs-discuss mailing list