summaryrefslogtreecommitdiffstats
path: root/modules.d/90dmsquash-live/apply-live-updates.sh
diff options
context:
space:
mode:
Diffstat (limited to 'modules.d/90dmsquash-live/apply-live-updates.sh')
-rwxr-xr-xmodules.d/90dmsquash-live/apply-live-updates.sh22
1 files changed, 22 insertions, 0 deletions
diff --git a/modules.d/90dmsquash-live/apply-live-updates.sh b/modules.d/90dmsquash-live/apply-live-updates.sh
new file mode 100755
index 0000000..a5a5a39
--- /dev/null
+++ b/modules.d/90dmsquash-live/apply-live-updates.sh
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+if [ -h /dev/root ] && [ -d /run/initramfs/live/updates -o -d /updates ]; then
+ info "Applying updates to live image..."
+ mount -o bind /run "$NEWROOT"/run
+ # avoid overwriting symlinks (e.g. /lib -> /usr/lib) with directories
+ for d in /updates /run/initramfs/live/updates; do
+ [ -d "$d" ] || continue
+ (
+ cd "$d" || return 0
+ find . -depth -type d -exec mkdir -p "$NEWROOT/{}" \;
+ find . -depth \! -type d -exec cp -a "{}" "$NEWROOT/{}" \;
+ )
+ done
+ umount "$NEWROOT"/run
+fi
+# release resources on iso-scan boots with rd.live.ram
+if [ -d /run/initramfs/isoscan ] \
+ && [ -f /run/initramfs/squashed.img -o -f /run/initramfs/rootfs.img ]; then
+ umount --detach-loop /run/initramfs/live
+ umount /run/initramfs/isoscan
+fi