From: "bar...@tkos.co.il" <bar...@tkos.co.il> The 'preinit' script can't create mount directories when rootfs is read-only. Add an option to skip this step. The user must make sure that all required directories are already in the rootfs directory layout.
Cc: Vyacheslav Yurkov <uvv.m...@gmail.com> Signed-off-by: Baruch Siach <bar...@tkos.co.il> Signed-off-by: Alexandre Belloni <alexandre.bell...@bootlin.com> (cherry picked from commit 3d433d8559467d255bd19af2d0999c65ea24a48d) Signed-off-by: Steve Sakoman <st...@sakoman.com> --- meta/classes/overlayfs-etc.bbclass | 5 ++++- meta/files/overlayfs-etc-preinit.sh.in | 16 +++++++++------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/meta/classes/overlayfs-etc.bbclass b/meta/classes/overlayfs-etc.bbclass index 40116e4c6e..7096aae1a8 100644 --- a/meta/classes/overlayfs-etc.bbclass +++ b/meta/classes/overlayfs-etc.bbclass @@ -35,6 +35,7 @@ OVERLAYFS_ETC_USE_ORIG_INIT_NAME ??= "1" OVERLAYFS_ETC_MOUNT_OPTIONS ??= "defaults" OVERLAYFS_ETC_INIT_TEMPLATE ??= "${COREBASE}/meta/files/overlayfs-etc-preinit.sh.in" OVERLAYFS_ETC_EXPOSE_LOWER ??= "0" +OVERLAYFS_ETC_CREATE_MOUNT_DIRS ??= "1" python create_overlayfs_etc_preinit() { overlayEtcMountPoint = d.getVar("OVERLAYFS_ETC_MOUNT_POINT") @@ -56,6 +57,7 @@ python create_overlayfs_etc_preinit() { initBaseName = oe.path.join(d.getVar("base_sbindir"), "init") origInitNameSuffix = ".orig" exposeLower = oe.types.boolean(d.getVar('OVERLAYFS_ETC_EXPOSE_LOWER')) + createMoundDirs = oe.types.boolean(d.getVar('OVERLAYFS_ETC_CREATE_MOUNT_DIRS')) args = { 'OVERLAYFS_ETC_MOUNT_POINT': overlayEtcMountPoint, @@ -63,7 +65,8 @@ python create_overlayfs_etc_preinit() { 'OVERLAYFS_ETC_FSTYPE': overlayEtcFsType, 'OVERLAYFS_ETC_DEVICE': overlayEtcDevice, 'SBIN_INIT_NAME': initBaseName + origInitNameSuffix if useOrigInit else initBaseName, - 'OVERLAYFS_ETC_EXPOSE_LOWER': "true" if exposeLower else "false" + 'OVERLAYFS_ETC_EXPOSE_LOWER': "true" if exposeLower else "false", + 'CREATE_MOUNT_DIRS': "true" if createMoundDirs else "false" } if useOrigInit: diff --git a/meta/files/overlayfs-etc-preinit.sh.in b/meta/files/overlayfs-etc-preinit.sh.in index 8db076f4ba..b05e3957a3 100644 --- a/meta/files/overlayfs-etc-preinit.sh.in +++ b/meta/files/overlayfs-etc-preinit.sh.in @@ -3,12 +3,15 @@ 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 +if {CREATE_MOUNT_DIRS}; then + mount -o remount,rw / + + mkdir -p /proc + mkdir -p /sys + mkdir -p /run + mkdir -p /var/run + mkdir -p {OVERLAYFS_ETC_MOUNT_POINT} +fi mount -t proc proc /proc mount -t sysfs sysfs /sys @@ -20,7 +23,6 @@ UPPER_DIR=$BASE_OVERLAY_ETC_DIR/upper WORK_DIR=$BASE_OVERLAY_ETC_DIR/work LOWER_DIR=$BASE_OVERLAY_ETC_DIR/lower -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} -- 2.34.1
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#206520): https://lists.openembedded.org/g/openembedded-core/message/206520 Mute This Topic: https://lists.openembedded.org/mt/109283285/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-