From 95ad765942185c673fcb933a6a0374098b4d4cd2 Mon Sep 17 00:00:00 2001 From: Piotr Karbowski Date: Fri, 3 Feb 2012 21:17:18 +0100 Subject: [PATCH] Remount already mounted filesystems. --- init.d/root.in | 47 +++++++++++++++++++++++++++++++++-------------- 1 files changed, 33 insertions(+), 14 deletions(-) diff --git a/init.d/root.in b/init.d/root.in index 1c93771..294f833 100644 --- a/init.d/root.in +++ b/init.d/root.in @@ -13,20 +13,39 @@ depend() start() { case ",$(fstabinfo -o /)," in - *,ro,*) return 0;; + *,ro,*) + ;; + *) + # Check if the rootfs isn't already writable. + if echo 2>/dev/null >/.test.$$; then + rm -f /.test.$$ /fastboot /forcefsck + else + ebegin "Remounting root filesystem read/write" + case "$RC_UNAME" in + Linux) + mount -n -o remount,rw / + ;; + *) + mount -u -o rw / + ;; + esac + if eend $? "Root filesystem could not be mounted read/write"; then + rm -f /fastboot /forcefsck + fi + fi + ;; esac - if echo 2>/dev/null >/.test.$$; then - rm -f /.test.$$ /fastboot /forcefsck - return 0 - fi - - ebegin "Remounting root filesystem read/write" - case "$RC_UNAME" in - Linux) mount -n -o remount,rw /;; - *) mount -u -o rw /;; - esac - if eend $? "Root filesystem could not be mounted read/write"; then - rm -f /fastboot /forcefsck - fi + ebegin "Remounting filesystems" + local mountpoint + for mountpoint in $(fstabinfo); do + case "${mountpoint}" in + /) + ;; + /*) + mountinfo -q "${mountpoint}" && fstabinfo --remount "${mountpoint}" + ;; + esac + done + eend 0 } -- 1.7.8.4