zfs send/receive as dump/restore alternative

Victor Sudakov vas at mpeks.tomsk.su
Mon Nov 14 09:42:52 UTC 2016

Matthew Seaman wrote:
> > How would you restore a) a single dataset or b) a single file from a
> > replication stream package? I really need this mode of operation for
> > undeleting users' files etc.
> You have to 'zfs recv' your datastream and expand it out as a
> filesystem.  

What if I have not enough space to expand the whole datastream as a
filesystem? My replication stream package is 119G large at the moment
one one server, I have neither free space nor spare time to expand the
whole of it into an altroot.

restore(8) did not require that.

> Then you can simply copy individual files back to your live
> system, or you can do a zfs send / zfs recv of a single dataset to
> restore that.

If I have a complete replication stream package, can I "zfs recv" a
single dataset from it? It would be silly to expand the whole pool to
extract a couple of files from zroot/usr/home/johndoe/docs 
> You can easily 'zfs recv' the datastream into a different root directory
> than it came from -- so you won't end up overwriting onesystem with the
> backup of another.

> There are scripts to do this in ports, but here's some I wrote
> myself:
> https://github.com/infracaninophile/zfs-backup
> I never did get round to writing a 'zfs-restore' script though.

So if you ever get to restore several files and don't have enough
space to receive the whole stream, what would you do?

With restore or tar you can always do a partial extract.

Victor Sudakov,  VAS4-RIPE, VAS47-RIPN
sip:sudakov at sibptus.tomsk.ru

More information about the freebsd-questions mailing list