#!/bin/sh /etc/rc.common # /etc/init.d/expand-overlay # Stage 2: Resize p3 filesystem, format & mount p4, configure Docker. # Runs at START=98 (before dockerd at 99) so Docker picks up data_root. START=98 boot() { local flag="/etc/resize2fs.done" local p4flag="/etc/data-partition.done" # ---- Stage 2a: Resize p3 filesystem ---- if [ ! -f "$flag" ]; then local i=0 while [ ! -f "/etc/expand-overlay.done" ] && [ $i -lt 30 ]; do sleep 1 i=$((i + 1)) done if [ -f "/etc/expand-overlay.done" ]; then resize2fs /dev/mmcblk2p3 2>/dev/null touch "$flag" fi fi # ---- Stage 2b: Format and mount p4 data partition ---- if [ ! -f "$p4flag" ]; then if dd if=/dev/mmcblk2p4 bs=5 count=1 2>/dev/null | grep -qF "RESET"; then mkfs.ext4 -F -L data /dev/mmcblk2p4 2>/dev/null fi mkdir -p /mnt/data mount /dev/mmcblk2p4 /mnt/data 2>/dev/null mkdir -p /mnt/data/docker uci -q set dockerd.globals.data_root="/mnt/data/docker" uci -q commit dockerd if ! grep -q "mmcblk2p4" /etc/config/fstab 2>/dev/null; then block detect > /dev/null 2>&1 local idx=$(( $(uci show fstab | grep -c "fstab.@mount") - 1 )) [ "$idx" -ge 0 ] && uci -q set fstab.@mount[$idx].target="/mnt/data" uci -q commit fstab fi touch "$p4flag" fi return 0 }