From Fedora Project Wiki

(removed "The convert code has been rewritten as of btrfs-progs 4.6, it's advised to avoid older versions." that was 3 years ago...)
(major update for btrfs by default, intent it to repurpose this page as a landing page for Btrfs and direct users to reliable resources)
Line 1: Line 1:
{{autolang|base=yes}}
{{autolang|base=yes}}


= Btrfs filesystem =
== Btrfs: the b-tree filesystem ==


== Summary ==
=== Summary ===
Btrfs is a copy on write filesystem for Linux aimed at implementing advanced features while focusing on fault tolerance, repair and easy administration. It provides multiple device storage pooling, RAID-like functionality, fast snapshot creation, and checksumming of data and metadata. Initially developed by Oracle, Btrfs is licensed under the GPL and open for contribution from anyone.
Btrfs is a copy-on-write filesystem for Linux aimed at implementing advanced features including error detection, fault tolerance, recovery, transparent compression, cheap snapshots, integrated volume management, and easy administration. It provides multiple device storage pooling, RAID-like functionality, fast snapshot creation, and checksumming of data and metadata. Contributors include Facebook, Fujitsu, (open)SUSE, Oracle, and Western Digital. Btrfs is licensed under the GPL and open for contribution from anyone.


For more detailed information can be found at the [https://btrfs.wiki.kernel.org/index.php/Main_Page Btrfs homepage].
=== Upstream Development ===
* For more detailed information can be found at the [https://btrfs.wiki.kernel.org/index.php/Main_Page Btrfs homepage].
* The current [https://btrfs.wiki.kernel.org/index.php/Status stability status] page.
* [https://btrfs.wiki.kernel.org/index.php/Btrfs_mailing_list Mailing list] information.


== Purpose ==
== Btrfs in Fedora ==
This page provides Fedora specific information on Btrfs support.


== Stability status and support ==
=== Btrfs by default, on the desktop ===
Fedora maintains fairly recent kernels and btrfs-progs that are typically identical to upstream. The best resources are the Btrfs Wiki and mailing list.
* Btrfs is the default file system for desktops, starting with Fedora 33. See the [https://fedoraproject.org/wiki/Changes/BtrfsByDefault Change Proposal]
* [https://fedoramagazine.org/btrfs-coming-to-fedora-33/ Fedora Magazine: Btrfs Coming to Fedora 33]


The current [https://btrfs.wiki.kernel.org/index.php/Status stability status] page.
=== Btrfs support ===
 
* It has been available as an installation time option as early as Fedora 11, and a release blocking file system technology since 2012.
[https://btrfs.wiki.kernel.org/index.php/Btrfs_mailing_list Mailing list] information.
* All Fedora products include Btrfs support in the kernel, and user space tools are installed by default.


== Btrfs support in Fedora ==
=== Bug reporting ===
* Btrfs has been available as an installation time option as early as Fedora 11.
* Bugs related to <code>btrfs</code> user-space commands should be filed against the <span style="color: blue">btrfs-progs</span> component.  
* All Fedora products include Btrfs support in the kernel, and user space tools are installed by default.
* All other bugs should be filed against the <span style="color: blue">kernel</span> component. Following submission of the bug, please set the Assignee field to: <span style="color: blue">fedora-kernel-btrfs@fedoraproject.org</span> and Save the change.


== Installing ==
=== Installing ===
* The Fedora installer, Anaconda, provides Btrfs as an option in Manual Partitioning.
* The Fedora installer, Anaconda, uses Btrfs as an option in Manual Partitioning.
* The Btrfs partition scheme preset creates an ext4 /boot, swap, and a Btrfs pool. Two subvolumes, root and home, are created from that pool and mounted at / and /home respectively.
* The Btrfs partition scheme preset creates an ext4 /boot, swap, and a Btrfs pool. Two subvolumes, root and home, are created from that pool and mounted at / and /home respectively.
* Additional mount points using Btrfs will also have corresponding subvolumes created based on the Name field. Subvolumes do not have a size, so the Desired Capacity field when creating new mount points is ignored and can be left blank.
* Additional mount points using Btrfs will also have corresponding subvolumes created based on the Name field. Subvolumes do not have a size, so the Desired Capacity field when creating new mount points is ignored and can be left blank.


== Conversions from Ext3/Ext4 volumes to Btrfs (and back!) ==
=== Conversions from Ext3/Ext4 volumes to Btrfs (and back!) ===
{{admon/important|Although Btrfs does not need LVM, if you already are using it then converting your volume does not remove LVM.}}
{{admon/important|Although Btrfs does not need LVM, if you already are using it then converting your volume does not remove LVM. It also doesn't create the subvolume layout that we're using in Anaconda, and image builders.}}
* Check the upstream Btrfs changelog for the most recent recommended version of btrfs-progs.
* The most recent recommended btrf-progs may not be in the Fedora repository version you're using, it can be found in Koji.
* Btrfs Wiki has more information on [https://btrfs.wiki.kernel.org/index.php/Conversion_from_Ext3 conversion and rollback.]
* Btrfs Wiki has more information on [https://btrfs.wiki.kernel.org/index.php/Conversion_from_Ext3 conversion and rollback.]
== Frequently Asked Question(s) ==
* Why use (or not use) Btrfs?
** Data integrity: detection of corrupt metadata and data, automatic repair when there's redundancy.
** Fast snapshot creation, btrfs send/receive snapshots for replicating and backup.
** Online resizing and addition/removal of disks.
** Filesystem based [http://btrfs.wiki.kernel.org/index.php/Using_Btrfs_with_Multiple_Devices RAID 0/1/10/5/6]. See the Btrfs [https://btrfs.wiki.kernel.org/index.php/Status status page] for feature stability. Some features are considered experimental!
** 'btrfs check' a.k.a. btrfsck, is safe. However, while --repair should be safe, it comes with many warnings. See 'man btrfs check'.
** If a Btrfs volume fails to mount, try 'mount -o usebackuproot'. If that also fails report the issue on the Btrfs mailing list, including the output from 'btrfs check' without --repair.






[[Category:btrfs|btrfs]]
[[Category:btrfs|btrfs]]

Revision as of 03:10, 7 September 2020

Btrfs: the b-tree filesystem

Summary

Btrfs is a copy-on-write filesystem for Linux aimed at implementing advanced features including error detection, fault tolerance, recovery, transparent compression, cheap snapshots, integrated volume management, and easy administration. It provides multiple device storage pooling, RAID-like functionality, fast snapshot creation, and checksumming of data and metadata. Contributors include Facebook, Fujitsu, (open)SUSE, Oracle, and Western Digital. Btrfs is licensed under the GPL and open for contribution from anyone.

Upstream Development

Btrfs in Fedora

Btrfs by default, on the desktop

Btrfs support

  • It has been available as an installation time option as early as Fedora 11, and a release blocking file system technology since 2012.
  • All Fedora products include Btrfs support in the kernel, and user space tools are installed by default.

Bug reporting

  • Bugs related to btrfs user-space commands should be filed against the btrfs-progs component.
  • All other bugs should be filed against the kernel component. Following submission of the bug, please set the Assignee field to: fedora-kernel-btrfs@fedoraproject.org and Save the change.

Installing

  • The Fedora installer, Anaconda, uses Btrfs as an option in Manual Partitioning.
  • The Btrfs partition scheme preset creates an ext4 /boot, swap, and a Btrfs pool. Two subvolumes, root and home, are created from that pool and mounted at / and /home respectively.
  • Additional mount points using Btrfs will also have corresponding subvolumes created based on the Name field. Subvolumes do not have a size, so the Desired Capacity field when creating new mount points is ignored and can be left blank.

Conversions from Ext3/Ext4 volumes to Btrfs (and back!)

Although Btrfs does not need LVM, if you already are using it then converting your volume does not remove LVM. It also doesn't create the subvolume layout that we're using in Anaconda, and image builders.