I recently had a need to grow the root filesystem on a Photon OS 3.0 virtual machine. This is something I’ve done before with Ubuntu Linux (blog post here), but Photon OS does not include the growpart
command out of the box, so that process did not work.
After resizing the virtual machine disk, I rescaned from within the running OS (I could have also rebooted, but who wants to do that) by running this command:
echo 1 > /sys/class/block/sda/device/rescan
I then installed the parted utility with the command tdnf install parted
and started by typing parted
at the shell prompt. Once at the parted menu, I typed print
to show the disk information. A warning appeared letting me know there was extra space available for use and asking if I wanted to fix the GPT to use all the space, which I entered Fix
to accept.
From here you can see that Disk /dev/sda has a size of 26.8GB, but the last partition #3 ends at 21.5GB. It happens that the last partition is the one I want to grow, so I type resizepart 3
. I’m notified that the partition is being used and I confirm with Yes
. To answer the new question for where I want the partition to end, I entered 26.8GB
which was the value previously returned by the print
command.
With the partition table issues resolved, I entered quit
to exit the parted utility.
Back at the shell, I ran resize2fs /dev/sda3
to resize the filesystem to consume all of the space. I can now confirm that my filesystem has the extra free space with the command df -h
.
After testing this out, I realized the environment where I really needed to make the change did not have internet access, even through a proxy. Because of this I was unable to install parted with tdnf. Not to worry, we have two different workarounds for that.
First, we can install the parted RPM manually without tdnf. To do this we browse to the Photon repo here: https://dl.bintray.com/vmware/photon_release_3.0_x86_64/x86_64/. Looking through the list of packages, we find the one starting parted-*, in this case parted-3.2-7.ph3.x86_64.rpm. We download the file and copied it to the Photon VM (using WinSCP or the like). From our shell prompt we then run rpm --install /tmp/parted-3.2-7.ph3.x86_64.rpm
to install the manually downloaded RPM. We can then run the rest of the steps as outlined previously.
Alternatively, if we don’t want to install parted in the guest and are okay with a brief outage, we could use a bootable CD image which contains partition management tools. One such tool that I’ve had good luck with is gparted. You can download the image here: https://gparted.org/download.php. This tool takes care of all the steps, both growing the partition and extending the filesystem.
Pingback: Skyline Health Diagnostics custom SSL certificates – Enterprise Admins.org
This post includes a link to download `parted` from dl.bintray.com. Near the end of this month, that repo is moving to https://packages.vmware.com/photon. You can read more about the move here: https://blogs.vmware.com/vsphere/2020/10/photon-os-announces-migration-to-new-package-repository.html. For reference, the updated path would be https://packages.vmware.com/photon/3.0/photon_release_3.0_x86_64/x86_64/.
Pingback: Photon OS 4.0 Grow Filesystem using Logical Volume Management (LVM) – Enterprise Admins.org