f60d42e901
Without this commit, the root OpenRC service remounts all mounted
filesystems (except /) with the options defined in /etc/fstab via
fstabinfo. It is presently unclear to me why / was excluded from
remounting in 497ff7ee41
and unfortunately
neither the commit nor the associated Bugzilla issue [1] provides
further information on this.
At Alpine, our initramfs does currently not remount / with all options
defined in /etc/fstab [2]. As part of the discussion on the Alpine side
of things we wondered why OpenRC does not remount / since this would be
the easier solution for us. For this reason, this commit changes the
behavior of the OpenRC root services accordingly to also remount / with
the options defined in /etc/fstab.
[1]: https://bugs.gentoo.org/401573
[2]: https://gitlab.alpinelinux.org/alpine/mkinitfs/-/merge_requests/103
This fixes #533.
56 lines
1.3 KiB
Plaintext
56 lines
1.3 KiB
Plaintext
#!@SBINDIR@/openrc-run
|
|
# Copyright (c) 2007-2015 The OpenRC Authors.
|
|
# See the Authors file at the top-level directory of this distribution and
|
|
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
|
|
#
|
|
# This file is part of OpenRC. It is subject to the license terms in
|
|
# the LICENSE file found in the top-level directory of this
|
|
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
|
|
# This file may not be copied, modified, propagated, or distributed
|
|
# except according to the terms contained in the LICENSE file.
|
|
|
|
description="Mount the root fs read/write"
|
|
|
|
depend()
|
|
{
|
|
after clock
|
|
need fsck
|
|
keyword -docker -jail -lxc -openvz -prefix -systemd-nspawn -vserver
|
|
}
|
|
|
|
start()
|
|
{
|
|
case ",$(fstabinfo -o /)," in
|
|
*,ro,*)
|
|
;;
|
|
*)
|
|
# Check if the rootfs isn't already writable.
|
|
if checkpath -W /; then
|
|
rm -f /fastboot /forcefsck
|
|
else
|
|
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"
|
|
if [ $? -eq 0 ]; then
|
|
rm -f /fastboot /forcefsck
|
|
fi
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
ebegin "Remounting filesystems"
|
|
local mountpoint
|
|
for mountpoint in $(fstabinfo); do
|
|
mountinfo -q "${mountpoint}" && \
|
|
fstabinfo --remount "${mountpoint}"
|
|
done
|
|
eend 0
|
|
}
|