Prerequisites
Before moving /var, make sure you have:
- SSH access to your VPS
- Root or sudo privileges
- Unused disk space or separate disk
- Backup of all data
⚠️ This is an advanced procedure. Incorrect steps can break your system. Always test on a non-production VPS first.
Step 1: Create New Partition
Connect to your VPS:
ssh hxroot@YOUR_SERVER_IP -p 22
Check available disks:
lsblk
sudo fdisk -l
Create partition (example adding 10GB to /dev/sdb):
sudo fdisk /dev/sdb
Follow prompts to create a single partition (n, p, 1, Enter, Enter, w).
Format the new partition:
sudo mkfs.ext4 /dev/sdb1
Step 2: Mount New Partition Temporarily
sudo mkdir /mnt/newvar
sudo mount /dev/sdb1 /mnt/newvar
Step 3: Copy /var Contents to New Partition
sudo rsync -avx /var/ /mnt/newvar/
Step 4: Backup Current /var and Mount New
sudo mv /var /var.old
sudo mkdir /var
sudo mount /dev/sdb1 /var
Step 5: Auto-mount at Boot
Get UUID of new partition:
sudo blkid /dev/sdb1
Add to /etc/fstab:
sudo nano /etc/fstab
UUID=your-uuid-here /var ext4 defaults 0 2
Step 6: Verify and Clean Up
Reboot:
sudo reboot
After reboot, check mount:
df -h /var
Remove old /var:
sudo rm -rf /var.old
Alternative: Using LVM (More Flexible)
If your VPS uses LVM, extend and create new logical volume:
sudo lvcreate -L 10G -n var VolumeGroup
sudo mkfs.ext4 /dev/VolumeGroup/var
sudo mount /dev/VolumeGroup/var /mnt/newvar
rsync -avx /var/ /mnt/newvar/
sudo umount /var
sudo mount /dev/VolumeGroup/var /var
# Add to fstab
✅ /var moved to separate partition. Your root filesystem is now protected from log-related disk fills.