Booting from zfs snapshot

Johannes Totz johannes at jo-t.de
Sun Jan 22 12:26:09 UTC 2012


On 19/01/2012 16:26, Andreas Nilsson wrote:
> Hello,
>
> I'm trying to wrap my head around the process of booting from a zfs
> snapshot. I have hit a few roadblocks, which I hope this is the adequate
> list to post to regarding those.
>
> A short note on what I'm trying to achieve might be in order. In short: a
> nanobsd system on zfs only. I want to boot from a snapshot so that when I
> push out an upgrade with zfs send, I want the root filesystem to remain
> unchanged.
>
> The problems I've hit so far:
> *1 Making the zpool.cache file available
> *2 Having / mount via entry in fstab.

FWIW, I dont use any fstab for my zfs-only machine. Works perfectly fine 
with mountpoint property.

> *1: The zpool.cache is needed to autoimport a pool as I understand it. Is
> there a way to force the kernel to import a pool during bootup even though
> no zpool.cache is around? What does this file actually contain?
>
> I made an experiment and booted a disk with zfs root from machine a in
> machine b and that worked. I did partition the disk with gpart using a gpt
> scheme, and labeled the partition on which the pool resides as os, and upon
> creation of the zpool used gpt/os as device. Does this mean that as long as
> gpt/os is available, any machine boot this disk will have the zpool
> autoimported?

Not quite sure I understand you here. Just a note: booting kernel and 
mounting root fs are two different things. the *zfsloader will happily 
load the kernel off a pool and boot it but mounting root might fail 
later (I guess if no cachefile is present?).

>
> *2: Having a line like
> tank/root/8.2-RELEASE-p5 at ro / zfs ro 0 0
> in fstab causes mount to throw an error and leave me in single user mode,
> when the system is booted however mount can mount a zfs snapshot just fine.
> Setting vfs.root.mountfrom in loader.conf works just fine though.



-- 
Sent from my <insert random gadget here>



More information about the freebsd-fs mailing list