/run will get mounted at $NEWROOT/run after switch_root, but it's not
there yet. bind-mount it in place so updates for /run actually land in
/run.
(also: remove a redundant check for existing directories. mkdir -p
doesn't do anything if the directory already exists.)
if [ -b /dev/mapper/live-rw ] && [ -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
(
cd /updates
find . -depth -type d | while read dir; do
- [ -d "$NEWROOT/$dir" ] || mkdir -p "$NEWROOT/$dir"
+ mkdir -p "$NEWROOT/$dir"
done
find . -depth \! -type d | while read file; do
cp -a "$file" "$NEWROOT/$file"
done
)
+ umount $NEWROOT/run
fi