Backup Everything - vanaware/openwrt GitHub Wiki

Back whole system example

opkg update
opkg install tar
cd /
tar -cvpzf /mnt/data/rootfs.tar.gz --exclude=/mnt/data/rootfs.tar.gz --one-file-system / 
tar -cvpzf /mnt/data/overlay.tar.gz --exclude=/mnt/data/overlay.tar.gz --one-file-system /overlay-boot/ 

# if not full tar package just busybox tar
cat <<EOT >> /tmp/exclude.list
sys
tmp
overlay-boot
dev
rom
var
mnt
proc
EOT
tar -cvpz -X /tmp/exclude.list -f /tmp/rootfs.tar.gz /

tar -cvpz -f /tmp/overlay.tar.gz /overlay/

Move files one by one example

opkg update
opkg install findutils-xargs --force-overwrite
cd /mnt/data/
find media/ -name '*' -print0 | xargs -0 -I% ash -c 'if [ -d "%" ]; then mkdir "./data/%"; else mv "%" "./data/%";fi'

find media/ -type f -name '*' -print

Copy rootfs to extroot

mkdir -p /tmp/extroot/
#mount -t ext4 /dev/sda1 /tmp/extroot
mount -t btrfs -o subvol=rootfs /dev/sdb /tmp/extroot
mkdir -p /tmp/introot
mount --bind / /tmp/introot
tar -C /tmp/introot -cvf - . | tar -C /tmp/extroot -xf -
umount /tmp/introot
umount /tmp/extroot

Using rootfs.tar.gz to restore to usb extroot

sudo mount -t f2fs /dev/sdh2 /mnt/usb
#sudo mount -t ext4 /dev/sdh3 /mnt/usb
sudo rm -fr /mnt/usb/*
sudo tar -xvf ~/openwrt/lede-17.01.4-ramips-mt7620-u35wf-rootfs.tar.gz -C /mnt/usb/    
sudo umount /mnt/usb
⚠️ **GitHub.com Fallback** ⚠️