dwww Home | Manual pages | Find package

BTRFS-CONVERT(8)                     BTRFS                     BTRFS-CONVERT(8)

NAME
       btrfs-convert  -  convert  from ext2/3/4 or reiserfs filesystem to btrfs
       in-place

SYNOPSIS
       btrfs-convert [options] <device>

DESCRIPTION
       The btrfs-convert tool can be used to convert existing source filesystem
       image to a btrfs filesystem in-place.  The original filesystem image  is
       accessible in subvolume named like ext2_saved as file image.

       Supported filesystems:

       • ext2, ext3, ext4 -- original feature, always built in

       • reiserfs -- since version 4.13, optionally built, requires libreiserf-
         score 3.6.27

       • NTFS -- external tool ]8;;https://github.com/maharmstone/ntfs2btrfs\https://github.com/maharmstone/ntfs2btrfs]8;;\

       The  list  of supported source filesystem by a given binary is listed at
       the end of help (option --help).

       WARNING:
          If you are going to perform rollback to the original filesystem,  you
          should not execute btrfs balance command on the converted filesystem.
          This  will  change the extent layout and make btrfs-convert unable to
          rollback.

       The conversion utilizes free space of the original filesystem. The exact
       estimate of the required space cannot be foretold. The final btrfs meta-
       data might occupy several gigabytes on a hundreds-gigabyte filesystem.

       If the ability to rollback is no longer important, the it is recommended
       to perform a few more steps to transition the btrfs filesystem to a more
       compact layout. This is because the  conversion  inherits  the  original
       data  blocks'  fragmentation,  and  also because the metadata blocks are
       bound to the original free space layout.

       Due to different constraints, it is only possible to convert filesystems
       that have a supported data block size (i.e. the same that would be valid
       for mkfs.btrfs). This is typically the system page size (4KiB on  x86_64
       machines).

       NOTE:
          Always  consider if a mkfs and file copy would not be a better option
          than the in-place conversion given what was said above.  The  conver-
          sion  depends  on 3rd party libraries and the other filesystems could
          still evolve and add new features. Not all combinations  are  covered
          or tested.

       BEFORE YOU START

       The source filesystem must be clean, e.g. no journal to replay or no re-
       pairs  needed.  The  respective  fsck  utility must be run on the source
       filesystem prior to conversion. Please refer to the manual pages in case
       you encounter problems.

       For ext2/3/4:

          # e2fsck -fvy /dev/sdx

       For reiserfs:

          # reiserfsck -fy /dev/sdx

       Skipping that step  could  lead  to  incorrect  results  on  the  target
       filesystem, but it may work.

       REMOVE THE ORIGINAL FILESYSTEM METADATA

       By  removing  the subvolume named like ext2_saved or reiserfs_saved, all
       metadata of the original filesystem will be removed:

          # btrfs subvolume delete /mnt/ext2_saved

       At this point it is not possible to do a rollback. The filesystem is us-
       able but may be impacted by the fragmentation inherited from the  origi-
       nal filesystem.

       MAKE FILE DATA MORE CONTIGUOUS

       An optional but recommended step is to run defragmentation on the entire
       filesystem. This will attempt to make file extents more contiguous.

          # btrfs filesystem defrag -v -r -f -t 32M /mnt/btrfs

       Verbose  recursive  defragmentation  (-v,  -r), flush data per-file (-f)
       with target extent size 32MiB (-t).

       ATTEMPT TO MAKE BTRFS METADATA MORE COMPACT

       Optional but recommended step.

       The metadata block groups after conversion may be smaller than  the  de-
       fault size (256MiB or 1GiB). Running a balance will attempt to merge the
       block groups.  This depends on the free space layout (and fragmentation)
       and  may  fail  due  to  lack of enough work space. This is a soft error
       leaving the filesystem usable but the block group layout may remain  un-
       changed.

       Note  that  balance  operation  takes  a  lot  of  time, please see also
       btrfs-balance(8).

          # btrfs balance start -m /mnt/btrfs

OPTIONS
       --csum <type>, --checksum <type>
              Specify the checksum algorithm. Default is crc32c.  Valid  values
              are  crc32c,  xxhash,  sha256 or blake2. To mount such filesystem
              kernel must support the checksums as well.

       -d|--no-datasum
              disable data checksum calculations and  set  the  NODATASUM  file
              flag, this can speed up the conversion

       -i|--no-xattr
              ignore xattrs and ACLs of files

       -n|--no-inline
              disable inlining of small files to metadata blocks, this will de-
              crease  the  metadata  consumption  and  may  help  to  convert a
              filesystem with low free space

       -N|--nodesize <SIZE>
              set filesystem nodesize, the  tree  block  size  in  which  btrfs
              stores  its  metadata.  The default value is 16KiB (16384) or the
              page size, whichever is bigger.  Must be a multiple of  the  sec-
              torsize,  but  not  larger than 65536. See mkfs.btrfs(8) for more
              details.

       -r|--rollback
              rollback to the original ext2/3/4 filesystem if possible

       -l|--label <LABEL>
              set filesystem label during conversion

       -L|--copy-label
              use label from the converted filesystem

       -O|--features <feature1>[,<feature2>...]
              A list of filesystem features enabled the at time of  conversion.
              Not  all features are supported by old kernels. To disable a fea-
              ture, prefix it with ^.  Description of the features is  in  sec-
              tion FILESYSTEM FEATURES of mkfs.btrfs(8).

              To see all available features that btrfs-convert supports run:

                 btrfs-convert -O list-all

       -p|--progress
              show  progress of conversion (a heartbeat indicator and number of
              inodes processed), on by default

       --no-progress
              disable progress and show only the main phases of conversion

       --uuid <SPEC>
              set the FSID of the new filesystem based on 'SPEC':

              • new - (default) generate UUID for the FSID of btrfs

              • copy - copy UUID from the source filesystem

              • UUID - a conforming UUID value, the 36 byte string  representa-
                tion

       --version
              Print the btrfs-convert version, builtin features and exit.

EXIT STATUS
       btrfs-convert  will return 0 if no error happened.  If any problems hap-
       pened, 1 will be returned.

SEE ALSO
       mkfs.btrfs(8)

6.14                              Apr 17, 2025                 BTRFS-CONVERT(8)

Generated by dwww version 1.16 on Tue Dec 16 04:12:42 CET 2025.