#!/bin/sh set -e dev=$1 newsize=$2 lowsize=$3 #TODO: Get maxsize (from lvm) and oldsize (from fs), and check that... # maxsize >= newsize > oldsize # or # lowsize defined and lowsize < newsize < oldsize #TODO: Check if filesystem supports online resizing, and skip (un)mount umount $dev e2fsck -f $dev [ -n "$lowsize" ] && resize2fs $dev $lowsize lvresize -L $newsize $dev resize2fs $dev mount $dev