Re: Moving resolv.conf to /var



Em Wednesday 03 August 2011, Michał Górny escreveu:

> On Wed, 3 Aug 2011 14:53:21 -0300

>

> Lamarque Vieira Souza <lamarque gmail com> wrote:

> > Em Wednesday 03 August 2011, Dan Williams escreveu:

> > > On Wed, 2011-08-03 at 10:29 +0200, Michał Górny wrote:

> > > > Hello,

> > > >

> > > > AFAIK NetworkManager is the most common tool which keeps writing

> > > > to /etc/resolv.conf file during runtime. Such a solution makes it

> > > > hard to support configurations where rootfs in read-only most of

> > > > the time.

> > > >

> > > > That's why I'm considering moving the resolv.conf file to /var.

> > > > I'm not sure about the exact location there but /var seems much

> > > > better for non-static resolver configs.

> > > >

> > > > I think that the best solution would be to patch glibc so it will

> > > > first try to load 'dynamic' resolv.conf from /var, and then

> > > > fallback to static configs in /etc.

> > > >

> > > > I'd really appreciate any kind of feedback on that idea.

> > >

> > > Having resolv.conf in /etc also prevents read-only root, thus /var

> > > is actually a better place for it since it's really a composite of

> > > various information and can change at will. Lennart wrote a blog

> > > post a month or so ago about moving it somewhere, I forget where,

> > > but you might read that post as well. I'll take a patch that

> > > allows you to pass --with-resolv-conf-file-path=<whatever> which

> > > shouldn't be too hard to do.

> > >

> > > I don't know how far you're likely to get with glibc though,

> > > since /etc/resolv.conf is standardized in various places and it's a

> > > long-standing tradition. The best way to make changes here is

> > > simply to try out patches in your distro and see how it works, and

> > > perhaps eventually they'll see which way the wind is blowing.

> >

> > This problem is not specific to NM, any dhcp client will have

> >

> > to rewrite /etc/resolv.conf to update name server's IP addresses.

> > When I create read-only filesystems I prefer to create a symbolic

> > link (/etc/resolv.conf in this case) pointing to the real file in the

> > read/write media or ramdisk. Another alternative is use a

> > read-only /etc at first, mounting a ramdisk in /etc and populating

> > the ramdisk with the some contents of the read-only /etc. The latter

> > is a little tricky to make work right because for some instants /etc

> > will be empty.

>

> Not all apps handle symlinks correctly (e.g. I've seen something

> writing temporary file to /etc first and failing then). Not to mention

> that's only a workaround for the real issue of FHS breakage.

 

So you can take my second alternative. Since at the start of the boot process everything is read-only you can use a script inside a ramdisk to mount /etc in another ramdisk and populate it before finishing the boot process. I did something like that with OpenSuse 10.x some years ago. OpenSuse 10.x used to use an initramfs with a quite complex init script inside, we could do several things there before passing the boot process control to /sbin/init.

 

/etc/resolv.conf is not the only file written to during boot process. localtime, asound.conf, fstab, mtab, modprobe.conf, cups/printers.conf are other file that may needed to be written to during user session.

 

--

Lamarque V. Souza

http://www.geographicguide.com/brazil.htm

Linux User #57137 - http://counter.li.org/

http://planetkde.org/pt-br



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]