Adopt the solution for resizing root from openwrt expand_root guide

Closes: #37
This commit is contained in:
Lee Miller 2023-12-05 04:02:57 +02:00
parent 163a547051
commit e107bcbe92
Signed by: lee.miller
GPG Key ID: 4F97A5EA88F4AB63
4 changed files with 49 additions and 0 deletions

View File

@ -118,6 +118,7 @@ chmod 0400 files/etc/dropbear/authorized_keys
mkdir -p files/etc/docker
chmod 0750 files/etc/docker
cp ${pwd}/daemon.json files/etc/docker
cp ${pwd}/sysupgrade.conf files/etc
mkdir -p files/etc/uci-defaults
cp ${pwd}/defaults/* files/etc/uci-defaults

20
defaults/70-rootpt-resize Normal file
View File

@ -0,0 +1,20 @@
# Copied from https://openwrt.org/docs/guide-user/advanced/expand_root
if [ ! -e /etc/rootpt-resize ] \
&& type parted > /dev/null \
&& lock -n /var/lock/root-resize
then
ROOT_BLK="$(readlink -f /sys/dev/block/"$(awk -e \
'$9=="/dev/root"{print $3}' /proc/self/mountinfo)")"
ROOT_DISK="/dev/$(basename "${ROOT_BLK%/*}")"
ROOT_PART="${ROOT_BLK##*[^0-9]}"
parted -l ---pretend-input-tty << EOI
ok
fix
EOI
parted -s "${ROOT_DISK}" resizepart "${ROOT_PART}" 100%
mount_root done
touch /etc/rootpt-resize
reboot
fi
exit 1

23
defaults/80-rootfs-resize Normal file
View File

@ -0,0 +1,23 @@
# Copied from https://openwrt.org/docs/guide-user/advanced/expand_root
# Updated for f2fs using
# https://github.com/anaelorlinski/OpenWrt-NanoPi-R2S-R4S-Builds/blob/main/docs/resize-f2fs.md
if [ ! -e /etc/rootfs-resize ] \
&& [ -e /etc/rootpt-resize ] \
&& type losetup > /dev/null \
&& type resize.f2fs > /dev/null \
&& lock -n /var/lock/root-resize
then
LOOP="$(losetup -n -O NAME | sort | sed -n -e "1p")"
ROOT="$(losetup -n -O BACK-FILE ${LOOP} | sed -e "s|^|/dev|")"
OFFS="$(losetup -n -O OFFSET ${LOOP})"
LOOP="$(losetup -f)"
losetup -o ${OFFS} ${LOOP} ${ROOT}
fsck.f2fs -f ${LOOP}
mount ${LOOP} /mnt
touch /mnt/upper/etc/rootfs-resize
umount ${LOOP}
resize.f2fs ${LOOP}
reboot
fi
exit 1

5
sysupgrade.conf Normal file
View File

@ -0,0 +1,5 @@
## This file contains files and directories that should
## be preserved during an upgrade.
/etc/uci-defaults/70-rootpt-resize
/etc/uci-defaults/80-rootfs-resize