Files
poky/openembedded/packages/initscripts/initscripts-1.0/openslug/umountfs
Richard Purdie 4b46c1f6e8 Initial population
git-svn-id: https://svn.o-hand.com/repos/poky@1 311d38ba-8fff-0310-9ca6-ca027cbcb966
2005-08-31 10:45:47 +00:00

44 lines
1.0 KiB
Bash

#! /bin/sh
#
# umountfs Turn off swap and unmount all local filesystems.
#
PATH=/sbin:/bin:/usr/sbin:/usr/bin
# Ensure /proc is mounted
test -r /proc/mounts || mount -t proc proc /proc
echo "Deactivating swap..."
swapoff -a
# We leave /proc mounted, the umount of /dev/devpts seems to fail
# quite frequently, the busybox umount apparently gives up at the
# first failure, so it is necessary to go file system by file
# system. It is necessary to go backward in the /proc list, because
# later things may have been mounted on earlier mounts.
devfs=
unmount() {
local dev mp type opts
if read dev mp type opts
then
# recurse - unmount later items
unmount
# skip /proc and /dev but not the sub-directories
case "$mp" in
/|/proc)return 0;;
/dev) devfs=1
return 0;;
esac
# then unmount this, if possible, otherwise make
# it read-only
umount -f -r "$mp"
fi
}
echo "Unmounting local filesystems..."
unmount </proc/mounts
# now /dev and read-only / (halt/reboot may need /proc!)
test -n "$devfs" && umount -f -r /dev
mount -o remount,ro /