btrfs-inspect-internal(8)
=========================

NAME
----
btrfs-inspect-internal - query various internal information

SYNOPSIS
--------
*btrfs inspect-internal* <subcommand> <args>

DESCRIPTION
-----------

This command group provides an interface to query internal information. The
functionality ranges from a simple UI to an ioctl or a more complex query that
assembles the result from several internal structures. The latter usually
requires calls to privileged ioctls.

SUBCOMMAND
----------
*dump-tree* [options] <device>::
(may need root privileges to access the device)
+
Dump tree structures from a given device in textual form, expand keys to human
readable equivalents where possible.
This is useful for analyzing filesystem state or inconsistencies and has
a positive educational effect on understanding the internal filesystem structure.
+
NOTE: contains file names, consider that if you're asked to send the dump for
analysis. Does not contain file data.
+
`Options`
+
-e|--extents::::
print only extent-related information: extent and device trees
-d|--device::::
print only device-related information: tree root, chunk and device trees
-r|--roots::::
print only short root node information, ie. the root tree keys
-R|--backups::::
same as --roots plus print backup root info, ie. the backup root keys and
the respective tree root block offset
-u|--uuid::::
print only the uuid tree information, empty output if the tree does not exist
-b <block_num>::::
print info of the specified block only
-t <tree_id>::::
print only the tree with the specified ID, where the ID can be numerical or
common name in a flexible human readable form
+
The tree id name recognition rules:
[options="compact"]
* case does not matter
* the C source definition, eg. BTRFS_ROOT_TREE_OBJECTID
* short forms without BTRFS_ prefix, without _TREE and _OBJECTID suffix, eg. ROOT_TREE, ROOT
* convenience aliases, eg. DEVICE for the DEV tree, CHECKSUM for CSUM
* unrecognized ID is an error

*inode-resolve* [-v] <ino> <path>::
(needs root privileges)
+
resolve paths to all files with given inode number 'ino' in a given subvolume
at 'path', ie. all hardlinks
+
`Options`
+
-v::::
verbose mode, print count of returned paths and ioctl() return value

*logical-resolve* [-Pv] [-s <bufsize>] <logical> <path>::
(needs root privileges)
+
resolve paths to all files at given 'logical' address in the linear filesystem space
+
`Options`
+
-P::::
skip the path resolving and print the inodes instead
-v::::
verbose mode, print count of returned paths and all ioctl() return values
-s <bufsize>::::
set internal buffer for storing the file names to 'bufsize', default is 4096, maximum 64k

*min-dev-size* [options] <path>::
(needs root privileges)
+
return the minimum size the device can be shrunk to, without performing any
resize operation, this may be useful before executing the actual resize operation
+
`Options`
+
--id <id>::::
specify the device 'id' to query, default is 1 if this option is not used

*rootid* <path>::
for a given file or directory, return the containing tree root id, for a
subvolume itself return it's own tree id (ie. subvol id)
+
NOTE: The result is undefined for the so-called empty subvolumes (identified by
inode number 2), but such subvolume does not contain any files anyway

*show-super* [options] <device> [device...]::
(needs root privileges)
+
Show btrfs superblock information stored in devices.
It is used to print the information of superblock,
you can specify which mirror to print out.
+
By default, every device's first superblock will be printed out.
+
Mainly used for debug purpose.
+
`Options`
+
-f::::
Print full superblock information.
+
Including the system chunk array and backup roots.
+
-a::::
Print information of all superblocks.
+
If this option is given, '-i' option will be ignored.
+
-i <super_mirror>::::
Specify which mirror to print out.
+
<super_mirror> is between 0 and 2.
If several '-i <super_mirror>' are given, only the last one is valid.
+
-F::::
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)

*subvolid-resolve* <subvolid> <path>::
(needs root privileges)
+
resolve the absolute path of a the subvolume id 'subvolid'

EXIT STATUS
-----------
*btrfs inspect-internal* returns a zero exit status if it succeeds. Non zero is
returned in case of failure.

AVAILABILITY
------------
*btrfs* is part of btrfs-progs.
Please refer to the btrfs wiki http://btrfs.wiki.kernel.org for
further details.

SEE ALSO
--------
`mkfs.btrfs`(8),
`btrfs-debug-tree`(8)
