2014-04-15 07:04:49 +00:00
|
|
|
btrfs-restore(8)
|
|
|
|
================
|
|
|
|
|
|
|
|
NAME
|
|
|
|
----
|
2015-04-29 16:26:08 +00:00
|
|
|
btrfs-restore - try to restore files from a damaged btrfs filesystem image
|
2014-04-15 07:04:49 +00:00
|
|
|
|
|
|
|
SYNOPSIS
|
|
|
|
--------
|
2014-05-19 15:49:35 +00:00
|
|
|
*btrfs restore* [options] <device> <path> | -l <device>
|
2014-04-15 07:04:49 +00:00
|
|
|
|
|
|
|
DESCRIPTION
|
|
|
|
-----------
|
2014-05-19 15:49:35 +00:00
|
|
|
*btrfs restore* is used to try to salvage files from a damaged filesystem and
|
2016-06-16 16:48:44 +00:00
|
|
|
restore them into <path> or just list the subvolume tree roots. The filesystem
|
|
|
|
image is not modified.
|
2014-04-15 07:04:49 +00:00
|
|
|
|
2016-06-16 16:48:44 +00:00
|
|
|
If the filesystem is damaged and cannot be repaired by the other tools
|
|
|
|
(`btrfs-check`(8) or `btrfs-rescue`(8)), *btrfs restore* 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're available.
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
For images with damaged tree structures, there are several options to point the
|
|
|
|
process to some spare copy.
|
2014-04-15 07:04:49 +00:00
|
|
|
|
2014-04-15 07:04:51 +00:00
|
|
|
NOTE: It is recommended to read the following btrfs wiki page if your data is
|
|
|
|
not salvaged with default option: +
|
|
|
|
https://btrfs.wiki.kernel.org/index.php/Restore
|
|
|
|
|
2014-04-15 07:04:49 +00:00
|
|
|
OPTIONS
|
|
|
|
-------
|
2015-04-29 16:26:08 +00:00
|
|
|
-s|--snapshots::
|
2016-06-16 16:48:44 +00:00
|
|
|
get also snapshots that are skippped by default
|
2014-04-15 07:04:49 +00:00
|
|
|
|
2015-04-29 16:26:08 +00:00
|
|
|
-x|--xattr::
|
2016-06-16 16:48:44 +00:00
|
|
|
get extended attributes
|
2014-04-15 07:04:49 +00:00
|
|
|
|
2015-04-23 16:50:26 +00:00
|
|
|
-m|--metadata::
|
2016-06-16 16:48:44 +00:00
|
|
|
restore owner, mode and times for files and directories
|
2015-04-23 16:50:26 +00:00
|
|
|
|
2015-04-29 16:06:27 +00:00
|
|
|
-S|--symlinks::
|
2016-06-16 16:48:44 +00:00
|
|
|
restore symbolic links as well as normal files
|
2015-04-29 16:06:27 +00:00
|
|
|
|
2015-04-29 16:26:08 +00:00
|
|
|
-v|--verbose::
|
2016-06-16 16:48:44 +00:00
|
|
|
be verbose and print what is being restored
|
2014-04-15 07:04:49 +00:00
|
|
|
|
2015-04-29 16:26:08 +00:00
|
|
|
-i|--ignore-errors::
|
2016-06-16 16:48:44 +00:00
|
|
|
ignore errors during restoration and continue
|
2014-04-15 07:04:49 +00:00
|
|
|
|
2015-04-29 16:26:08 +00:00
|
|
|
-o|--overwrite::
|
2016-06-16 16:48:44 +00:00
|
|
|
overwrite directories/files in <path>, eg. for repeated runs
|
2014-04-15 07:04:49 +00:00
|
|
|
|
2014-06-19 01:27:09 +00:00
|
|
|
-t <bytenr>::
|
2016-06-16 16:48:44 +00:00
|
|
|
use <bytenr> to read the root tree
|
2014-04-15 07:04:49 +00:00
|
|
|
|
2014-06-19 01:27:09 +00:00
|
|
|
-f <bytenr>::
|
2016-06-16 16:48:44 +00:00
|
|
|
only restore files that are under specified subvolume root pointed by <bytenr>
|
2014-04-15 07:04:49 +00:00
|
|
|
|
2015-04-29 16:26:08 +00:00
|
|
|
-u|--super <mirror>::
|
2016-06-16 16:48:44 +00:00
|
|
|
use given superblock mirror identified by <mirror>, it can be 0,1 or 2
|
2014-04-15 07:04:49 +00:00
|
|
|
|
2015-04-29 16:26:08 +00:00
|
|
|
-r|--root <rootid>::
|
2016-06-16 16:48:44 +00:00
|
|
|
only restore files that are under a specified subvolume whose objectid is <rootid>
|
2014-04-15 07:04:49 +00:00
|
|
|
|
|
|
|
-d::
|
2016-06-16 16:48:44 +00:00
|
|
|
find directory
|
2014-04-15 07:04:49 +00:00
|
|
|
|
2015-04-29 16:26:08 +00:00
|
|
|
-l|--list-roots::
|
2016-06-16 16:48:44 +00:00
|
|
|
list subvolume tree roots, can be used as argument for '-r'
|
2014-04-15 07:04:49 +00:00
|
|
|
|
2014-06-19 01:27:09 +00:00
|
|
|
-D|--dry-run::
|
2016-06-16 16:48:44 +00:00
|
|
|
dry run (only list files that would be recovered)
|
2014-06-19 01:27:09 +00:00
|
|
|
|
|
|
|
--path-regex <regex>::
|
2016-06-16 16:48:44 +00:00
|
|
|
restore only filenames matching a regular expression (`regex`(7)) with a
|
|
|
|
mandatory format
|
2015-01-03 00:37:40 +00:00
|
|
|
+
|
|
|
|
+^/(|home(|/username(|/Desktop(|/.*))))$+
|
2016-06-16 16:48:44 +00:00
|
|
|
+
|
|
|
|
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.
|
2014-06-19 01:27:09 +00:00
|
|
|
|
|
|
|
-c::
|
2016-06-16 16:48:44 +00:00
|
|
|
ignore case (--path-regex only)
|
2014-06-19 01:27:09 +00:00
|
|
|
|
2014-04-15 07:04:49 +00:00
|
|
|
EXIT STATUS
|
|
|
|
-----------
|
2014-09-19 01:49:59 +00:00
|
|
|
*btrfs restore* returns a zero exit status if it succeeds. Non zero is
|
2014-04-15 07:04:49 +00:00
|
|
|
returned in case of failure.
|
|
|
|
|
|
|
|
AVAILABILITY
|
|
|
|
------------
|
2014-05-19 16:04:26 +00:00
|
|
|
*btrfs* is part of btrfs-progs.
|
2014-04-15 07:04:49 +00:00
|
|
|
Please refer to the btrfs wiki http://btrfs.wiki.kernel.org for
|
|
|
|
further details.
|
|
|
|
|
|
|
|
SEE ALSO
|
|
|
|
--------
|
|
|
|
`mkfs.btrfs`(8),
|
|
|
|
`btrfs-rescue`(8),
|
|
|
|
`btrfs-check`(8)
|