How to use the command btrfs (with examples)
- Linux
- December 25, 2023
Btrfs is a filesystem based on the copy-on-write (COW) principle for Linux. It provides various subcommands and functionalities for managing the filesystem. In this article, we will explore some of the use cases of the btrfs
command, including creating subvolumes, listing subvolumes, showing space usage information, enabling quota, and showing quota.
Use case 1: Create subvolume
Code:
sudo btrfs subvolume create path/to/subvolume
Motivation: Creating subvolumes allows you to create logical partitions within the Btrfs filesystem. This can be useful for organizing data or isolating specific files or directories.
Explanation:
sudo
: Runs the command with administrative privileges.btrfs subvolume create
: The subcommand to create a new subvolume.path/to/subvolume
: The path where the new subvolume will be created. The path can be absolute or relative.
Example output:
Create subvolume '/path/to/subvolume'
Use case 2: List subvolumes
Code:
sudo btrfs subvolume list path/to/mount_point
Motivation: Listing subvolumes allows you to view all the existing subvolumes within a specific mount point. This is helpful for managing and identifying the subvolumes in use.
Explanation:
sudo
: Runs the command with administrative privileges.btrfs subvolume list
: The subcommand to list all the subvolumes.path/to/mount_point
: The mount point path where the subvolumes are located. The path can be absolute or relative.
Example output:
ID 256 gen 234085 top level 5 path path/to/subvolume
Use case 3: Show space usage information
Code:
sudo btrfs filesystem df path/to/mount_point
Motivation: Showing space usage information gives you insights into the disk usage of a Btrfs filesystem. This can help in monitoring the available space and planning for storage allocation.
Explanation:
sudo
: Runs the command with administrative privileges.btrfs filesystem df
: The subcommand to display space usage information.path/to/mount_point
: The mount point path of the Btrfs filesystem. The path can be absolute or relative.
Example output:
Data, single: total=1.00GiB, used=500.00MiB
System, single: total=64.00MiB, used=16.00KiB
Metadata, single: total=640.00MiB, used=0.00B
GlobalReserve, single: total=16.00MiB, used=0.00B
Use case 4: Enable quota
Code:
sudo btrfs quota enable path/to/subvolume
Motivation: Enabling quota on a subvolume allows you to monitor and control the disk space usage of that subvolume. This is useful for limiting the space allocated to specific subvolumes and preventing them from consuming excessive storage.
Explanation:
sudo
: Runs the command with administrative privileges.btrfs quota enable
: The subcommand to enable disk space quota.path/to/subvolume
: The path of the subvolume where quota will be enabled. The path can be absolute or relative.
Example output:
Quota group 5/257 gen=16 parent=5 top level=5 uuid=... path=path/to/subvolume
Use case 5: Show quota
Code:
sudo btrfs qgroup show path/to/subvolume
Motivation: Showing quota information allows you to view the current disk usage and limits for each quota group in a subvolume. This helps in keeping track of the allocated space and monitoring potential space overflows.
Explanation:
sudo
: Runs the command with administrative privileges.btrfs qgroup show
: The subcommand to display quota information.path/to/subvolume
: The path of the subvolume where the quota information will be shown. The path can be absolute or relative.
Example output:
qgroupid rfer excl
-------- ---- ----
0/5 20.00MiB 20.00MiB
0/257 10.00MiB N/A
Conclusion:
The btrfs
command provides a range of functionalities for managing Btrfs filesystems on Linux. With the ability to create subvolumes, list subvolumes, show space usage information, enable quota, and show quota, users can efficiently allocate and monitor disk space usage within their Btrfs filesystems. These use cases allow for better organization, resource management, and planning.