'\" t
.\" Title: btrfs-restore
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot
.\" Date: 01/23/2019
.\" Manual: Btrfs Manual
.\" Source: Btrfs v4.20.1
.\" Language: English
.\"
.TH "BTRFS\-RESTORE" "8" "01/23/2019" "Btrfs v4\&.20\&.1" "Btrfs Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
btrfs-restore \- try to restore files from a damaged btrfs filesystem image
.SH "SYNOPSIS"
.sp
\fBbtrfs restore\fR [options] \fI\fR \fI\fR | \-l \fI\fR
.SH "DESCRIPTION"
.sp
\fBbtrfs restore\fR is used to try to salvage files from a damaged filesystem and restore them into \fI\fR or just list the subvolume tree roots\&. The filesystem image is not modified\&.
.sp
If the filesystem is damaged and cannot be repaired by the other tools (\fBbtrfs\-check\fR(8) or \fBbtrfs\-rescue\fR(8)), \fBbtrfs restore\fR could be used to retrieve file data, as far as the metadata are readable\&. The checks done by restore are less strict and the process is usually able to get far enough to retrieve data from the whole filesystem\&. This comes at a cost that some data might be incomplete or from older versions if they\(cqre available\&.
.sp
There are several options to attempt restoration of various file metadata type\&. You can try a dry run first to see how well the process goes and use further options to extend the set of restored metadata\&.
.sp
For images with damaged tree structures, there are several options to point the process to some spare copy\&.
.if n \{\
.sp
.\}
.RS 4
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
\fBNote\fR
.ps -1
.br
.sp
It is recommended to read the following btrfs wiki page if your data is not salvaged with default option: \m[blue]\fBhttps://btrfs\&.wiki\&.kernel\&.org/index\&.php/Restore\fR\m[]
.sp .5v
.RE
.SH "OPTIONS"
.PP
\-s|\-\-snapshots
.RS 4
get also snapshots that are skipped by default
.RE
.PP
\-x|\-\-xattr
.RS 4
get extended attributes
.RE
.PP
\-m|\-\-metadata
.RS 4
restore owner, mode and times for files and directories
.RE
.PP
\-S|\-\-symlinks
.RS 4
restore symbolic links as well as normal files
.RE
.PP
\-v|\-\-verbose
.RS 4
be verbose and print what is being restored
.RE
.PP
\-i|\-\-ignore\-errors
.RS 4
ignore errors during restoration and continue
.RE
.PP
\-o|\-\-overwrite
.RS 4
overwrite directories/files in
\fI\fR, eg\&. for repeated runs
.RE
.PP
\-t \fI\fR
.RS 4
use
\fI\fR
to read the root tree
.RE
.PP
\-f \fI\fR
.RS 4
only restore files that are under specified subvolume root pointed by
\fI\fR
.RE
.PP
\-u|\-\-super \fI\fR
.RS 4
use given superblock mirror identified by
\fI\fR, it can be 0,1 or 2
.RE
.PP
\-r|\-\-root \fI\fR
.RS 4
only restore files that are under a specified subvolume whose objectid is
\fI\fR
.RE
.PP
\-d
.RS 4
find directory
.RE
.PP
\-l|\-\-list\-roots
.RS 4
list subvolume tree roots, can be used as argument for
\fI\-r\fR
.RE
.PP
\-D|\-\-dry\-run
.RS 4
dry run (only list files that would be recovered)
.RE
.PP
\-\-path\-regex \fI\fR
.RS 4
restore only filenames matching a regular expression (\fBregex\fR(7)) with a mandatory format
.sp
\fB^/(|home(|/username(|/Desktop(|/\&.*))))$\fR
.sp
The format is not very comfortable and restores all files in the directories in the whole path, so this is not useful for restoring single file in a deep hierarchy\&.
.RE
.PP
\-c
.RS 4
ignore case (\-\-path\-regex only)
.RE
.SH "EXIT STATUS"
.sp
\fBbtrfs restore\fR returns a zero exit status if it succeeds\&. Non zero is returned in case of failure\&.
.SH "AVAILABILITY"
.sp
\fBbtrfs\fR is part of btrfs\-progs\&. Please refer to the btrfs wiki \m[blue]\fBhttp://btrfs\&.wiki\&.kernel\&.org\fR\m[] for further details\&.
.SH "SEE ALSO"
.sp
\fBmkfs\&.btrfs\fR(8), \fBbtrfs\-rescue\fR(8), \fBbtrfs\-check\fR(8)