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