863ef36011
/etc/mtab can be a link to a file in /proc. If it is, we should not attempt to update /etc/mtab. The original test used "! -w" as part of the test. This does not work since everything is writeable by root. Thanks to Robin Johnson for the suggestion of using readlink -f and the regular expression. Reported-By: junkmailnotread@yahoo.com X-Gentoo-Bug: 370037 X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=370037
38 lines
944 B
Plaintext
38 lines
944 B
Plaintext
#!@PREFIX@/sbin/runscript
|
|
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
|
|
# Released under the 2-clause BSD license.
|
|
|
|
description="Update /etc/mtab to match what the kernel knows about"
|
|
|
|
depend()
|
|
{
|
|
need root
|
|
keyword -prefix
|
|
}
|
|
|
|
start()
|
|
{
|
|
# /etc/mtab could be a symlink to a location in /proc
|
|
if readlink -f /etc/mtab | grep -sq '^/proc/\(self\|[0-9]\+\)/mounts$'
|
|
then
|
|
einfo "Skipping mtab update (link points to location in /proc)"
|
|
return 0
|
|
fi
|
|
|
|
ebegin "Updating /etc/mtab"
|
|
if ! echo 2>/dev/null >/etc/mtab; then
|
|
ewend 1 "/etc/mtab is not updateable"
|
|
return 0
|
|
fi
|
|
|
|
# With / as tmpfs we cannot umount -at tmpfs in localmount as that
|
|
# makes / readonly and dismounts all tmpfs even if in use which is
|
|
# not good. Luckily, umount uses /etc/mtab instead of /proc/mounts
|
|
# which allows this hack to work.
|
|
grep -v "^[^ ]* / tmpfs " /proc/mounts > /etc/mtab
|
|
|
|
# Remove stale backups
|
|
rm -f /etc/mtab~ /etc/mtab~~
|
|
eend 0
|
|
}
|