aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic
diff options
context:
space:
mode:
authorDaniel Golle <daniel@makrotopia.org>2020-11-27 01:00:31 +0100
committerDaniel Golle <daniel@makrotopia.org>2020-11-27 01:23:43 +0000
commit7fd3c68137ee0fa4c9f5e7b6f993bd09005f7964 (patch)
treed5f6361d6c90b2c766f6c74f26ce23d825d2f3e8 /target/linux/generic
parent8a87ab43d190622a1b8b64af6fd812dd33a329d4 (diff)
downloadupstream-7fd3c68137ee0fa4c9f5e7b6f993bd09005f7964.tar.gz
upstream-7fd3c68137ee0fa4c9f5e7b6f993bd09005f7964.tar.bz2
upstream-7fd3c68137ee0fa4c9f5e7b6f993bd09005f7964.zip
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@hauke-m.de> Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Diffstat (limited to 'target/linux/generic')
-rwxr-xr-xtarget/linux/generic/other-files/init12
1 files changed, 11 insertions, 1 deletions
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