0

I'm experiencing an issue in which rsync fails when I try to mirror my home directory to an external drive. The rsync invocation is (as a normal user):

rsync -avz --progress --delete-before /home /mnt/st5/

This fails with the following error:

home/matt/vms/windows/10/disk.img
 40,002,387,968  28%   89.32MB/s    0:17:59  rsync: [receiver] write failed on "/mnt/st5/home/matt/vms/windows/10/disk.img": No space left on device (28)
rsync error: error in file IO (code 11) at receiver.c(378) [receiver=3.2.3]

rsync: [sender] write error: Broken pipe (32)

This error seems to indicate that /home/matt is larger than the space available in /mnt/st5. However, I don't believe this is the case. The size of my home directory is (the source and target are both btrfs filesystems):

matt@ryzen3950 ~/s/tools> btrfs fi du -s /home/matt
     Total   Exclusive  Set shared  Filename
 783.83GiB     6.15GiB   760.30GiB  /home/matt

The target is a 1TB drive:

matt@ryzen3950 ~/s/tools [11]> lsblk
NAME           MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sde              8:64   0 931.5G  0 disk  
└─sde1           8:65   0 931.5G  0 part  /mnt/st5

Based on this, I believe I should be able to perform the rsync with ~150GB left of free space.

Where am I going wrong? Is my home directory larger than I believe it to be?

1 Answer 1

1

Using --inplace as described in this serverfault answer worked for me. The file that rsync fails on, disk.img is 130G, which I believe provides a hint about the problem. As I understand it, rsync creates a copy of a file in the destination and then replaces the existing version when the copy is completed. This means that two copies of the file can exist in the destination at one time, which can result in space issues when copying large files. --inplace changes the behavior so that the copy is not created first.

The new, full command is:

rsync -avz --progress --delete-before --inplace /home /mnt/st5/
1
  • This problems happens also when there is plenty of space. In addition, rsync moves the file, and does not create two. Commented Jun 25, 2023 at 17:05

You must log in to answer this question.

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