---
title: "Btrfs - Helpful commands"
date: 2020-09-03T00:00:00
subtitle: "Useful commands for the Btrfs file system"
summary: "Useful commands for the Btrfs file system"
---
Quick collection of useful commands for maintaining a Btrfs filesystem.

Btrfs allows for easy management of software raids in RAID0, RAID1, and RAID10. RAID5 and RAID6 are implemented but not suggested for use. 


{{% callout note %}}
Btrfs (pronounced as "butter fuss", "better F S", "butter F S", "b-tree F S", or simply by spelling it out) is a file system based on the copy-on-write (COW) principle, initially designed at Oracle Corporation for use in Linux. The development of Btrfs began in 2007, and since August 2014 the file system's on-disk format has been marked as stable.[13]
{{% /callout %}}

## Btrfs device statistics
The Btrfs device commands are used to check the status of the device, such as read / write errors and disk usage.
See the current statistic. 
```shell
sudo btrfs device stats /path/to/fs
```

To see the current usage. 
```shell
sudo btrfs device usage /path/to/fs
```

## btrfs scrub
btrfs scrub is used to scrub a Btrfs filesystem, which will read all data and metadata blocks from all devices and verify checksums. Automatically repair corrupted blocks if there’s a correct copy available.

```shell
sudo btrfs scrub start /path/to/fs/
```

To see the status of an ongoing (or last run) balance use

```shell
sudo btrfs scrub status /path/to/fs/
```

## btrfs balance
The primary purpose of the balance feature is to spread block groups across all devices so they match constraints defined by the respective profiles. See mkfs.btrfs(8) section PROFILES for more details. The scope of the balancing process can be further tuned by the use of filters that can select the block groups to process. Balance works only on a mounted filesystem.

```shell
sudo btrfs balance start /path/to/fs/
```

To see the status of an ongoing (or last run) balance use

```shell
sudo btrfs balance status /path/to/fs/
```