From c6f8f7af207750a5f249d5ead17696b17f033c9e Mon Sep 17 00:00:00 2001 From: Peter Steenbergen Date: Wed, 31 Oct 2018 19:39:32 +0100 Subject: [PATCH 1/3] MycroftOS: Initial start of auto expand filesystem at first boot --- buildroot-external/rootfs-overlay/etc/init.d/S00resizefs_once | 0 buildroot-external/rootfs-overlay/etc/init.d/init_resize.sh | 0 2 files changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 buildroot-external/rootfs-overlay/etc/init.d/S00resizefs_once mode change 100644 => 100755 buildroot-external/rootfs-overlay/etc/init.d/init_resize.sh diff --git a/buildroot-external/rootfs-overlay/etc/init.d/S00resizefs_once b/buildroot-external/rootfs-overlay/etc/init.d/S00resizefs_once old mode 100644 new mode 100755 diff --git a/buildroot-external/rootfs-overlay/etc/init.d/init_resize.sh b/buildroot-external/rootfs-overlay/etc/init.d/init_resize.sh old mode 100644 new mode 100755 From 9f30517a4b7d768d754113f9e96428802cd7d817 Mon Sep 17 00:00:00 2001 From: Peter Steenbergen Date: Sun, 4 Nov 2018 22:37:29 +0100 Subject: [PATCH 2/3] MycroftOS: Buildroot: At first boot expand data partition over the whole SD card. --- .../etc/init.d/S00resize_sdcard | 16 ++++++++++ .../etc/init.d/S00resizefs_once | 23 -------------- .../rootfs-overlay/etc/init.d/init_resize.sh | 31 ------------------- 3 files changed, 16 insertions(+), 54 deletions(-) create mode 100755 buildroot-external/rootfs-overlay/etc/init.d/S00resize_sdcard delete mode 100755 buildroot-external/rootfs-overlay/etc/init.d/S00resizefs_once delete mode 100755 buildroot-external/rootfs-overlay/etc/init.d/init_resize.sh diff --git a/buildroot-external/rootfs-overlay/etc/init.d/S00resize_sdcard b/buildroot-external/rootfs-overlay/etc/init.d/S00resize_sdcard new file mode 100755 index 00000000..1079c75f --- /dev/null +++ b/buildroot-external/rootfs-overlay/etc/init.d/S00resize_sdcard @@ -0,0 +1,16 @@ +#!/bin/bash +set -e + +echo "Resize data partition ..." +parted /dev/mmcblk0 unit % resizepart 2 yes 100% +echo "Resize partition done" + +partprobe /dev/mmcblk0 +sync + +echo "Resize data filesystem ..." +resize2fs /dev/mmcblk0p2 +echo "Resize filesystem done" + +chmod -x /etc/init.d/S00resize_sdcard + diff --git a/buildroot-external/rootfs-overlay/etc/init.d/S00resizefs_once b/buildroot-external/rootfs-overlay/etc/init.d/S00resizefs_once deleted file mode 100755 index 39cc5fb4..00000000 --- a/buildroot-external/rootfs-overlay/etc/init.d/S00resizefs_once +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh -# -# Auto resize root partition at first boot after init_resize -# - -start() { - printf "Starting resize2fs_once: " - ROOT_DEV=$(findmnt / -o source -n) && - resize2fs $ROOT_DEV && - rm /etc/init.d/S00resizefs_once && - echo "OK" -} - -case "$1" in - start) - start - ;; - *) - echo "Usage: $0 {start}" - exit 1 -esac - -exit $? diff --git a/buildroot-external/rootfs-overlay/etc/init.d/init_resize.sh b/buildroot-external/rootfs-overlay/etc/init.d/init_resize.sh deleted file mode 100755 index e792e123..00000000 --- a/buildroot-external/rootfs-overlay/etc/init.d/init_resize.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash -set -e - -mount -t proc proc /proc -mount -t sysfs sys /sys -mount -t tmpfs tmp /run - -mount /boot -mount / -o remount,rw - -sed -i 's| init=/etc/init.d/init_resize.sh||' /boot/cmdline.txt -sync - -DEVICE="/dev/mmcblk0" -PARTNR="p2" - -CURRENTSIZEB=`fdisk -l $DEVICE$PARTNR | grep "Disk $DEVICE$PARTNR" | cut -d' ' -f5` -CURRENTSIZE=`expr $CURRENTSIZEB / 1024 / 1024` -MAXSIZEMB=`printf %s\\n 'unit MB print list' | parted | grep "Disk ${DEVICE}" | cut -d' ' -f3 | tr -d MB` - -echo "[ok] applying resize operation.." -parted ${DEVICE} resizepart ${PARTNR} ${MAXSIZEMB} -echo "[done]" - -partprobe $DEVICE - -umount /boot -mount / -o remount,ro -sync - -reboot From aaf99dfc36c753429ef1e4b629a141659d5dd2fa Mon Sep 17 00:00:00 2001 From: Peter Steenbergen Date: Tue, 6 Nov 2018 09:02:54 +0100 Subject: [PATCH 3/3] MycroftOS: Buildroot: Change script to startup script - Script worked manually on the CLI so converting it to init.d script. --- .../etc/init.d/S00resize_sdcard | 35 ++++++++++++------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/buildroot-external/rootfs-overlay/etc/init.d/S00resize_sdcard b/buildroot-external/rootfs-overlay/etc/init.d/S00resize_sdcard index 1079c75f..085e5be6 100755 --- a/buildroot-external/rootfs-overlay/etc/init.d/S00resize_sdcard +++ b/buildroot-external/rootfs-overlay/etc/init.d/S00resize_sdcard @@ -1,16 +1,25 @@ -#!/bin/bash -set -e +#!/bin/sh +# +# Resize SD card +# -echo "Resize data partition ..." -parted /dev/mmcblk0 unit % resizepart 2 yes 100% -echo "Resize partition done" +start() { + printf "Resize data partition ..." + parted /dev/mmcblk0 unit % resizepart 2 yes 100% && + partprobe /dev/mmcblk0 && + sync && + resize2fs /dev/mmcblk0p2 && + chmod -x /etc/init.d/S00resize_sdcard && + echo "[OK]" +} -partprobe /dev/mmcblk0 -sync - -echo "Resize data filesystem ..." -resize2fs /dev/mmcblk0p2 -echo "Resize filesystem done" - -chmod -x /etc/init.d/S00resize_sdcard +case "$1" in + start) + start + ;; + *) + echo "Usage: $0 {start}" + exit 1 +esac +exit $?