You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.1 KiB
48 lines
1.1 KiB
4 years ago
|
#!/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
|
||
|
|
||
|
# Sleep give epg time to save
|
||
|
sleep 5
|
||
|
|
||
|
# 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.
|
||
|
unmount() {
|
||
|
local dev mp type opts
|
||
|
if read dev mp type opts
|
||
|
then
|
||
|
# recurse - unmount later items
|
||
|
unmount
|
||
|
# skip / and needed virtual filesystems
|
||
|
case "$mp" in
|
||
|
/|/dev|/proc|/sys) 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
|
||
|
|
||
|
mount -o remount,ro /
|
||
|
|
||
|
# sync to flush pending writes for loop-mounted file system.
|
||
|
sync
|
||
|
|
||
|
echo "umountfs Good Bye..."
|
||
|
exit 0
|