Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 6 Apr 2010 17:37:11 -0400
From:      Glen Barber <glen.j.barber@gmail.com>
To:        Dan Naumov <dan.naumov@gmail.com>
Cc:        freebsd-jail@freebsd.org, freebsd-questions@freebsd.org
Subject:   Re: bizarre mount_nullfs issue with jails / ezjail
Message-ID:  <20100406213711.GA38637@orion.hsd1.pa.comcast.net>
In-Reply-To: <k2xcf9b1ee01004061429ub4986488ya54af1a525aa209c@mail.gmail.com>
References:  <k2xcf9b1ee01004061429ub4986488ya54af1a525aa209c@mail.gmail.com>

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

Dan Naumov wrote: 
> So, I want the basejail to only contain the world and link the ports
> tree from the host into each individual jail when it's time to update
> the ports inside them, but I am running into a bit of a bizarre issue:
> I can mount_nullfs /usr/ports elsewhere on the host just fine, but it
> doesn't work if I try to mount_nullfs it to /usr/ports inside the
> jail:
> 
> mount_nullfs /usr/ports/ /usr/ports2
> 
> df -H | grep ports
> cerberus/usr-ports                34G    241M     34G     1%    /usr/ports
> cerberus/usr-ports-distfiles      34G      0B     34G     0%
> /usr/ports/distfiles
> cerberus/usr-ports-packages       34G      0B     34G     0%
> /usr/ports/packages
> /usr/ports                        34G    241M     34G     1%    /usr/ports2
> 
> mount | grep ports
> cerberus/usr-ports on /usr/ports (zfs, local)
> cerberus/usr-ports-distfiles on /usr/ports/distfiles (zfs, local)
> cerberus/usr-ports-packages on /usr/ports/packages (zfs, local)
> /usr/ports on /usr/ports2 (nullfs, local)
> 
> mount_nullfs /usr/ports/ /usr/jails/semipublic/usr/ports
> mount_nullfs: /basejail: No such file or directory
> 
> What is going on here? I also note that the error actually wants a
> /basejail on the host, which is even more bizarre:
> 
> mount_nullfs /usr/ports/ /usr/jails/semipublic/usr/ports
> mount_nullfs: /basejail: No such file or directory
> 
> mkdir /basejail
> 
> mount_nullfs /usr/ports/ /usr/jails/semipublic/usr/ports
> mount_nullfs: /basejail/usr: No such file or directory
> 
> Yet, this works:
> 
> mkdir /usr/jails/semipublic/test
> mount_nullfs /usr/ports/ /usr/jails/semipublic/test
> umount /usr/jails/semipublic/test
> 
> Any ideas?
> 
> 

The ports directory in an ezjail is a link to /basejail/usr/ports (in the
jail).

Breaking the link (from the host) allows the mount to work successfully.

orion# ll usr/ports 
lrwxr-xr-x  1 root  wheel  19 Mar  8 18:06 usr/ports -> /basejail/usr/ports
orion# unlink usr/ports 
orion# mkdir usr/ports
orion# mount_nullfs /usr/ports usr/ports
orion#

Regards,

-- 
Glen Barber



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