aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2007-10-29 13:53:21 +0000
committerRoy Marples <roy@marples.name>2007-10-29 13:53:21 +0000
commite2ba92f77362097621c977e0e46d4c3e6a509c37 (patch)
treee7f247c6bf94055ca700a3b5b3c5be600e93f325
parente372729b8cc489af7b1b2305d6fd9c1895b9c8d4 (diff)
/etc/mtab is now a true reflection on /proc/mounts. The only exception is that we punt any / on tmpfs entry, #194615.
-rw-r--r--ChangeLog3
-rwxr-xr-xinit.d/checkroot18
2 files changed, 8 insertions, 13 deletions
diff --git a/ChangeLog b/ChangeLog
index 8d1eb578..d819f09e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,6 +3,9 @@
29 Oct 2007; Roy Marples <uberlord@gentoo.org>:
+ /etc/mtab is now a true reflection on /proc/mounts.
+ The only exception is that we punt any / on tmpfs entry, #194615.
+
Network config arrays are now split by embedded new lines instead of
being evaled into space separated values. This makes it easier to read,
maintain and document as discussed on gentoo-dev.
diff --git a/init.d/checkroot b/init.d/checkroot
index 959ca0b3..eadb65c9 100755
--- a/init.d/checkroot
+++ b/init.d/checkroot
@@ -13,19 +13,11 @@ do_mtab() {
fi
ebegin "Updating /etc/mtab"
- # Add the entry for / to mtab
- mount -f /
-
- # Don't list root more than once
- grep -v "^[^ ]* / " /proc/mounts >> /etc/mtab
-
- # Now make sure /etc/mtab have additional info (gid, etc) in there
- local mnt=
- mountinfo | while read mnt; do
- if fstabinfo --quiet "${mnt}"; then
- mount -f -o remount "${mnt}"
- fi
- done
+ # 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~~