diff options
author | Qu Wenruo <quwenruo@cn.fujitsu.com> | 2015-11-02 16:34:19 +0800 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2015-11-02 15:45:52 +0100 |
commit | c328e0db4a6759941d6c44e08aa78e5b1cd16bef (patch) | |
tree | 07193928228adfba7cfdbe01027d21e42aff31b3 | |
parent | b1c222321e096f1dd1284699d9366b10cbfcb636 (diff) | |
download | btrfs-progs-c328e0db4a6759941d6c44e08aa78e5b1cd16bef.tar.gz |
btrfs-progs: show-super: Add option to print superblock at given bytenr
Add '-s <sb_bytenr>' option to show superblock at given bytenr.
This is very useful to debug non-standard btrfs, like debuging the
1st stage btrfs of btrfs-convert.
Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
[ minor updates in docs ]
Signed-off-by: David Sterba <dsterba@suse.com>
-rw-r--r-- | Documentation/btrfs-show-super.asciidoc | 4 | ||||
-rw-r--r-- | btrfs-show-super.c | 7 |
2 files changed, 10 insertions, 1 deletions
diff --git a/Documentation/btrfs-show-super.asciidoc b/Documentation/btrfs-show-super.asciidoc index 1646be3b..8866c940 100644 --- a/Documentation/btrfs-show-super.asciidoc +++ b/Documentation/btrfs-show-super.asciidoc @@ -40,6 +40,10 @@ If several '-i <super_mirror>' are given, only the last one is valid. Attempt to print the superblock even if no superblock magic is found. May end badly. +-s <bytenr>:: +specifiy offset to a superblock in a non-standard location at 'bytenr', useful +for debugging (disables the '-f' option) + EXIT STATUS ----------- *btrfs-show-super* will return 0 if no error happened. diff --git a/btrfs-show-super.c b/btrfs-show-super.c index 27414c88..d8ad69e2 100644 --- a/btrfs-show-super.c +++ b/btrfs-show-super.c @@ -48,6 +48,7 @@ static void print_usage(void) fprintf(stderr, "\t-a : print information of all superblocks\n"); fprintf(stderr, "\t-i <super_mirror> : specify which mirror to print out\n"); fprintf(stderr, "\t-F : attempt to dump superblocks with bad magic\n"); + fprintf(stderr, "\t-s <bytenr> : specify alternate superblock offset\n"); fprintf(stderr, "%s\n", PACKAGE_STRING); } @@ -63,7 +64,7 @@ int main(int argc, char **argv) u64 arg; u64 sb_bytenr = btrfs_sb_offset(0); - while ((opt = getopt(argc, argv, "fFai:")) != -1) { + while ((opt = getopt(argc, argv, "fFai:s:")) != -1) { switch (opt) { case 'i': arg = arg_strtou64(optarg); @@ -86,6 +87,10 @@ int main(int argc, char **argv) case 'F': force = 1; break; + case 's': + sb_bytenr = arg_strtou64(optarg); + all = 0; + break; default: print_usage(); exit(1); |