summaryrefslogtreecommitdiff
path: root/mk/rootfs/openrc/etc/init.d/root
diff options
context:
space:
mode:
Diffstat (limited to 'mk/rootfs/openrc/etc/init.d/root')
-rw-r--r--mk/rootfs/openrc/etc/init.d/root42
1 files changed, 42 insertions, 0 deletions
diff --git a/mk/rootfs/openrc/etc/init.d/root b/mk/rootfs/openrc/etc/init.d/root
new file mode 100644
index 0000000..973ef1d
--- /dev/null
+++ b/mk/rootfs/openrc/etc/init.d/root
@@ -0,0 +1,42 @@
+#!/sbin/openrc-run
+# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
+# Released under the 2-clause BSD license.
+
+description="Mount the root fs read/write"
+
+start()
+{
+ case ",$(fstabinfo -o /)," in
+ *,ro,*)
+ ;;
+ *)
+ # Check if the rootfs isn't already writable.
+ if ! checkpath -W /; then
+ ebegin "Remounting root filesystem read/write"
+ case "$RC_UNAME" in
+ Linux)
+ mount -n -o remount,rw /
+ ;;
+ *)
+ mount -u -o rw /
+ ;;
+ esac
+ eend $? "Root filesystem could not be mounted read/write"
+ fi
+ ;;
+ esac
+
+ ebegin "Remounting filesystems"
+ local mountpoint
+ for mountpoint in $(fstabinfo); do
+ case "${mountpoint}" in
+ /)
+ ;;
+ /*)
+ mountinfo -q "${mountpoint}" && \
+ fstabinfo --remount "${mountpoint}"
+ ;;
+ esac
+ done
+ eend 0
+}