summaryrefslogtreecommitdiff
path: root/beagle/debian-rfs/etc/init.d/umountroot
diff options
context:
space:
mode:
Diffstat (limited to 'beagle/debian-rfs/etc/init.d/umountroot')
-rwxr-xr-xbeagle/debian-rfs/etc/init.d/umountroot57
1 files changed, 57 insertions, 0 deletions
diff --git a/beagle/debian-rfs/etc/init.d/umountroot b/beagle/debian-rfs/etc/init.d/umountroot
new file mode 100755
index 0000000..51c4eb8
--- /dev/null
+++ b/beagle/debian-rfs/etc/init.d/umountroot
@@ -0,0 +1,57 @@
+#! /bin/sh
+### BEGIN INIT INFO
+# Provides: umountroot
+# Required-Start:
+# Required-Stop:
+# Should-Stop: halt reboot kexec
+# Default-Start:
+# Default-Stop: 0 6
+# Short-Description: Mount the root filesystem read-only.
+### END INIT INFO
+
+PATH=/sbin:/bin
+. /lib/init/vars.sh
+
+. /lib/lsb/init-functions
+
+do_stop () {
+ [ "$VERBOSE" = no ] || log_action_begin_msg "Mounting root filesystem read-only"
+ # These directories must exist on the root filesystem as they are
+ # targets for system mountpoints. We've just unmounted all other
+ # filesystems, so either they are mounted now (in which case the
+ # mount point exists) or we can make the mountpoint.
+ for dir in /proc /sys /var/run /var/lock; do
+ mkdir -p $dir || true
+ done
+
+ MOUNT_FORCE_OPT=
+ [ "$(uname -s)" = "GNU/kFreeBSD" ] && MOUNT_FORCE_OPT=-f
+ # This:
+ # mount -n -o remount,ro /
+ # will act on a bind mount of / if there is one.
+ # See #339023 and the comment in checkroot.sh
+ mount $MOUNT_FORCE_OPT -n -o remount,ro -t dummytype dummydev / 2>/dev/null \
+ || mount $MOUNT_FORCE_OPT -n -o remount,ro dummydev / 2>/dev/null \
+ || mount $MOUNT_FORCE_OPT -n -o remount,ro /
+ ES=$?
+ [ "$VERBOSE" = no ] || log_action_end_msg $ES
+}
+
+case "$1" in
+ start)
+ # No-op
+ ;;
+ restart|reload|force-reload)
+ echo "Error: argument '$1' not supported" >&2
+ exit 3
+ ;;
+ stop)
+ do_stop
+ ;;
+ *)
+ echo "Usage: $0 start|stop" >&2
+ exit 3
+ ;;
+esac
+
+: