Date: Tue, 27 Sep 2016 15:53:22 +0700 From: Victor Sudakov <vas@mpeks.tomsk.su> To: Mike Tancsa <mike@sentex.net> Cc: freebsd-questions@freebsd.org Subject: Re: complete clone/restore from a ZFS-based system replication stream Message-ID: <20160927085322.GA96393@admin.sibptus.transneft.ru> In-Reply-To: <688eec35-bc7b-ae05-b765-106933b522d1@sentex.net> References: <20160926154720.GA75556@admin.sibptus.transneft.ru> <688eec35-bc7b-ae05-b765-106933b522d1@sentex.net>
next in thread | previous in thread | raw e-mail | index | archive | help
Mike Tancsa wrote: > > > > I have a complete dump of a working system created by > > 'zfs send -Rv zroot@test1 > test1.zfs '. I think it's called a > > replication stream package. I also have a new hard drive. Then I > > create the freebsd-boot, freebsd-swap and freebsd-zfs partitions on > > the new drive, install the bootloader on it. > > > > Now what command exactly do I use to restore the system from > > test1.zfs? I have tried "zfs receive" with different combinations of > > options but each time I and with some error message like "destination > > exists..." > > > > Please refer me to a good howto on restoring a system from a > > replication stream package. > > Here are the steps I used to restore a "level zero" zfs file onto a > new/fresh mirror. [dd] > > #make sure /mnt2 exists > zpool create -f -o altroot=/mnt2 -O canmount=off -m none zroot mirror > /dev/ada0p3 /dev/ada1p3 > > gzcat /mnt/zroot-.0.gz | zfs recv -vF zroot Mike, that's very useful information, thank you very much. However, there are a couple of questions left. 1. When you boot from this pool later on a restored system, don't the "-o altroot=/mnt2 -O canmount=off" options prevent it from working normally? I gather that "altroot" is not persistent across reboots, but "canmount" probably is. 2. If you wanted to check "zfs recv" without actually restoring it, what what you do? I keep getting the "cannot receive incremental stream" error: # zpool create -f -o altroot=/mnt2 -O canmount=off -m none foobar1 /dev/vtbd2 # zfs receive -vFn foobar1 < /mnt/test1.zfs would receive full stream of zroot@test1 into foobar1@test1 would receive full stream of zroot/var@test1 into foobar1/var@test1 would receive full stream of zroot/var/mail@test1 into foobar1/var/mail@test1 would receive full stream of zroot/var/crash@test1 into foobar1/var/crash@test1 would receive full stream of zroot/var/tmp@test1 into foobar1/var/tmp@test1 would receive full stream of zroot/var/audit@test1 into foobar1/var/audit@test1 would receive full stream of zroot/var/log@test1 into foobar1/var/log@test1 would receive full stream of zroot/tmp@test1 into foobar1/tmp@test1 would receive full stream of zroot/ROOT@test1 into foobar1/ROOT@test1 would receive full stream of zroot/ROOT/test1@2016-08-22-21:58:22 into foobar1/ROOT/test1@2016-08-22-21:58:22 cannot receive incremental stream: destination 'foobar1/ROOT/test1' does not exist # > > #import it, but its probably already there so dont worry about the error > zpool import -f -o altroot=/mnt2 zroot > zpool set bootfs=zroot/ROOT/default zroot > > ... You should now be able to boot off the restored mirror. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN sip:sudakov@sibptus.tomsk.ru
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20160927085322.GA96393>