I think I fixed the problem.  I added the RequiresMountsFor=/var to
resolvconf, deleted everything below /var on the root partition, and
changed /etc/resolvconf/update.d/bind9 to use /run/named instead of
/var/run/named (the actual reference in named.conf.options already
used /run without the /var prefix).  Combined with the previous
changes (establishing RequiresMountsFor=/var for bind9 and
bind9-resolvconf) seems to do the trick.  I started the system twice,
and both times bind9 started successfully on boot.

What combination of changes are essential I don't know, though clearly
at least one of the changes in the last round was.

The change from /var/run to /run was inspired by internet discussion
of somewhat similar problems, in which the fact that /var/run was a
symlink made dependencies hard to work out.  It has the added bonus of
removing the dependency on /var being mounted for named.resolvers (the
file created by the bind9 script for resolvconf).  Of course, /run has
to be mounted, but I guess that's already taken care of.

The root partition's /var no longer has stuff being written to it on startup.

I'm sure there are some general lessons to be learned, though I'm not
sure what they are :)  It's not clear to me if the presence to stuff
below the root partitions /var, or the writing of files there, fooled
or disabled RequiresMountsFor as you suspected, but it seems possible.

I leave it to you to decide if any changes to the bind package are in
order.  The problem seems to require the interaction of a separately
mounted /var (which I would guess is typical) and the effort to
integrate resolvconf and bind9 (I think I enabled bind9-resolvconf
manually).  My recollection is the current package provides only
general guidance about working with resolvconf, but I think specifics
would be helpful.

Ross

Reply via email to