Re: Bug#78834: Support for mounting /usr readonly
I think the easiest solution would be to drop to "single-user" runlevel to
do the upgrade, but that is obviously not always practical. But I am not
sure there is really any alternative to mounting /usr ro after upgrading a
running daemon instance or shared library. I think it might take a
journalled filesystem to make this easier, but I don't know for sure.
; Just my thoughts.
On Tue, 5 Dec 2000, Ethan Benson wrote:
> On Tue, Dec 05, 2000 at 03:23:23PM +0100, Simon Richter wrote:
> > Package: general
> > Severity: wishlist
> >
> > Hi,
> >
> > My usual setup is to have /usr mounted readonly and have apt remount it
> > r/w when it calls dpkg. This saves me about 20 minutes of fsck time, as
> > /usr has many small files on it.
> >
> > However, this approach only works as long as no postinst script starts a
> > daemon on /usr. After that, the filesystem is marked busy and cannot be
> > properly remounted read-only.
>
> i don't think this is true. i also keep a read-only /usr and the only
> time i have problems remounting it ro again after installing/upgrading
> packages is if i upgrade a running daemon. and the reason that
> happens is the daemon's file is deleted while its in use, in unix this
> is allowed but inode is not actually freed until the last process
> holding a file descriptor terminates. i think this is what you are
> experiencing.
>
> i have many times installed new daemons and /usr remounted ro without
> error, postinst script or not.
>
> you can usually find the culprit by running lsof +L1 that will show
> you a list of files which are open but have no links in the
> filesystem. note that will not tend to show anything if the file in
> question was a shared library, i am not entirely sure why.
>
> there is really not much debian can do to fix this, for daemons they
> are usually restarted in the postinst and are thus not a problem, but
> not always. (X for example, it would be rather rude to kill some
> user's X session unexpectedly) in the case of libraries it is not
> reasonable/possible to kill every process that was using the old
> library.
>
> --
> Ethan Benson
> http://www.alaska.net/~erbenson/
>
Reply to: