#!/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin NAME=overlay_syncd DESC="overlay sync" # Possible problem with overlayfs: # when using overlays deleting existing in the lower layer dirs can cause error (hopefully it gets fixed someday): # example: # * /mnt/sda1 exists in lower layer: /tmp/rootfs.ro/tmp # * upper layer is mounted to / # # rmdir /mnt/sda1 # # mkdir /mnt/sda1 # mkdir: cannot create directory '/mnt/sda1': Operation not supported sync_files () { rsync -av --exclude=mnt --exclude=tmp --exclude=dev --exclude=var --exclude=run /tmp/rootfs.rw/upperdir/ /tmp/rootfs.ro/ } case "$1" in start) echo -n "Starting $DESC: " echo "$NAME:" ;; stop) echo -n "Stopping $DESC: " echo "$NAME." if [ -f /tmp/overlay_sync ]; then if [ -d /tmp/rootfs.ro ]; then sync_files fi fi ;; restart) echo -n "Restarting $DESC: " echo "$NAME." ;; status) echo -n "$NAME status:" if [ -f /var/run/$NAME ]; then echo -n "Running" else echo -n "Not running" fi ;; sync) if [ -f /tmp/overlay_sync ]; then if [ -d /tmp/rootfs.ro ]; then sync_files fi fi ;; *) N=/etc/init.d/$NAME echo "Usage: $N {start|stop|restart|status|sync}" >&2 exit 1 ;; esac exit 0