Mount order for ZFS, jails, and nullfs
tg at gmplib.org
Fri Sep 24 16:03:09 UTC 2010
In jails, I'd like a local ZFS /, a read-only nullfs-mounted /usr, and a
local /usr/local. (I'd also have read-only nullfs-mounted /bin, /lib,
/libexec, but let's forget about that for now.)
This way, I can upgrade the master /usr once, in one place, and have all
jails inherit it. And my dear jail inmates can install anything in
/usr/local (such as their favourite packages/ports).
I.e., things should look like this:
/myjail/usr nullfs ro
There is no problem to make this happen by issuing a handful of commands
manually after boot, but I cannot seem to get it to work automatically,
with existing boot mechanism. The problem is that the mount of /usr
will be attempted before ZFS has mounted /myjail, the jail's root.
ZFS maintains its own mount table. It is possible to disable the
automated mounting in ZFS by specifying the pseudo mountpoint "legacy",
and then--according to the FreeBSD manual--mount it with mount(8).
Unfortunately, FreeBSD's mount seems unable to perform mounts of ZFS
How can I achieve the result I want after a reboot?
(The reply "use ezjail!" is not the right one. :-) It does not do what
I want to do. I dislike its symlink forest, and that it creates just
one ZFS filesystem for the entire jail.)
More information about the freebsd-questions