summaryrefslogtreecommitdiffstats
path: root/upstream/opensuse-tumbleweed/man8/btrfs-convert.8
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--upstream/opensuse-tumbleweed/man8/btrfs-convert.8253
1 files changed, 253 insertions, 0 deletions
diff --git a/upstream/opensuse-tumbleweed/man8/btrfs-convert.8 b/upstream/opensuse-tumbleweed/man8/btrfs-convert.8
new file mode 100644
index 00000000..fded5087
--- /dev/null
+++ b/upstream/opensuse-tumbleweed/man8/btrfs-convert.8
@@ -0,0 +1,253 @@
+.\" Man page generated from reStructuredText.
+.
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.TH "BTRFS-CONVERT" "8" "Feb 14, 2024" "6.7.1" "BTRFS"
+.SH NAME
+btrfs-convert \- convert from ext2/3/4 or reiserfs filesystem to btrfs in-place
+.SH SYNOPSIS
+.sp
+\fBbtrfs\-convert\fP [options] <device>
+.SH DESCRIPTION
+.sp
+The \fBbtrfs\-convert\fP 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 \fIext2_saved\fP as file \fIimage\fP\&.
+.sp
+Supported filesystems:
+.INDENT 0.0
+.IP \(bu 2
+ext2, ext3, ext4 \-\- original feature, always built in
+.IP \(bu 2
+reiserfs \-\- since version 4.13, optionally built, requires libreiserfscore 3.6.27
+.IP \(bu 2
+NTFS \-\- external tool \fI\%https://github.com/maharmstone/ntfs2btrfs\fP
+.UNINDENT
+.sp
+The list of supported source filesystem by a given binary is listed at the end
+of help (option \fI\-\-help\fP).
+.sp
+\fBWARNING:\fP
+.INDENT 0.0
+.INDENT 3.5
+If you are going to perform rollback to the original filesystem, you
+should not execute \fBbtrfs balance\fP command on the converted filesystem. This
+will change the extent layout and make \fBbtrfs\-convert\fP unable to rollback.
+.UNINDENT
+.UNINDENT
+.sp
+The conversion utilizes free space of the original filesystem. The exact
+estimate of the required space cannot be foretold. The final btrfs metadata
+might occupy several gigabytes on a hundreds\-gigabyte filesystem.
+.sp
+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\(aq
+fragmentation, and also because the metadata blocks are bound to the original
+free space layout.
+.sp
+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
+\fBmkfs.btrfs\fP). This is typically the system page size (4KiB on x86_64
+machines).
+.sp
+\fBBEFORE YOU START\fP
+.sp
+The source filesystem must be clean, e.g. no journal to replay or no repairs
+needed. The respective \fBfsck\fP utility must be run on the source filesystem prior
+to conversion. Please refer to the manual pages in case you encounter problems.
+.sp
+For ext2/3/4:
+.INDENT 0.0
+.INDENT 3.5
+.sp
+.nf
+.ft C
+# e2fsck \-fvy /dev/sdx
+.ft P
+.fi
+.UNINDENT
+.UNINDENT
+.sp
+For reiserfs:
+.INDENT 0.0
+.INDENT 3.5
+.sp
+.nf
+.ft C
+# reiserfsck \-fy /dev/sdx
+.ft P
+.fi
+.UNINDENT
+.UNINDENT
+.sp
+Skipping that step could lead to incorrect results on the target filesystem,
+but it may work.
+.sp
+\fBREMOVE THE ORIGINAL FILESYSTEM METADATA\fP
+.sp
+By removing the subvolume named like \fIext2_saved\fP or \fIreiserfs_saved\fP, all
+metadata of the original filesystem will be removed:
+.INDENT 0.0
+.INDENT 3.5
+.sp
+.nf
+.ft C
+# btrfs subvolume delete /mnt/ext2_saved
+.ft P
+.fi
+.UNINDENT
+.UNINDENT
+.sp
+At this point it is not possible to do a rollback. The filesystem is usable but
+may be impacted by the fragmentation inherited from the original filesystem.
+.sp
+\fBMAKE FILE DATA MORE CONTIGUOUS\fP
+.sp
+An optional but recommended step is to run defragmentation on the entire
+filesystem. This will attempt to make file extents more contiguous.
+.INDENT 0.0
+.INDENT 3.5
+.sp
+.nf
+.ft C
+# btrfs filesystem defrag \-v \-r \-f \-t 32M /mnt/btrfs
+.ft P
+.fi
+.UNINDENT
+.UNINDENT
+.sp
+Verbose recursive defragmentation (\fI\-v\fP, \fI\-r\fP), flush data per\-file (\fI\-f\fP) with
+target extent size 32MiB (\fI\-t\fP).
+.sp
+\fBATTEMPT TO MAKE BTRFS METADATA MORE COMPACT\fP
+.sp
+Optional but recommended step.
+.sp
+The metadata block groups after conversion may be smaller than the default 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 unchanged.
+.sp
+Note that balance operation takes a lot of time, please see also
+\fI\%btrfs\-balance(8)\fP\&.
+.INDENT 0.0
+.INDENT 3.5
+.sp
+.nf
+.ft C
+# btrfs balance start \-m /mnt/btrfs
+.ft P
+.fi
+.UNINDENT
+.UNINDENT
+.SH OPTIONS
+.INDENT 0.0
+.TP
+.BI \-\-csum \ <type>\fR,\fB \ \-\-checksum \ <type>
+Specify the checksum algorithm. Default is \fIcrc32c\fP\&. Valid values are \fIcrc32c\fP,
+\fIxxhash\fP, \fIsha256\fP or \fIblake2\fP\&. To mount such filesystem kernel must support the
+checksums as well.
+.UNINDENT
+.INDENT 0.0
+.TP
+.B \-d|\-\-no\-datasum
+disable data checksum calculations and set the NODATASUM file flag, this can speed
+up the conversion
+.TP
+.B \-i|\-\-no\-xattr
+ignore xattrs and ACLs of files
+.TP
+.B \-n|\-\-no\-inline
+disable inlining of small files to metadata blocks, this will decrease the metadata
+consumption and may help to convert a filesystem with low free space
+.TP
+.B \-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 sectorsize, but not larger than 65536. See
+\fI\%mkfs.btrfs(8)\fP for more details.
+.TP
+.B \-r|\-\-rollback
+rollback to the original ext2/3/4 filesystem if possible
+.TP
+.B \-l|\-\-label <LABEL>
+set filesystem label during conversion
+.TP
+.B \-L|\-\-copy\-label
+use label from the converted filesystem
+.TP
+.B \-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 feature, prefix it with \fI^\fP\&.
+Description of the features is in section
+\fI\%FILESYSTEM FEATURES\fP of
+\fI\%mkfs.btrfs(8)\fP\&.
+.sp
+To see all available features that btrfs\-convert supports run:
+.INDENT 7.0
+.INDENT 3.5
+.sp
+.nf
+.ft C
+btrfs\-convert \-O list\-all
+.ft P
+.fi
+.UNINDENT
+.UNINDENT
+.TP
+.B \-p|\-\-progress
+show progress of conversion (a heartbeat indicator and number of inodes
+processed), on by default
+.UNINDENT
+.INDENT 0.0
+.TP
+.B \-\-no\-progress
+disable progress and show only the main phases of conversion
+.TP
+.BI \-\-uuid \ <SPEC>
+set the FSID of the new filesystem based on \(aqSPEC\(aq:
+.INDENT 7.0
+.IP \(bu 2
+\fInew\fP \- (default) generate UUID for the FSID of btrfs
+.IP \(bu 2
+\fIcopy\fP \- copy UUID from the source filesystem
+.IP \(bu 2
+\fIUUID\fP \- a conforming UUID value, the 36 byte string representation
+.UNINDENT
+.UNINDENT
+.SH EXIT STATUS
+.sp
+\fBbtrfs\-convert\fP will return 0 if no error happened.
+If any problems happened, 1 will be returned.
+.SH SEE ALSO
+.sp
+\fI\%mkfs.btrfs(8)\fP
+.\" Generated by docutils manpage writer.
+.