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

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Apr 7, 2010 at 12:37 AM, Glen Barber <glen.j.barber@gmail.com> wrot=
e:
> 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 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A034G =A0 =A0241M =A0 =
=A0 34G =A0 =A0 1% =A0 =A0/usr/ports
>> cerberus/usr-ports-distfiles =A0 =A0 =A034G =A0 =A0 =A00B =A0 =A0 34G =
=A0 =A0 0%
>> /usr/ports/distfiles
>> cerberus/usr-ports-packages =A0 =A0 =A0 34G =A0 =A0 =A00B =A0 =A0 34G =
=A0 =A0 0%
>> /usr/ports/packages
>> /usr/ports =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A034G =A0 =A0241=
M =A0 =A0 34G =A0 =A0 1% =A0 =A0/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 =A01 root =A0wheel =A019 Mar =A08 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

Thanks for the tip.

An additional question: how come "sade" and "sysinstall" which are run
inside the jail can see (and I can only assume they can also operate
on and damage) the real underlying disks of the host?

- Sincerely
Dan Naumov



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