Resending old report to bugzilla. This "bug" doesn't show on a stock installation. The problem is that makewhatis is non FHS compliant (since one is supposed to be able to mount /usr as read only) If you replace the makewhatis cron job with the following script, it should catch the most common setups (it won't work though if for instance /usr/local/man is a mount point) #!/bin/bash # # By marcsoft (07/27/98) USR=no USRLOCAL=no if [ ! -z "`cat /proc/mounts | grep '/usr ' | grep ro`" ]; then USR=yes mount -o remount,rw /usr fi if [ ! -z "`cat /proc/mounts | grep '/usr/local ' | grep ro`" ]; then USRLOCAL=yes mount -o remount,rw /usr/local fi makewhatis -w if [ $USR = "yes" ]; then mount -o remount,ro /usr fi if [ $USRLOCAL = "yes" ]; then mount -o remount,ro /usr/local fi
This would be nice ideally but it unfortunately cannot happen realistically. A multiuser machine requires /usr to be accessible most of the time. When root wants to upgrade something, they would need to unmount the partition and then remount rw in order to upgrade and then back again. This would cause interruption. Most of the /usr tree is already non writable by users other than root regardless.
You don't need to umount /usr to remount as read write, there is no interruption involved. I use: magic:~$ more /var/local/scr/rw #!/bin/sh echo Remounting /usr read-write if [ ! -z "`cat /proc/mounts | grep '/usr '`" ]; then mount -o remount,rw /usr fi if [ ! -z "`cat /proc/mounts | grep '/usr/local '`" ]; then mount -o remount,rw /usr/local fi /usr has been read only on my systems for over two years with no problems whatsoever (except the occasional script that I need to fix). The main reason for having /usr ro is to prevent long fscks and possible filesystem corruption when a crash/power outage does occur. Note that it is still fine with me if you discard this though :-)