On Fri, 27 May 2011 14:41:54 +0300, Andriy Gapon wrote:
on 27/05/2011 14:08 [email protected] said the following:
I use zfs on / for quite some time now on 8-stable.

Each time I want to update base, I use those steps :

 - zfs snapshot tank/root@old
 - zfs clone tank/root@old tank/root.old
 - csup / Rebuild world and kernel
 - install world & kernel
 - reboot
 - (mergemaster and all usual post-update stuff)

This way, if I unfortunately can't boot, I can revert to old userland & kernel by :

 - dropping into loader prompt
 - setting vfs.root.mountfrom to zfs:tank/root.old
 - booting kernel.old

Just for the records, I would like to poin out that kernel.old would
be loaded
from zfs:tank/root.


Yes indeed.

(...)

Also, world is updated "in place".

I think it should be possible to do the installworld & installkernel on a root clone then boot into it (changing tank bootfs property), but then : how to revert to previous state in case of failure ? Is there a "nextboot" thing planed for zfs ?

I am not aware of any plans to implement nextboot for zfs as it would
require at
least some write support for zpool and there is none (for boot code)
at the moment.


Could'nt the loader use a bit flag in the loader sector ?

Nextboot (or something equivalent) missing is the sole thing keeping me from removing ufs boot partition for remote servers.

What do you think ? How do you address the problem ?

I have some patches that allow to boot a different loader or a kernel from a
different (non-bootfs) ZFS dataset:
http://lists.freebsd.org/pipermail/freebsd-fs/2010-July/008976.html
But that still requires access to zfs boot and/or loader command interface.

Interesting though. Thanks.
Does the mentionned patch still works with latest 8-stable loader ?
And do you still have to change vfs.root.mountfrom once currdev set ?



_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[email protected]"

Reply via email to