Given that you're dealing with two physical devices, you won't be able to combine the partitions at the physical level. But, you can use LVM (logical volume manager) to create what amounts to a virtual block device which consists of multiple real block devices. That would simulate a partition of ~138GB. It's also possible to do something similar at the filesystem level using BTRFS, but here's what you can do with LVM:
NOTE: Aside from LVM support, your system will need the ability to boot from LVM, which depends on your boot loader and how it's configured.
Converting to LVM
Obviously, make sure you back up your system first, since this process will wipe out /dev/sda1 and /dev/vda. Then boot Linux from a Live CD/USB drive and...
- Run
wipefs /dev/vda to quickly clear out the partition.
- Create an LVM physical volume by running
pvcreate /dev/vda
- Create a volume group:
vgcreate vg0 /dev/vda
- Create a logical volume for your root filesystem:
lvcreate -L80G -n rootfs vg0. Don't worry about the size of 80 GB; that's to be increased later.
- Put a filesystem on the logical volume, say... ext4:
mkfs.ext4 -L ROOTFS /dev/vg0/rootfs
- Mount the new filesystem to say... /mnt/newroot:
mount -L ROOTFS /mnt/newroot
- Since you'd be doing this from a live CD, you'll need to mount the real
/ somewhere, say... /mnt/oldroot: mount /dev/sda1 -o ro /mnt/oldroot
- Copy the old root to what will become the new root:
cp -aR /mnt/oldroot/* /mnt/newroot/
Now, so far, other than loosing whatever was in /dev/vda, nothing irreversible has taken place. So this is the perfect opportunity to set up your boot loader (ex. GRUB2) to boot from /dev/vg0/rootfs and make sure you can boot. Everything should be the same except your df output should look something like this:
root@vps:~$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 3.8G 0 3.8G 0% /dev
tmpfs 780M 34M 747M 5% /run
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
tmpfs 780M 0 780M 0% /run/user/1000
/dev/vg0/rootfs 99G 7.7G 92G ?% /
If you get that far, then you can proceed with the following to leverage LVM's magical powers. With some filesystems, such as EXT4, the following can be done on the live system; no live CD needed.
- Wipe out the old root:
wipefs /dev/sda1
- Create a new physical volume:
pvcreate /dev/sda1
- Add the new physical volume to LVM:
vgextend vg0 /dev/sda1
At this point, the two partitions are available for LVM's use, but not yet utilized. To use both partitions (actually they are LVM physical volumes now) for your /, extend the root logical volume to consume all the space available:
- Enlarge the logical volume:
lvextend -l 100%FREE /dev/vg0/rootfs
- Enlarge the filesystem:
resize2fs /dev/vg0/rootfs
That should give you a root filesystem ~138GB in size :)