Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 12 Jul 2013 09:41:56 -0500
From:      Reid Linnemann <linnemannr@gmail.com>
To:        Volodymyr Kostyrko <c.kworr@gmail.com>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: Attempting to roll back zfs transactions on a disk to recover a destroyed ZFS filesystem
Message-ID:  <CA%2B0MdpMfa-vMKGXrvgbJu8QQd4vqqAriLedENTHAaqVGgNwHGQ@mail.gmail.com>
In-Reply-To: <51DFF79C.905@gmail.com>
References:  <CA%2B0MdpMj81=Ct-ZUJ7N-TYO=OCHeEomU4Xa70sFVVoBoyETzkQ@mail.gmail.com> <51DFF79C.905@gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Hey presto!

/> zfs list
NAME             USED  AVAIL  REFER  MOUNTPOINT
bucket           485G  1.30T   549M  legacy
bucket/tmp        21K  1.30T    21K  legacy
bucket/usr      29.6G  1.30T  29.6G  /mnt/usr
bucket/var       455G  1.30T  17.7G  /mnt/var
bucket/var/srv   437G  1.30T   437G  /mnt/var/srv

There's my old bucket! Thanks much for the hidden -T argument, Volodymyr!
Now I can get back the remainder of my missing configuration.


On Fri, Jul 12, 2013 at 7:33 AM, Volodymyr Kostyrko <c.kworr@gmail.com>wrot=
e:

> 11.07.2013 17:43, Reid Linnemann =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=
=B2(=D0=BB=D0=B0):
>
>  So recently I was trying to transfer a root-on-ZFS zpool from one pair o=
f
>> disks to a single, larger disk. As I am wont to do, I botched the transf=
er
>> up and decided to destroy the ZFS filesystems on the destination and sta=
rt
>> again. Naturally I was up late working on this, being sloppy and drowsy
>> without any coffee, and lo and behold I issued my 'zfs destroy -R' and
>> immediately realized after pressing [ENTER[ that I had given it the
>> source's zpool name. oops. Fortunately I was able to interrupt the
>> procedure with only /usr being destroyed from the pool and I was able to
>> send/receive the truly vital data in my /var partition to the new disk a=
nd
>> re-deploy the base system to /usr on the new disk. The only thing I'm
>> really missing at this point is all of the third-party software
>> configuration I had in /usr/local/etc and my apache data in
>> /usr/local/www.
>>
>
> You can try to experiment with zpool hidden flags. Look at this command:
>
> zpool import -N -o readonly=3Don -f -R /pool <pool>
>
> It will try to import pool in readonly mode so no data would be written o=
n
> it. It also doesn't mount anything on import so if any fs is damaged you
> have less chances triggering a coredump. Also zpool import has a hidden -=
T
> switch that gives you ability to select transaction that you want to try =
to
> restore. You'll need a list of available transaction though:
>
> zdb -ul <vdev>
>
> This one when given a vdev lists all uberblocks with their respective
> transaction ids. You can take the highest one (it's not the last one) and
> try to mount pool with:
>
> zpool import -N -o readonly=3Don -f -R /pool -F -T <transaction_id> <pool=
>
>
> Then check available filesystems.
>
> --
> Sphinx of black quartz, judge my vow.
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CA%2B0MdpMfa-vMKGXrvgbJu8QQd4vqqAriLedENTHAaqVGgNwHGQ>