home: hub: mkinitfs

Download patch

ref: af4168c70ec5fc1982c83dc22d75de2ba6aa30d8
parent: 2ec7750ef7d4c6a443b0fb04b1627efabb9d7c03
author: Timo Teräs <timo.teras@iki.fi>
date: Sat Feb 7 16:21:32 CST 2015

support for tmpfs overlay over root

useful if wanting to optimize boot time, and do device updates
via read-only system image. package management is not too useful
in these situations.

--- a/features.d/base.modules
+++ b/features.d/base.modules
@@ -1,1 +1,2 @@
 kernel/drivers/block/loop.ko
+kernel/fs/overlayfs
--- a/initramfs-init.in
+++ b/initramfs-init.in
@@ -387,7 +387,8 @@
 
 myopts="alpine_dev autodetect autoraid chart cryptroot cryptdm debug_init
 	dma init_args keep_apk_new modules ovl_dev pkgs quiet root_size root
-	usbdelay ip alpine_repo apkovl alpine_start splash blacklist"
+	usbdelay ip alpine_repo apkovl alpine_start splash blacklist
+	overlaytmpfs"
 
 for opt; do
 	case "$opt" in
@@ -544,7 +545,16 @@
 		start_$i
 	done
 	ebegin "Mounting root"
-	retry_mount -o ro $KOPT_root $sysroot 2>/dev/null
+	if [ "$KOPT_overlaytmpfs" = "yes" ]; then
+		mkdir -p /media/root-ro /media/root-rw $sysroot/media/root-ro $sysroot/media/root-rw
+		retry_mount -o ro $KOPT_root /media/root-ro 2>/dev/null
+		mount -t tmpfs root-tmpfs /media/root-rw
+		mkdir -p /media/root-rw/work /media/root-rw/root
+		mount -t overlay -o lowerdir=/media/root-ro,upperdir=/media/root-rw/root,workdir=/media/root-rw/work overlayfs $sysroot
+	else
+		retry_mount -o ro $KOPT_root $sysroot 2>/dev/null
+	fi
+
 	eend $?
 	cat /proc/mounts | while read DEV DIR TYPE OPTS ; do
 		if [ "$DIR" != "/" -a "$DIR" != "$sysroot" -a -d "$DIR" ]; then