Re: reanimate ZFS pool after disk cloning and host changing

From: Ralf S. Engelschall <rse_at_FreeBSD.org>
Date: Thu, 11 Oct 2007 22:32:29 +0200
On Fri, Oct 12, 2007, Andrew Thompson wrote:

> On Thu, Oct 11, 2007 at 08:43:40PM +0200, Ralf S. Engelschall wrote:
> > I've a FreeBSD 7-CURRENT (as of 2007-10-09) running in a VirtualBox
> > virtual machine and with all filesystems except /boot on ZFS. Now that
> > we switched to 7.0-PRERELEASE and 8-CURRENT I today created another
> > virtual machine and just cloned the disks (with "vboxmanage clonevdi",
> > but it doesn't matter here).
> >
> > When I then booted the new virtual machine with the cloned disks, the
> > root filesystem couldn't be mounted during boot via "zfs:zp1/root" as
> > the ZFS pool "zp1" is no longer available.
> >
> > So I booted into the Fixit environment from
> > "7.0-CURRENT-200709-i386-disc1.iso" and tried "zpool import". It was
> > able to detect the pool on device ad0s1f. The problem just is that the
> > hostid has changed (which is correct), so I thought I just have to
> > re-import the ZFS pool with "zfs import -R /zp1 -f zp1". This still
> > worked just fine: all filesystem were available under temporary /zp1
> > now (I had to use this alternative root or the Fixit environment is
> > immediately dead). But once I then reboot into the system, the ZFS pool
> > is again not found via "zfs:zp1/root"!
> >
> > In tried multiple times with various ways in the Fixit environment:
> > "zfs import zp1" is denied because the hostid is different, "zfs import
> > -f zp1" does the trick (although breaks the Fixit environent) but
> > after reboot the ZFS pool again gone, "zfs import -R /zp1 -f zp1" does
> > also the trick but here again the ZFS pool is gone after reboot.
> >
> > So, the silly question is: what is the correct way to reanimate a ZFS
> > pool after the host has changed, so that one can again directly boot
> > from from one of its filesystems (here "zp1/root")?
>
> Is /boot/zfs/zpool.cache up to date after importing the pool? If your
> seperate /boot filesystem isnt mounted when you import then you will
> need to overwrite it manually.

Ah, an important point which I totally overlooked. In the Fixit
environment /boot is not writable, of course. I retried by mounting the
UFS /boot manually inside the Fixit environment before doing the "zfs
import". This finally did the trick! Thanks for your quick reply and the
essential hint.

--
rse_at_FreeBSD.org                        Ralf S. Engelschall
FreeBSD.org/~rse                       rse_at_engelschall.com
FreeBSD committer                      www.engelschall.com
Received on Thu Oct 11 2007 - 18:34:21 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:19 UTC