diff --git a/roles/1-prep/templates/iiab-rpi-max-rootfs.sh b/roles/1-prep/templates/iiab-rpi-max-rootfs.sh index aa221bcf0..8405727b4 100644 --- a/roles/1-prep/templates/iiab-rpi-max-rootfs.sh +++ b/roles/1-prep/templates/iiab-rpi-max-rootfs.sh @@ -1,6 +1,6 @@ #!/bin/bash -x -# Resize rootfs and its partition on the rpi SD card (or external USB +# Resize rootfs and its partition on the RPi SD card (or external USB # disk if possible, e.g. with Raspberry Pi OS) to maximum size. # To be used by /etc/systemd/system/iiab-rpi-root-resize.service on boot. @@ -13,15 +13,24 @@ if [ -f /.resize-rootfs ]; then if [ -x /usr/bin/raspi-config ]; then # 2022-02-17: Works in many more situations, e.g. with USB disks (not # just microSD cards). IF ONLY THIS ALSO WORKED ON Ubuntu/Mint/etc ! + + # Uses do_expand_rootfs() from: + # https://github.com/RPi-Distro/raspi-config/blob/master/raspi-config raspi-config --expand-rootfs else - # Assumes sd card style partition name like p - # Only works on F22 + where resizepart command exists + # ASSUMES SD CARD STYLE PARTITION NAME LIKE p + # e.g. /dev/mmcblk0p2 mounts at / (typical RasPiOS microSD) + # BUT /dev/sda2 mounts at /media/usb1 (RasPiOS USB boot disk... + # ...WON'T WORK BELOW; recap @ PR #3121) # Calculate root partition - root_part=`lsblk -aP -o NAME,MOUNTPOINT | grep 'MOUNTPOINT="/"' | awk -F\" '{ print $2 }'` - root_dev=${root_part:0:-2} - root_part_no=${root_part: (-1)} + root_part=`lsblk -aP -o NAME,MOUNTPOINT | grep 'MOUNTPOINT="/"' | awk -F\" '{ print $2 }'` # e.g. mmcblk0p2 + root_dev=${root_part:0:-2} # e.g. mmcblk0 + # bash substring expansion: "negative offset [below, but not above] + # must be separated from the colon by at least one space to avoid + # being confused with the ‘:-’ expansion" + # https://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html + root_part_no=${root_part: -1} # e.g. 2 # Resize partition growpart /dev/$root_dev $root_part_no