mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git
synced 2024-11-16 08:44:31 +08:00
btrfs-progs: dump-super: changes in options to specify superblocks
Some tools (check, select-super, dump-super) can use the alternate superblocks, but the options are not consistent. To make it less confusing, change the meaning of option -s in 'dump-super' to specify the superblock copy, instead of taking the offset. Though this is a change in UI, the old usage is detected and the result would be the same, no breakage in existing scripts. Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
bde687343b
commit
a5bd848719
@ -30,25 +30,36 @@ Besides verifictaion of the filesystem signature, there are no other sanity
|
|||||||
checks. The superblock checksum status is reported, the device item and
|
checks. The superblock checksum status is reported, the device item and
|
||||||
filesystem UUIDs are checked and reported.
|
filesystem UUIDs are checked and reported.
|
||||||
+
|
+
|
||||||
|
NOTE: the meaning of option '-s' has changed in version 4.8 to be consistent
|
||||||
|
with other tools to specify superblock copy rather the offset. The old way still
|
||||||
|
works, but prints a warning. Please update your scripts to use '--bytenr'
|
||||||
|
instead. The option '-i' has been deprecated.
|
||||||
|
+
|
||||||
`Options`
|
`Options`
|
||||||
+
|
+
|
||||||
-f|--full::::
|
-f|--full::::
|
||||||
print full superblock information, including the system chunk array and backup roots
|
print full superblock information, including the system chunk array and backup roots
|
||||||
-a|--all::::
|
-a|--all::::
|
||||||
print information about all present superblock copies (cannot be used together with '-i' option)
|
print information about all present superblock copies (cannot be used together
|
||||||
-i <super_mirror>::::
|
with '-s' option)
|
||||||
specify which mirror to print, valid values are 0, 1 and 2 and the superblock must be present on the device
|
-i <super>::::
|
||||||
+
|
(deprecated since 4.8, same behaviour as '--super')
|
||||||
If there are multiple options specified, only the last one is applies.
|
--bytenr <bytenr>::::
|
||||||
+
|
|
||||||
-F|--force::::
|
|
||||||
attempt to print the superblock even if thre's no valid BTRFS signature found
|
|
||||||
+
|
|
||||||
The result may be completely wrong if the data do not resemble a superblock.
|
|
||||||
+
|
|
||||||
-s <bytenr>::::
|
|
||||||
specify offset to a superblock in a non-standard location at 'bytenr', useful
|
specify offset to a superblock in a non-standard location at 'bytenr', useful
|
||||||
for debugging (disables the '-f' option)
|
for debugging (disables the '-f' option)
|
||||||
|
+
|
||||||
|
If there are multiple options specified, only the last one applies.
|
||||||
|
+
|
||||||
|
-F|--force::::
|
||||||
|
attempt to print the superblock even if thre's no valid BTRFS signature found,
|
||||||
|
the result may be completely wrong if the data do not resemble a superblock
|
||||||
|
+
|
||||||
|
-s|--super <bytenr>::::
|
||||||
|
(see compatibility note above)
|
||||||
|
+
|
||||||
|
specify which mirror to print, valid values are 0, 1 and 2 and the superblock
|
||||||
|
must be present on the device with a valid signature, can be used together with
|
||||||
|
'--force'
|
||||||
|
|
||||||
*dump-tree* [options] <device>::
|
*dump-tree* [options] <device>::
|
||||||
(replaces the standalone tool *btrfs-debug-tree*)
|
(replaces the standalone tool *btrfs-debug-tree*)
|
||||||
|
@ -458,11 +458,18 @@ static int load_and_dump_sb(char *filename, int fd, u64 sb_bytenr, int full,
|
|||||||
const char * const cmd_inspect_dump_super_usage[] = {
|
const char * const cmd_inspect_dump_super_usage[] = {
|
||||||
"btrfs inspect-internal dump-super [options] device [device...]",
|
"btrfs inspect-internal dump-super [options] device [device...]",
|
||||||
"Dump superblock from a device in a textual form",
|
"Dump superblock from a device in a textual form",
|
||||||
"-f|--full print full superblock information",
|
"-f|--full print full superblock information, backup roots etc.",
|
||||||
"-a|--all print information about all superblocks",
|
"-a|--all print information about all superblocks",
|
||||||
"-i <super_mirror> specify which mirror to print out",
|
"-s|--super <super> specify which copy to print out (values: 0, 1, 2)",
|
||||||
"-F|--force attempt to dump superblocks with bad magic",
|
"-F|--force attempt to dump superblocks with bad magic",
|
||||||
"-s <bytenr> specify alternate superblock offset",
|
"--bytenr <offset> specify alternate superblock offset",
|
||||||
|
"",
|
||||||
|
"Deprecated syntax:",
|
||||||
|
"-s <bytenr> specify alternate superblock offset, values other than 0, 1, 2",
|
||||||
|
" will be interpreted as --bytenr for backward compatibility,",
|
||||||
|
" option renamed for consistency with other tools (eg. check)",
|
||||||
|
"-i <super> specify which copy to print out (values: 0, 1, 2), now moved",
|
||||||
|
" to -s|--super",
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -484,6 +491,7 @@ int cmd_inspect_dump_super(int argc, char **argv)
|
|||||||
{"all", no_argument, NULL, 'a'},
|
{"all", no_argument, NULL, 'a'},
|
||||||
{"full", no_argument, NULL, 'f'},
|
{"full", no_argument, NULL, 'f'},
|
||||||
{"force", no_argument, NULL, 'F'},
|
{"force", no_argument, NULL, 'F'},
|
||||||
|
{"super", required_argument, NULL, 's' },
|
||||||
{NULL, 0, NULL, 0}
|
{NULL, 0, NULL, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -493,11 +501,13 @@ int cmd_inspect_dump_super(int argc, char **argv)
|
|||||||
|
|
||||||
switch (c) {
|
switch (c) {
|
||||||
case 'i':
|
case 'i':
|
||||||
|
warning(
|
||||||
|
"option -i is deprecated, please use -s or --super");
|
||||||
arg = arg_strtou64(optarg);
|
arg = arg_strtou64(optarg);
|
||||||
if (arg >= BTRFS_SUPER_MIRROR_MAX) {
|
if (arg >= BTRFS_SUPER_MIRROR_MAX) {
|
||||||
error("super mirror too big: %llu >= %d",
|
error("super mirror too big: %llu >= %d",
|
||||||
arg, BTRFS_SUPER_MIRROR_MAX);
|
arg, BTRFS_SUPER_MIRROR_MAX);
|
||||||
usage(cmd_inspect_dump_super_usage);
|
return 1;
|
||||||
}
|
}
|
||||||
sb_bytenr = btrfs_sb_offset(arg);
|
sb_bytenr = btrfs_sb_offset(arg);
|
||||||
break;
|
break;
|
||||||
@ -512,7 +522,15 @@ int cmd_inspect_dump_super(int argc, char **argv)
|
|||||||
force = 1;
|
force = 1;
|
||||||
break;
|
break;
|
||||||
case 's':
|
case 's':
|
||||||
sb_bytenr = arg_strtou64(optarg);
|
arg = arg_strtou64(optarg);
|
||||||
|
if (BTRFS_SUPER_MIRROR_MAX <= arg) {
|
||||||
|
warning(
|
||||||
|
"deprecated use of -s <bytenr> with %llu, assuming --bytenr",
|
||||||
|
(unsigned long long)arg);
|
||||||
|
sb_bytenr = arg;
|
||||||
|
} else {
|
||||||
|
sb_bytenr = btrfs_sb_offset(arg);
|
||||||
|
}
|
||||||
all = 0;
|
all = 0;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
Loading…
Reference in New Issue
Block a user