Red Hat Bugzilla – Bug 487604
readonlyroot and updating /etc/mtab
Last modified: 2010-06-09 07:50:16 EDT
When one configure's one system(s) to use the readonlyroot facility, /etc/mtab updates fail because a lock file is attempted which is on the readonly root, while of course /etc/mtab is still writable as it's bind mounted from the writable space. Here's the symptoms:
can't create lock file /etc/mtab~692: Read-only file system (use -n flag to override)
Which results from the various mounts done in rc.sysinit such as:
+ mount -f /
+ mount -a -t nonfs,nfs4,smbfs,ncpfs,cifs,gfs -O no_netdev
Mounting other filesystems: can't create lock file /etc/mtab~977: Read-only file system (use -n flag to override)
These all probably need to take the advise to use "-n" when readonlyroot is set.
Hrm. I tried to close this as a duplicate of 214819 but it seems, even though I opened the bug, I cannot close it.
Somebody please close this as a dup of 214819.
*** This bug has been marked as a duplicate of bug 214819 ***
(In reply to comment #1)
> Somebody please close this as a dup of 214819.
Oops. A little lysdexic this morning. That should be 214891, not ...19.
*** This bug has been marked as a duplicate of bug 214891 ***
This is incorrectly closed as duplicate. 214891 is against rawhide not RHEL.
Moving to RHEL6 for tracking purposes as per:
This request was evaluated by Red Hat Product Management for inclusion in a Red
Hat Enterprise Linux major release. Product Management has requested further
review of this request by Red Hat Engineering, for potential inclusion in a Red
Hat Enterprise Linux Major release. This request is not yet committed for
Perhaps a good solution is to have mount write mtab locks under /var/lock instead of in /etc. /var/lock is already in /etc/rwtab. Then one would not have to use mount -n, and actually get a usable /etc/mtab file.
I forgot to mention that I am having this problem on RHEL 5.4. And there seems to be a fair number of init.d scripts that have this problem.
/var/lock isn't necessarily there during rc.sysinit.
When READONLY root is used with the default /etc/rwtab, rc.sysinit creates /var/lock as a bind-mount into /var/lib/stateless/writable. I believe all mounts in rc.sysinit prior to that are done with mount -n anyway.
I guess the problem is when READONLY is not set, huh? Then something may get mounted on /var later...
Well, if init scripts use "mount -n" then we can close this bug, right? I'm not sure what change is expected in mount(8).
For more details why we cannot move the mtab lock file see #214891.
Oof, it seems weird to have to every time we call mount to try and decide whether or not we should pass -n, depending on the state of /etc.
Honestly... union mounts are the way to go.