My Kubuntu 12.04 system ran out of space on on the root partition and will not boot. The command df -h shows a lot of space available (with only 37% used):

/dev/sda2        45G   17G   29G  37%

The following page indicates that I should run the balance command:


$ sudo btrfs fi balance start -dusage=5 /mount/point

I'm not entirely confident that this is the best approach, but it is the only one I found. However, when I run that command, I get this error:

ERROR: error during balancing '/blah/blah/blah' - No space left on device

I get the same error with:

$ sudo btrfs fi balance start -dusage=1 /mount/point

What is the right solution?

  • If you have plenty of RAM and a stable power supply, then you could use a temporary ramdisk for some extra space. There is an example session at the bottom of this article. However the accepted answer below is a much simpler approach. – joeytwiddle Jan 26 at 12:26

There are ways to get balance to run in this situation.

sudo btrfs fi show
sudo btrfs fi df /mount/point
sudo btrfs fi balance start -dusage=10 /mount/point

If the balance command ends with "Done, had to relocate 0 out of XX chunks", then you need to increase the "dusage" percentage parameter till at least one chunk is relocated.

if the balance command fails with:

ERROR: error during balancing '/blah/blah/blah' - No space left on device

You might actually need to delete files from the device to make some room. Then run the balance command again.

However, thanks to Marc's Blog: btrfs - Fixing Btrfs Filesystem Full Problems here is another option:

One trick to get around this is to add a device (even a USB key will do) to your btrfs filesystem. This should allow balance to start, and then you can remove the device with btrfs device delete when the balance is finished. It's also been said on the list that kernel 3.14 can fix some balancing issues that older kernels can't, so give that a shot if your kernel is old.

  • 7
    I've found that occasionally I've also needed to mount -oremount,clear_cache /mountpoint as well to fix the free space calculations. (They become corrupted...) – rrauenza Jun 20 '16 at 23:30
  • 1
    @rrauenza, thanks! You should add that as an answer :) – mwfearnley Apr 3 '18 at 11:20

I tried everything in the accepted answer, and Marc's blog, including incrementing the -dusage parameter and adding another block device, all to no avail. Even after deleting some files and freeing up a little space on the disk which was full, balance was not able to complete. For some reason it always seemed to be moving data onto the nearly full disk. In the end what did work for me was restricting balancing to the full device:

btrfs balance start -ddevid=<dev_id> <path>

where the dev_id can be found with:

btrfs fi show 
  • None of these worked – Met May 5 '19 at 19:10
  • This crashed my system and the volume became unavailable even I rebooted the system. I installed an volume with EXT4 and now I hope I can get rid of the very sensitive BTRFS system which I consider as a failure with lot of design problems. – Al Bundy Sep 10 '19 at 16:03
  • I also broke my btrfs volume once, because I interrupted the btrfs balance process. To avoid that, I recommend always using -dusage=XX to ensure the process finishes within a reasonable time. Start with small numbers at first, then increment (5, 10, 20, ...). You can also monitor the progress of an existing long-running balance with btrfs balance status as demonstrated here. (After breaking my volume, I was at least able to extract files with btrfs restore.) – joeytwiddle Jan 26 at 12:33

sudo apt-btrfs-snapshot delete-older-than 3d Deletes snapshots older than 3 days. As you move data around, snapshot data becomes out of place and actual data needs to be written in multiple places on the drive. This removes snapshots pertaining to old data in old locations and frees up those sectors for use again. I also recommend duperemove to deduplicate data and extents on the btrfs filesystem.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.