complete clone/restore from a ZFS-based system replication stream

Victor Sudakov vas at
Thu Sep 29 02:25:08 UTC 2016

Brandon J. Wandersee wrote:
> >> the FreeBSD Mastery: ZFS books (for example) explain how to avoid this
> >> issue too. 
> >
> > Namely? Or should I buy the book?
> >
> > Of course, I can do with glabel or something, but it's a pity
> > bsdinstall creates an unclonable configuration.
> It's not a bsdinstall problem. 

To some extent, it is. For example Linux installers use labels, not
physical device nodes, from the very start.

> It's really only a problem at all if
> particular circumstances arise---like if you move a disk from a one-disk
> system to another, multi-disk system. Device nodes are assigned based
> either on the order in which the motherboard firmware detects and
> initializes the devices, or the ports into which the devices are
> plugged. Which one gets used depends on your motherboard, and if it's
> the former, nobody has any control over it. Your backup-and-restoration
> plan needs to take that into account.

The problem I speak about is more subtle than minor device numbers
changing. It's device nodes actually disappearing. I'll explain below.

> That's why partition/filesystem labels were invented in the first
> place. It's why a Windows disk can be transplanted into any slot on any
> machine, and it can boot without intervention from the user---the
> filesystems are all labeled.

The worst problems of the kind were on Solaris, where I had to
regenerate /etc/path_to_inst, /dev/devices and a lot of other
non-obvious things after simply moving a disk or controller. That was
before ZFS, however. But I digress.

> Since swap was the example you brought up I'm guessing that's your chief
> concern, since a ZFS pool is usually unaffected by a change in drive
> letters. In that case, just modify /etc/fstab before rebooting or
> transplanting the disk.

No, modifying /etc/fstab like this won't do much good. Please try to
read me. 

1. You attach a second disk, it becomes ada1. You create ada1p2 for
swap and ada1p3 for zfs.

2. You create a zpool on ada1p3. "zpool status" shows ada1p3 as the physical

3. You move the disk to another system. It boots, and being unable to
find ada1p3, loader(?) becomes desperate and uses
/dev/diskid/BLA-BLA-BLAp3 as the physical device for the root pool.

4. Once the diskid label is in use, there is no more ada1p3 or ada0p3
or whatever. It gets hidden. 

5. You curse aloud and use /dev/diskid/BLA-BLA-BLAp2 for swap because no
device nodes and no other labels are available and there is no way to
make them visible or create more human-friendly labels for partitions.

Victor Sudakov,  VAS4-RIPE, VAS47-RIPN
sip:sudakov at

More information about the freebsd-questions mailing list