I have been attempting to move my /var folder to a new partition. I am using Debian 10.7 and have an 8GB processor so am trying to save space. I have tried several things but part of the data always seems to disappear. Here is what I have tried:

  1. Create new partition /dev/sda7
  2. mount /dev/sda7 to /mnt/newvar in /etc/fstab
  3. boot into single user mode
  4. mount / -rw -o remount
  5. cp -arpPv /var/* /mnt/newvar (when I examine the /mnt/newvar folder, it is the same size as the /var folder so I assume the copy worked correctly, all folders appear to be there)
  6. mv /var /var.old
  7. mkdir /var
  8. edit /etc/fstab and mount /dev/sda7 on /var
  9. restart system

When the system comes up, several folders are not viewable in /var, but if I boot to a rescue USB I can see all the folders on /var from there. Can I delete the /mnt/newvar folder? and the /var.old folder? If I do that then I seem to permanently lose the unviewable folders/files. I wanted to move this folder to a new partition in order to make the rest of the system read-only and would like to conserve space. if I can't delete the old folders then using a different partition does not help much with that. Can anyone tell me why some folders are not viewable and how do I keep from losing my data permanently?

  • 2
    In single user mode the /mnt/newvar directory won't have been mounted, so all you've done is copy the files from one part of the root filesystem to another Jun 23, 2021 at 23:29
  • Any suggestions as to what I should do differently? This whole process confuses me because, as you have stated, all I did was copy from one part of the file system to another. I have followed several posts that state to do what I outlined, but maybe I am missing something. Can I do a move (mv) instead?
    – newBird
    Jun 24, 2021 at 12:17
  • I've done this several times to move /home into its own partition. I've always booted from USB, created new [temporary] mount points for both the old and new locations. Worth running 'df -h' to check what is mounted where. Jun 24, 2021 at 21:06
  • Instead of mounting in /etc/fstab, which is usually done only to have the partitions mounted by system on startup by mount -a, try directly mounting the partition by mount /dev/sda7 /mnt/newvar. Are there any errors in that command's output or su -c dmesg | tail? Does mount | grep '/mnt/newvar' show anything? Sep 10, 2022 at 9:48

2 Answers 2


Can you examine the symbolic links in /var? Because in some cases, the destination of these links is not a specific directory path but a relative one instead.

For example, the /var/run/ points to /run/, which is the /run directory in /, but the destination of the link might be ../run/, which is the run directory in the link's parent directory, which is still root.

But that also means that if you copy /var/ to /mnt/newvar/, the system will find a directory named run in the parent directory of newvar/, which is /mnt when it encounters the link points to ../run/.

With that being said, any operation that involves copying the /var might result in strange behaviours, so I suggest my solution: Mount the /var directly to your desired partition upon installation. As the result, your /etc/fstab may look like this

UUID=xxx /var            ext4    defaults        0       2

With xxx is the UUID of your desired partition and can be retrieved using the command blkid.


The /var directory contains a couple of symbolic links:-

  1. /var/lock/ -> /run/lock/

  2. /var/run/ -> /run/

I don't think that cp command is copying the symbolic links.

Perhaps you need to recreate them?

I wouldn't delete the old /var data until you have several days of trouble-free running.

  • 1
    cp -a absolutely copies symbolic links. Jun 24, 2021 at 8:47
  • I also thought that the -P is to copy symbolic links, but I could be misunderstanding the options for the cp command. Would a mv command work for this? And what would happen to the symbolic links using 'mv'?
    – newBird
    Jun 24, 2021 at 12:21
  • mv moves symbolic links just fine. No idea what is your issue - I'm too lazy to understand it. Jun 26, 2021 at 17:21
  • @newBird From man cp: -a, --archive same as -dR --preserve=all; -d same as --no-dereference --preserve=links. Thus, -a includes -P. Sep 10, 2022 at 9:40

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .