#!/bin/sh -x
# Manual disk resize procedure for Centos 7 only.
# Ubuntu vagrant image is able to transparently automate all this.

###
# WORK-AROUND explanation:
#
# fdisk can resize a live mounted partition as long as it's growing only and
# the start do not change.
# Basically we delete the partition and recreate a new one at the same start
# location and ending further.
# Then reboot and notify the filesystem to take up the new available space.
###

# Can not use parted on a live mounted partition.
#sudo parted /dev/sda resizepart 1 100%

# Sample manual fdisk run and output
#$ sudo fdisk /dev/sda
#Welcome to fdisk (util-linux 2.23.2).
#
#Changes will remain in memory only, until you decide to write them.
#Be careful before using the write command.
#
#
#Command (m for help): p
#
#Disk /dev/sda: 107.4 GB, 107374182400 bytes, 209715200 sectors
#Units = sectors of 1 * 512 = 512 bytes
#Sector size (logical/physical): 512 bytes / 512 bytes
#I/O size (minimum/optimal): 512 bytes / 512 bytes
#Disk label type: dos
#Disk identifier: 0x0009ef88
#
#   Device Boot      Start         End      Blocks   Id  System
#/dev/sda1   *        2048    83886079    41942016   83  Linux
#
#Command (m for help): d
#Selected partition 1
#Partition 1 is deleted
#
#Command (m for help): n
#Partition type:
#   p   primary (0 primary, 0 extended, 4 free)
#   e   extended
#Select (default p): p
#Partition number (1-4, default 1): 1
#First sector (2048-209715199, default 2048):
#Using default value 2048
#Last sector, +sectors or +size{K,M,G} (2048-209715199, default 209715199):
#Using default value 209715199
#Partition 1 of type Linux and of size 100 GiB is set
#
#Command (m for help): p
#
#Disk /dev/sda: 107.4 GB, 107374182400 bytes, 209715200 sectors
#Units = sectors of 1 * 512 = 512 bytes
#Sector size (logical/physical): 512 bytes / 512 bytes
#I/O size (minimum/optimal): 512 bytes / 512 bytes
#Disk label type: dos
#Disk identifier: 0x0009ef88
#
#   Device Boot      Start         End      Blocks   Id  System
#/dev/sda1            2048   209715199   104856576   83  Linux
#
#Command (m for help): w
#The partition table has been altered!
#
#Calling ioctl() to re-read partition table.
#
#WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
#The kernel still uses the old table. The new table will be used at
#the next reboot or after you run partprobe(8) or kpartx(8)
#Syncing disks.

### Reboot after performing fdisk

sudo xfs_growfs /dev/sda1
