Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 02 Dec 2013 14:36:52 +0100
From:      Daniel Gerzo <danger@FreeBSD.org>
To:        Matthew Seaman <m.seaman@infracaninophile.co.uk>
Cc:        freebsd-rc@freebsd.org
Subject:   Re: devfs and late file systems
Message-ID:  <c0ef4dcb78c3444c9c6f6c2ec487fd4a@rulez.sk>
In-Reply-To: <529BA665.7040703@infracaninophile.co.uk>
References:  <52900DA8.3090102@FreeBSD.org> <529BA665.7040703@infracaninophile.co.uk>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2013-12-01 22:13, Matthew Seaman wrote:
> On 23/11/2013 02:06, Daniel Gerzo wrote:
>> Hello,
>> 
>> I am using a root on zfs setup with mounts handled by zfs itself (i.e.
>> not legacy mountpoints through fstab). Furthermore I am using service
>> jails to separate things. I am running named in one of such jails.
>> Obviously I need devfs, and therefore I have added this to my fstab:
>> 
>> devfs /jails/named/var/named/dev devfs rw,late 0 0
>> 
>> I had to add the late keyword to fstab because without it the system
>> wouldn't boot because fstab mounts (mountcritlocal rc.d script) are
>> handled just before zfs and as such the system wouldn't have such path
>> available yet.
>> 
>> Moreover, named needs only a few dev entries and as such I wanted to
>> apply my devfs ruleset, so I added this to rc.conf:
>> 
>> devfs_set_rulesets="/jails/named/var/named/dev=devfsrules_named"
>> 
>> However, this fails during system startup because when the devfs rc.d
>> script is run, the filesystems marked as late are not mounted yet.
>> 
>> There are two obvious options to fix this issue:
>> - we can either move zfs before mountcritlocal which would also fix 
>> this
>> issue with having to use the late filesystems in fstab, or
>> - we can move mountlate before devfs.
>> 
>> I guess the second option is safer (just add mountlate to REQUIRE: 
>> line
>> of devfs) but I may be missing something. Can someone fix this in src,
>> or should I?
>> 
>> Thank you!
>> 
>> PS: I am not subscribed to this list so please keep me cc:ed
>> 
> 
> Assming your jail is tagged as 'named' in rc.conf, create a file
> /etc/fstab.named with your devfs mount details in there.  Then add
> 
>    jail_mount_enable="YES"   (applies to all jails)
> 
> or
> 
>    jail_named_mount_enable="YES"  (just for that jail)
> 
> /etc/rc.d/jail will mount the contents of /etc/fstab.named at jail

This is actually a way to avoid the late keyword from the fstab, however 
this doesn't seem to solve the issue of applying the devfs rules from 
rc.conf.

> startup time, which is well after all the zfs mounts have happened.

 From my quick inspection of the scripts and rcorder it seems like the 
devfs script which applies the devfs rules is run quite soon (before 
mountlate) and thus when I start my jails the devfs script is not going 
to be run again and thus my rules won't apply.

Note that named is chrooted in the jail and needs the devfs in 
/var/named/dev and therefore I can't use the standard
jail_example_devfs_enable="NO"
jail_example_devfs_ruleset="ruleset_name"

Or am I missing somethnig?

-- 
Kind regards
   Daniel



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