Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 24 Sep 2010 18:03:06 +0200
From:      Torbjorn Granlund <tg@gmplib.org>
To:        freebsd-questions@freebsd.org
Subject:   Mount order for ZFS, jails, and nullfs
Message-ID:  <867hibxh6t.fsf@shell.gmplib.org>

next in thread | raw e-mail | index | archive | help
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/                zfs
/myjail/usr             nullfs ro
/myjail/usr/local       zfs

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
volumes.

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.)

--=20
Torbj=F6rn



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?867hibxh6t.fsf>