diff options
Diffstat (limited to 'mk/rootfs/openrc/etc/init.d/root')
-rw-r--r-- | mk/rootfs/openrc/etc/init.d/root | 42 |
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 +} |