#!/bin/bash -x # Create a 2GB disk image dd if=/dev/zero of=foo bs=1M count=1 seek=2000 # Loopback mount the image sudo kpartx -s -v -a foo # Create a partition table and 2GB primary partition w/ext4 sudo parted foo -s -- mklabel msdos sudo parted foo -s -- mkpart primary ext4 2M 2G sudo kpartx -s -v -a /dev/loop0 sudo mkfs -t ext4 /dev/mapper/loop0p1 # Check the partition table sudo sfdisk -l foo # Remove the loop device sudo kpartx -s -v -d foo # Resize the image to 8GB qemu-img resize -f raw foo 8G # Loopback mount the file sudo kpartx -s -v -a foo # Remove the partition table kernel mappings ## THIS APPEARS TO BE BROKEN btwn util-linux 2.28-5ubuntu2 and 2.28.1-1ubuntu1 sudo kpartx -s -v -d /dev/loop0 #sudo losetup -d /dev/loop0 #losetup # Grow the partitions sudo growpart /dev/loop0 1 # Regressed (worked previous on Aug 28th) #sudo parted /dev/loop0 -s -- resizepart 1 8G # Works #sudo growpart foo 1 # Works echo $? sudo kpartx -s -v -a /dev/loop0 sudo e2fsck -f -y -E discard /dev/mapper/loop0p1 sudo resize2fs /dev/mapper/loop0p1 sudo zerofree /dev/mapper/loop0p1 # Clean up sudo kpartx -s -v -d foo rm foo