#! /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