#!/bin/sh # Copyright(C) 2006 Nokia Corporation. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 # USA do_umounts() { MOUNTS=`cat /proc/mounts | cut -d " " -f 2` for MOUNT in $MOUNTS ; do case $MOUNT in /|/proc|/dev|/.dev|/dev/pts|/dev/shm|/dev/.static/dev|/proc/*|/sys|/lib/init/rw|/var/run|/var/lock|/tmp) continue;; *) echo $MOUNT needs unmounting /bin/umount $MOUNT continue;; esac done } do_ro() { MOUNTS=`cat /proc/mounts | cut -d " " -f 2` for MOUNT in $MOUNTS ; do case $MOUNT in /|/proc|/dev|/.dev|/dev/pts|/dev/shm|/dev/.static/dev|/proc/*|/sys|/lib/init/rw|/var/run|/var/lock|/tmp) continue;; *) echo Uh, we may still have leftover mount $MOUNT. Switching to RO /bin/mount -n -o remount,ro $MOUNT continue;; esac done } # Note: please do not whine, whole thing is still a temp hack. do_umounts sync do_umounts sync do_ro