How To Move /var To Another Partition

Home » CentOS » How To Move /var To Another Partition
CentOS 17 Comments


I am getting low on space in my /(root) partition. I have 23GB free.

I have 350GB in my /home partition. I am the only user.

I was experimenting with virtualization and it causes the root partition to get very low. I would like to move /var from the root partition, to the same partition as /home, if that’s safe to do.

Or, resize /home and add another partition for /var

I also don’t want to screw the pooch doing it.

This is over my head. The more I read about it, the more confused I get.


17 thoughts on - How To Move /var To Another Partition

  • The way I’ve been doing it for quite some time is to make /var a separate partition, put the home directories on /var/home, and then bind-mount /var/home on /home. In /etc/fstab that’s:

    /var/home /home none bind 0 0

    To keep SELinux happy, you need to set up an equivalence of /var/home to /home:

    semanage fcontext -a -e /home /var/home

    It’s all completely transparent in the running system. The only time I
    have to remember that it’s set up that way is when I’m looking in my backups and need to know that home directories are backed up as part of /var.

  • –ENhLWF4nDQ0oTmRge1uPgD33mKO6irxmK
    Content-Type: text/plain; charset=windows-1252
    Content-Transfer-Encoding: quoted-printable

    Alternatively create /home/VM and keep the virtualised disks in there.


  • This is the solution I would use. I use < 80 GB for / which makes it cheap for / to be an SSD (I use 120 GB SSD but every system, < 80GB is actually used, most < 60GB is actually used). Databases and other stuff that take up space are in a /srv on its own platter disk rather than in /var – I would do a similar thing with VM images. It’s nice to be able to do a fresh completely wiping the old root partition and then be able to mount your other partitions and change a few config files and be back up and running. Keep a small physical disk like an SSD just for / makes that easy.

  • get.
    [Thomas E Dukes]

    I didn’t even think about that.

    I deleted the VM I setup yesterday. I used the CentOS 7 minimal iso, probably should have used the full iso. It didn’t have any choices of packages to install, that I saw. I wanted to setup a server.


  • get. for /
    platter partition and and makes
    [Thomas E Dukes]

    I was about to head off to Bestbuy and pickup a 1TB SATA drive but I think I’m going to hold off for now and use /home for the VMs.


  • ‘a server’ ? what, a web server? a file server? a email server? a name server?

    each of those requires different packages, best installed via yum, while being quite selective, if for no other reason, then to reduce the amount of unneeded updates being installed every few weeks.

  • I find that putting the virtual machine disks on their own spindle boosts performance SIGNIFICANTLY, especially if you are using the host system for other things.


  • being

    [Thomas E Dukes]
    A web server with ftp, SSH php and mysql.

    Thought I’d give 7.0 a try before I upgrade from 6.8.

    I know you can use yum to install groups but I don’t know what the groups are.

    I had to delete the VM because it only left about 15% free space on my root partition.


  • [Thomas E Dukes]
    I may eventually do that but since I have some space available on my /home partition, that will work for now.

    I was just going try out 7.0 before upgrading from 6.8


  • What I do is have a separate logical volume for /var/lib/libvirt, with /var/lib/libvirt/etc bind-mounted to /etc/libvirt. It keeps all the libvirt stuff together, since the backup requirements there are quite different from the rest of the system.

  • this!

    when I create a CentOS system, I let anaconda setup LVM, but I hugely shrink /home to something reasonable, and leave much of the physical disk space unassigned for future allocation. then I’ll create a new LV
    for /var/lib/whatever, mkfs_xfs and mount it (adding it to /etc/fstab)
    when I want to explore something new like a database server, setup a web server, or KVM… if it turns out I need more space for /home, its as simple as..

    lvextend -L +20g /dev/mapper/vg_xxxx-lv_home && xfs_growfs /home

    to add 20G (or whatever) to said file system…

  • shrink when I
    [Thomas E Dukes]

    I ducked when that went right over my head. :-)

    Seriously, I don’t have a clue what ya’ll said and too afraid to try it. I
    did some reading on LVM today. I know enough to be dangerous.

    I’m installing CentOS 7 in /home/LV as we speak but can blow it away if you care to help me out setting that up. Know you guys have more important things going on than dealing with ‘casual’ users.

    I sincerely appreciate your help!!

  • –lPQCxdxDUvtqXvqnnGDKM2aT55Kl90sOE
    Content-Type: text/plain; charset=windows-1252
    Content-Transfer-Encoding: quoted-printable

    Good point that I should have mentioned earlier. Remember that if
    _anything_ in the VM changes (such as a log entry), then the host system will see the virtual disk as changed and back the whole thing up. You can end up backing up 20 GiB per day just to accommodate a few KiB
    change in the VM.

    A lot depends on how you do your backups, but I set things so that if the VM is running at backup time _it_ backs up its disks, not the host.


  • indeed. I exclude the VM storage entirely from my backups, and instead backup each VM as tho its a seperate machine. BackupPC ‘pulls’ the backups from the clients using rsync, so this is really easy to setup
    (just setup SSH keys for BackupPC to each guest, and tell it what paths to backup…)

  • Indeed! Having the host include the VM image files in its backup is equivalent to using “dd” to back up entire disk images and having that as your sole backup mechanism.