From 8944472dc440891bf7388889aeb06fca9a38b3f6 Mon Sep 17 00:00:00 2001
From: guowenxue <guowenxue@gmail.com>
Date: Mon, 27 Dec 2021 23:23:30 +0800
Subject: [PATCH] Add expand_rootfs

---
 bsp/rootfs/files/expand_rootfs |   31 +++++++++++++++++++++++++++++++
 bsp/rootfs/build.sh            |   11 +++++++++++
 2 files changed, 42 insertions(+), 0 deletions(-)

diff --git a/bsp/rootfs/build.sh b/bsp/rootfs/build.sh
index 95a1814..625580d 100755
--- a/bsp/rootfs/build.sh
+++ b/bsp/rootfs/build.sh
@@ -171,6 +171,14 @@
     fi
 }
 
+function do_common()
+{
+    if [ -s ${PATCH_PATH}/expand_rootfs ] ; then
+        cp ${PATCH_PATH}/expand_rootfs ${ROOTFS_DIR}/usr/sbin/
+        chmod a+x ${ROOTFS_DIR}/usr/sbin/expand_rootfs
+    fi
+}
+
 function do_buildroot()
 {
     if [ $ROOTFS != "buildroot" ] ; then
@@ -204,6 +212,9 @@
     # modify for buildroot rootfs
     do_buildroot
 
+    # modify for all rootfs
+    do_common
+
     # update hostnmae and issue
     echo "Welcome to LingYun IoT Gateway Kit Board GNU/Linux $ROOTFS system, default password '$DEF_PASSWD'." > ${ROOTFS_DIR}/etc/issue
     echo $DEF_HOSTNAME > ${ROOTFS_DIR}/etc/hostname
diff --git a/bsp/rootfs/files/expand_rootfs b/bsp/rootfs/files/expand_rootfs
new file mode 100755
index 0000000..1a9da07
--- /dev/null
+++ b/bsp/rootfs/files/expand_rootfs
@@ -0,0 +1,31 @@
+#!/bin/sh
+
+set -e
+set -u
+
+# find the root partition information
+ROOT_PART="$(mount | sed -n 's|^/dev/\(.*\) on / .*|\1|p')"
+ROOT_DEV="/dev/$(lsblk -no pkname /dev/${ROOT_PART})"
+PART_DEV="$(lsblk ${ROOT_DEV} | grep -w "\/" | grep mmcblk | awk '{print $1}' | cut -d- -f2)"
+PART_NUM="$(echo ${PART_DEV} | cut -dp -f2)"
+
+# Get the starting offset of the root partition
+PART_START=$(fdisk -l $ROOT_DEV | grep $PART_DEV | awk '{print $2}')
+[ "$PART_START" ] || return 1 ;
+
+fdisk "$ROOT_DEV" > /dev/null 2>&1 <<EOF
+p
+d
+$PART_NUM
+n
+p
+$PART_NUM
+$PART_START
+
+p
+w
+EOF
+
+resize2fs /dev/$ROOT_PART > /dev/null 2>&1 
+
+echo "Expand rootfs size successfully, it will be enlarged upon the next reboot."

--
Gitblit v1.9.1