diff --git a/pishrink.sh b/pishrink.sh old mode 100755 new mode 100644 index ba291f0..d52c8e8 --- a/pishrink.sh +++ b/pishrink.sh @@ -84,77 +84,26 @@ function set_autoexpand() { return fi - if [[ -f "$mountdir/etc/rc.local" ]] && [[ "$(md5sum "$mountdir/etc/rc.local" | cut -d ' ' -f 1)" != "1c579c7d5b4292fd948399b6ece39009" ]]; then - echo "Creating new /etc/rc.local" - if [ -f "$mountdir/etc/rc.local" ]; then - mv "$mountdir/etc/rc.local" "$mountdir/etc/rc.local.bak" - fi - - #####Do not touch the following lines##### -cat <<\EOF1 > "$mountdir/etc/rc.local" -#!/bin/bash -do_expand_rootfs() { - ROOT_PART=$(mount | sed -n 's|^/dev/\(.*\) on / .*|\1|p') - - PART_NUM=${ROOT_PART#mmcblk0p} - if [ "$PART_NUM" = "$ROOT_PART" ]; then - echo "$ROOT_PART is not an SD card. Don't know how to expand" - return 0 - fi - - # Get the starting offset of the root partition - PART_START=$(parted /dev/mmcblk0 -ms unit s p | grep "^${PART_NUM}" | cut -f 2 -d: | sed 's/[^0-9]//g') - [ "$PART_START" ] || return 1 - # Return value will likely be error for fdisk as it fails to reload the - # partition table because the root fs is mounted - fdisk /dev/mmcblk0 < /etc/rc.local && + cat < "$mountdir/etc/init.d/expand-rootfs" && #!/bin/sh -echo "Expanding /dev/$ROOT_PART" -resize2fs /dev/$ROOT_PART -rm -f /etc/rc.local; cp -f /etc/rc.local.bak /etc/rc.local; /etc/rc.local - -EOF -reboot -exit -} -raspi_config_expand() { +### BEGIN INIT INFO +# Provides: expand-rootfs +# Required-Start: +# Required-Stop: +# Default-Start: 3 +# Default-Stop: +# Short-Description: Expands the root filesystem to fill device size +# Description: +### END INIT INFO /usr/bin/env raspi-config --expand-rootfs -if [[ $? != 0 ]]; then - return -1 -else - rm -f /etc/rc.local; cp -f /etc/rc.local.bak /etc/rc.local; /etc/rc.local - reboot - exit -fi -} -raspi_config_expand -echo "WARNING: Using backup expand..." -sleep 5 -do_expand_rootfs -echo "ERROR: Expanding failed..." -sleep 5 -if [[ -f /etc/rc.local.bak ]]; then - cp -f /etc/rc.local.bak /etc/rc.local - /etc/rc.local -fi +update-rc.d expand-rootfs remove +rm /etc/init.d/expand-rootfs +reboot exit 0 -EOF1 - #####End no touch zone##### - chmod +x "$mountdir/etc/rc.local" - fi +EOF + + chmod +x "$mountdir/etc/init.d/expand-rootfs" + ln -s "../init.d/expand-rootfs" "$mountdir/etc/rc3.d/S01expand-rootfs" # Equivalent to update-rc.d expand-rootfs defaults umount "$mountdir" }