Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 12 Jun 2015 23:59:21 -0400
From:      Marcus Reid <marcus@blazingdot.com>
To:        freebsd-jail@freebsd.org, freebsd-zfs@freebsd.org
Subject:   zfs in a jail
Message-ID:  <20150613035921.GA22078@blazingdot.com>

next in thread | raw e-mail | index | archive | help
Hi,

I'm doing zfs from within a jail, and there is one thing that's giving
me some trouble.

First, the bits that get zfs working from inside a jail:

/etc/jail.conf:
  allow.mount;
  allow.mount.zfs;
  enforce_statfs = 1;

/etc/sysctl.conf:
  security.jail.mount_allowed=1
  security.jail.mount_zfs_allowed=1
  security.jail.enforce_statfs=1

zfs set jailed=on zroot/jails/git/git

Finally, to get the dataset visible inside the jail, this is required
when the jail is running:

zfs jail git zroot/jails/git/git

So, in jail.conf, I do a:

  exec.poststart = "zfs jail git zroot/jails/git/git"

Problem: zfs is not visible in jail after a reboot.  This problem is
understood but I don't know the solution.

exec.poststart is run after exec.start (the thing that runs /etc/rc in
the jail), so the zfs datasets are not yet visible when /etc/rc.d/zfs
runs in the jail.  So, I have to log into the jail and do a 'zfs mount
-a' after everything comes up.  Not ideal.  If there were a
exec.postcreate directive in jail.conf that ran a command on the host
after jail creation but before /etc/rc starts, then I could run 'zfs
jail' before the jails init scripts are run.

Am I going about that in the wrong way?  jail.conf seems like the right
place for it, because you want your storage working after a 'jail -rc
git', right?

Thanks,

Marcus



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