summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChen Qi <Qi.Chen@windriver.com>2013-08-26 14:43:54 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-08-26 13:19:24 +0100
commit1565a0c5a3f245703e280ca90cf11d3f9374788a (patch)
treefb5b98baa204507f3a9daaa7e6258419bed781b7
parent10722a37bb7efa563425a7389100b9322d96492e (diff)
downloadopenembedded-core-1565a0c5a3f245703e280ca90cf11d3f9374788a.tar.gz
openembedded-core-1565a0c5a3f245703e280ca90cf11d3f9374788a.tar.bz2
openembedded-core-1565a0c5a3f245703e280ca90cf11d3f9374788a.zip
checkroot.sh: check for conflicting configurations
In our current boot scripts, two ways are used to determine whether the rootfs is read-only or not. One by checking the READ_ONLY_ROOTFS value in /etc/default/rcS, the other by checking the /etc/fstab entry. >From a normal Linux user's point of view, the way of checking the /etc/fstab entry is preferred. However, as there are several boot scripts that need to know whether rootfs is read-only or not, checking /etc/fstab in each script brings too much overhead. Thus, these boot scripts use the READ_ONLY_ROOTFS value in /etc/default/rcS. In normal use cases, there would be no problem, as both /etc/default/rcS and the /etc/fstab are modified at rootfs time. However, if the user changes the mount option for rootfs in /etc/fstab to read-write, and he/she forgets to change the value in /etc/default/rcS, there would be unexpected results. For example, the udev-cache would still be disabled. So at a minimal, a check for conflicting configurations between /etc/fstab and /etc/default/rcS should be added in checkroot.sh so that there would be reasonable warnings if users have configured the system in a non-consistent way. [YOCTO #4880] Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rwxr-xr-xmeta/recipes-core/initscripts/initscripts-1.0/checkroot.sh10
1 files changed, 10 insertions, 0 deletions
diff --git a/meta/recipes-core/initscripts/initscripts-1.0/checkroot.sh b/meta/recipes-core/initscripts/initscripts-1.0/checkroot.sh
index cf84cfac5c..dfee2afaad 100755
--- a/meta/recipes-core/initscripts/initscripts-1.0/checkroot.sh
+++ b/meta/recipes-core/initscripts/initscripts-1.0/checkroot.sh
@@ -54,6 +54,16 @@ do
done
exec 0>&9 9>&-
+# Check for conflicting configurations
+if [ "$rootmode" = "ro" -a "$ROOTFS_READ_ONLY" = "no" ] || \
+ [ "$rootmode" = "rw" -a "$ROOTFS_READ_ONLY" = "yes" ]; then
+ echo ""
+ echo "WARN: conflicting configurations in /etc/fstab and /etc/default/rcS"
+ echo " regarding the writability of rootfs. Please fix one of them."
+ echo ""
+fi
+
+
#
# Activate the swap device(s) in /etc/fstab. This needs to be done
# before fsck, since fsck can be quite memory-hungry.