Files
poky/meta/files/overlayfs-etc-preinit.sh.in
Claudius Heine 6dd32f4a3b files: overlayfs-etc: add overlay mount options to preinit
Overlayfs-etc is useful if the rootfs is read-only. One reason to have
the rootfs read-only is to allow image based updating.

Image based updating will change the underlying root file system, which
is unsupported by overlayfs when with some mount options [1].

This disables those options.

[1] https://www.kernel.org/doc/html/latest/filesystems/overlayfs.html?highlight=overlayfs#changes-to-underlying-filesystems

(From OE-Core rev: 13a057d6ffc3110f891224d7af9455b53581e8a8)

Signed-off-by: Claudius Heine <ch@denx.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-03-11 06:56:02 +00:00

38 lines
1.0 KiB
Bash

#!/bin/sh
echo "PREINIT: Start"
PATH=/sbin:/bin:/usr/sbin:/usr/bin
mount -o remount,rw /
mkdir -p /proc
mkdir -p /sys
mkdir -p /run
mkdir -p /var/run
mount -t proc proc /proc
mount -t sysfs sysfs /sys
[ -z "$CONSOLE" ] && CONSOLE="/dev/console"
mkdir -p {OVERLAYFS_ETC_MOUNT_POINT}
if mount -n -t {OVERLAYFS_ETC_FSTYPE} \
-o {OVERLAYFS_ETC_MOUNT_OPTIONS} \
{OVERLAYFS_ETC_DEVICE} {OVERLAYFS_ETC_MOUNT_POINT}
then
mkdir -p {OVERLAYFS_ETC_MOUNT_POINT}/overlay-etc/upper
mkdir -p {OVERLAYFS_ETC_MOUNT_POINT}/overlay-etc/work
mount -n -t overlay \
-o upperdir={OVERLAYFS_ETC_MOUNT_POINT}/overlay-etc/upper \
-o lowerdir=/etc \
-o workdir={OVERLAYFS_ETC_MOUNT_POINT}/overlay-etc/work \
-o index=off,xino=off,redirect_dir=off,metacopy=off \
{OVERLAYFS_ETC_MOUNT_POINT}/overlay-etc/upper /etc || \
echo "PREINIT: Mounting etc-overlay failed!"
else
echo "PREINIT: Mounting </data> failed!"
fi
echo "PREINIT: done; starting </sbin/init>"
exec {SBIN_INIT_NAME}