Lots of interesting discussion! Thanks all. Broadly I think I can summarise to the following options:
1. The existing critical_filesystems_zfs rc.conf variable, which mixes ZFS configuration in both rc.conf and with ZFS itself. 2. Add ZFS "critical" properties for filesystems and mount those in /etc/rc.d/mountcritlocal . 3. Move all ZFS mounts to /etc/rc.d/mountcritlocal . 4. Optionally move all ZFS mounts to /etc/rc.d/mountcritlocal controlled by an rc.conf variable (eg zfs_critical). 5. Move all local mounts to /etc/rc.d/mountcritlocal (ala FreeBSD) and possibly rename this to /etc/rc.d/mountlocal . 6. "Intelligent" ordering based on prefixes, tsort, etc. In terms of what to do for the up-and-coming netbsd-10 (although the actual release will still be a little whiles away), I think there appeared to be broad concensus on that option 2 was reasonable. I will try to get an implementation of that ready. If that's not ready in time for netbsd-10 I think option 4 is probably least intrusive fallback especially because it's optional. critical_filesystems_zfs is still available now, and will be available going forward. Option 3 doesn't seem to buy anything if option 4 is available and option 5 seems like it could be more impactful to existing mixed local and NFS setups. Option 6 I think is out of scope of what I want to get root-on-ZFS working. That doesn't stop others from fleshing this out of course! Thoughts? Anything I've missed? And somewhat related that came out of this discussion - add a "noerror" or "notfatal" or some similar keyword that says a failed fsck or mount doesn't automatically fail the boot and fall back to single user mode. Although Ignatios had an interesting solution to this with "noauto" and using @reboot crontab entries. This seems like a useful idea. Anyone up for implementing it? :) Cheers, Simon.