[review request] zfsboot/zfsloader: support accessing filesystems within a pool

John Baldwin jhb at freebsd.org
Tue Apr 17 21:28:55 UTC 2012


On Tuesday, April 17, 2012 4:22:19 pm Andriy Gapon wrote:
> on 16/04/2012 16:56 John Baldwin said the following:
> > On Saturday, April 14, 2012 1:35:35 pm Andriy Gapon wrote:
> >> on 14/04/2012 18:37 Andriy Gapon said the following:
> >>>
> >>> I would like to ask for a review and/or testing of the following three patches:
> >>> http://people.freebsd.org/~avg/zfsboot.patches.diff
> >>>
> >>> These patches add support for booting from an arbitrary filesystem of any
> >>> detected ZFS pool.  A filesystem could be selected in zfsboot and thus will
> >>> affectfrom where zfsloader would be loaded.  zfsboot passes information about
> >>> the boot pool and filesystem to zfsloader, which uses those for loaddev and
> >>> default value of currdev.  A different pool+filesystem could be selected in
> >>> zfsloader for booting kernel.  Also if vfs.root.mountfrom is not explicitly set
> >>> and is not derived from fstab, then it gets set to the selected boot filesystem.
> >>
> >> A note for prospective testers: the patched loader expect to be started by the
> >> patched zfs boot as it passes an additional parameter for a filesystem guid.
> >> I should probably add some way to distinguish between the older and newer zfs
> >> boot blocks.  Maybe an extra bit in bootflags?  What do you think?
> > 
> > An extra bit (similar to existing flags for detecting PXE and CD booting)
> > sounds fine to me.  (Note, I'm only replying to the question, have not looked
> > at patches yet).
> 
> I hope that you will :-)
> 
> We already have a flag for ZFS (KARGS_FLAGS_ZFS, 0x4).  So the new flag could be
> named something ZFS-specific (as silly as KARGS_FLAGS_ZFS2) or something more
> general such as KARGS_FLAGS_32_BYTES meaning that the total size of arguments
> area is 32 bytes (as opposed to 24 previously).

Does KARGS_FLAGS_GUID work?

-- 
John Baldwin


More information about the freebsd-fs mailing list