[openwrt/openwrt] initramfs: switch to tmpfs to fix ujail

LEDE Commits lede-commits at lists.infradead.org
Thu Nov 26 20:25:03 EST 2020


dangole pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/7fd3c68137ee0fa4c9f5e7b6f993bd09005f7964

commit 7fd3c68137ee0fa4c9f5e7b6f993bd09005f7964
Author: Daniel Golle <daniel at makrotopia.org>
AuthorDate: Fri Nov 27 01:00:31 2020 +0100

    initramfs: switch to tmpfs to fix ujail
    
    Hauke wrote:
    > We want to run some processes in the procd-ujail, this works when we
    > use a SquashFS image and an overlay file system, but when we use an
    > initramfs it does not work.
    > [...]
    > When we switch from initramfs to tmpfs, it is working, we added this
    > code to target/linux/generic/other-files/init to make [it] work.
    
    Move files to newly mounted tmpfs and then use switch_root to chroot
    into new rootfs and free initramfs.
    
    Suggested-by: Hauke Mehrtens <hauke at hauke-m.de>
    Signed-off-by: Daniel Golle <daniel at makrotopia.org>
---
 target/linux/generic/other-files/init | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/target/linux/generic/other-files/init b/target/linux/generic/other-files/init
index 514be57e66..521655b8c2 100755
--- a/target/linux/generic/other-files/init
+++ b/target/linux/generic/other-files/init
@@ -1,4 +1,14 @@
 #!/bin/sh
 # Copyright (C) 2006 OpenWrt.org
 export INITRAMFS=1
-exec /sbin/init
+
+# switch to tmpfs to allow run daemons in jail on initramfs boot
+DIRS=$(echo *)
+NEW_ROOT=/new_root
+
+mkdir -p $NEW_ROOT
+mount -t tmpfs tmpfs $NEW_ROOT
+
+cp -pr $DIRS $NEW_ROOT
+
+exec switch_root $NEW_ROOT /sbin/init



More information about the lede-commits mailing list