I'm using Packer to create a VM with CentOS 7, and exporting it as a
.ova file at the final of installation.
By default, Packer creates a 40GB Virtual Disk (
.vmdk). After the installation, if I import the .
ova file in VirtualBox (just for tests) and list the file system of the created VM, I got this:
[root@localhost ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/cl-root 37G 1.6G 35G 5% / devtmpfs 1.3G 0 1.3G 0% /dev tmpfs 1.4G 0 1.4G 0% /dev/shm tmpfs 1.4G 8.4M 1.3G 1% /run tmpfs 1.4G 0 1.4G 0% /sys/fs/cgroup /dev/sda1 1014M 166M 849M 17% /boot tmpfs 268M 0 268M 0% /run/user/1000 tmpfs 268M 0 268M 0% /run/user/0
If I import the same
.ova file in a Amazon Instance, this time increasing the size of my root storage volume to 100GB, I got this file system:
[root@localhost ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/cl-root 50G 4,0G 46G 9% / devtmpfs 15G 0 15G 0% /dev tmpfs 15G 0 15G 0% /dev/shm tmpfs 15G 18M 15G 1% /run tmpfs 15G 0 15G 0% /sys/fs/cgroup /dev/xvda1 1014M 185M 830M 19% /boot /dev/mapper/cl-home 45G 89M 45G 1% /home tmpfs 3,0G 0 3,0G 0% /run/user/0 tmpfs 3,0G 0 3,0G 0% /run/user/1000
Note that the
/ was increased to 50GB, and now a new
/home was automatically created.
This was driving me crazy, until I find the cause:
All the instalallation was made automatically by Packer, using a kickstart config file wich uses
autopart for partitioning.
In RedHat docs, I found this:
autopart (optional) Automatically creates partitions: a root (/) partition (1 GB or larger), a swap partition, and an appropriate /boot partition for the architecture. On large enough drives (50 GB and larger), this also creates a /home partition.
So, I decided to manually create the partitions, using this lines in the kickstart file instead of
part /boot --fstype ext4 --size=1014 part pv.01 --size=1000 --grow volgroup cl pv.01 logvol swap --fstype swap --name=swap --vgname=cl --size=2048 logvol / --fstype ext4 --name=root --vgname=cl --size=1 --grow
.ova again to Amazon, selecting the same storage size of 100GB for the root volume, I finally got what I wanted:
[root@localhost ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/cl-root 94G 2,3G 87G 3% / devtmpfs 15G 0 15G 0% /dev tmpfs 15G 0 15G 0% /dev/shm tmpfs 15G 8,3M 15G 1% /run tmpfs 15G 0 15G 0% /sys/fs/cgroup /dev/xvda1 983M 154M 762M 17% /boot tmpfs 3,0G 0 3,0G 0% /run/user/1000
So I found WHAT is going on, but not HOW it happens. The questions are:
- The kickstart file is supposed to be used only in installation time. How after Amazon VM import the file system get changed using the same conventions of the kickstart installation?
- Where this info is stored, and how the resizing is being done automatically in CentOS 7?