First off, let me get this out there right off the bat; I am a homelabber that leverages Proxmox for some LXCs and some VMs. This is all fun and games for me, so there is nothing mission-critical here… other than the inability for my children to watch Grizzy & the Lemmings. I have a few small form factor devices that I have set up to run Proxmox in a 3-node cluster: I have one Beelink Mini S12 Pro and 2 Lenovo M920Qs, all running what they came out of the box with. While rummaging through the endless drawers of random technology, I found a few larger consumer-grade M.2 NVMe (1TB and 2TB) drives lying around collecting dust, so I figured I would put them to good use and replace the small 250GB NVMe drives these systems are currently running.
Note: None of these systems have the ability to run multiple NVMe drives, so I will be forced to do this with an external NVMe enclosure. I also migrated all my LXCs and VMs to another node in the cluster just in case this failed and I had to wipe and reinstall due to error (not uncommon).
To start, I then installed the new drive into my trusty, and very cheap, NVMe external enclosure.
I downloaded CloneZilla and used Rufus to create a bootable USB drive.
Once that process was completed, I connected my external enclosure and my bootable USB drive and powered on the Lenovo M920Q. On this system, use F12 to bring up the boot device selection menu and choose the newly created CloneZilla Boot device.
When CloneZilla is running, there are a few options you are going to want to make sure you get right, namely choosing device-device when the option is presented instead of the default option for device-image.
After all the selections are made, you are going to be prompted to verify your selections.
Once all the required confirmations are completed, CloneZilla will begin cloning the disk.
After the clone has completed, the real work can begin. Shutdown your system, switch the drives around, and power it on.
Now you have to expand your partition so that you can utilize the entire drive. To do this, you have to log into your Proxmox dashboard and navigate to the Shell option or connect via an SSH utility.
Run the following commands:
lsblk
From this command you can see the drive (nvme0n1) size is now 1TB, but the partition for Proxmox is currently only 237.5GB (nvme0n1p3) and pve-root is only 69.4GB.
df -h
This command will provide us a summary of the full disk space usage .
cfdisk /dev/nvme0n1
From here, select your root partition (/dev/nvme0n1p3) and choose the option to resize from the options at the bottom. It will prompt you for a new size, I selected the default “New size” presented. Once completed, you will see that the size has been increased
If everything looks good to you, select “Write” from the bottom menu and confirm. Then exit the program by pressing “Q” on your keyboard.
pvresize /dev/nvme0n1p3
This will resize the root partition to utilize all the available space now.
lvextend -l +100%FREE /dev/mapper/pve-root
resize2fs /dev/mapper/pve-root
df -h
You can now see the /dev/mapper/pve-root has been extended to 731GB
Enjoy!