home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / a_man / cat1 / xfs_db.z / xfs_db
Encoding:
Text File  |  2002-10-03  |  72.0 KB  |  1,123 lines

  1.  
  2.  
  3.  
  4. xxxxffffssss____ddddbbbb((((1111MMMM))))                                                          xxxxffffssss____ddddbbbb((((1111MMMM))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      xfs_db, xfs_db64 - debug an XFS filesystem
  10.  
  11. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  12.      xxxxffffssss____ddddbbbb [ ----cccc cmd ] ... [ ----pppp prog ] [ ----rrrr ] [ ----xxxx ] xfs_special
  13.  
  14.      xxxxffffssss____ddddbbbb ----ffff [ ----cccc cmd ] ... [ ----pppp prog ] [ ----ffff ] [ ----rrrr ] [ ----xxxx ] file
  15.  
  16.      xxxxffffssss____ddddbbbb66664444 [ ----cccc cmd ] ... [ ----pppp prog ] [ ----ffff ] [ ----rrrr ] [ ----xxxx ] xfs_special
  17.  
  18.      xxxxffffssss____ddddbbbb66664444 ----ffff [ ----cccc cmd ] ... [ ----pppp prog ] [ ----rrrr ] [ ----xxxx ] file
  19.  
  20. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  21.      _x_f_s__d_b is used to examine an XFS filesystem.  Under rare circumstances it
  22.      can also be used to modify an XFS filesystem, but that task is normally
  23.      left to _x_f_s__r_e_p_a_i_r(1M) or to scripts such as _x_f_s__c_h_v_e_r that run _x_f_s__d_b.
  24.  
  25.      _x_f_s__d_b_6_4 is a 64-bit version of _x_f_s__d_b which is not as susceptible to
  26.      running out of memory.  It is available only on 64-bit capable systems.
  27.  
  28.      The options to _x_f_s__d_b are:
  29.  
  30.      ----cccc _c_m_d    _x_f_s__d_b commands may be run interactively (the default) or as
  31.                arguments on the command line.  Multiple ----cccc arguments may be
  32.                given.  The commands are run in the sequence given, then the
  33.                program exits.  This is the mechanism used to implement
  34.                _x_f_s__c_h_e_c_k(1M).
  35.  
  36.      ----ffff        Specifies that the filesystem image to be processed is stored
  37.                in a regular file (see the _m_k_f_s__x_f_s ----dddd _f_i_l_e option).  This
  38.                might happen if an image copy of a filesystem has been made
  39.                into an ordinary file with _x_f_s__c_o_p_y(1M).
  40.  
  41.      ----pppp _p_r_o_g   Set the program name for prompts and some error messages, the
  42.                default value is _x_f_s__d_b or _x_f_s__d_b_6_4.
  43.  
  44.      ----rrrr        Open _f_i_l_e or _x_f_s__s_p_e_c_i_a_l read-only.  This option is required if
  45.                _x_f_s__s_p_e_c_i_a_l is a mounted filesystem.  It is only necessary to
  46.                omit this flag if a command that changes data (wwwwrrrriiiitttteeee,
  47.                bbbblllloooocccckkkkttttrrrraaaasssshhhh) is to be used.
  48.  
  49.      ----xxxx        Specifies expert mode.  This enables the wwwwrrrriiiitttteeee command.
  50.  
  51. CCCCOOOONNNNCCCCEEEEPPPPTTTTSSSS
  52.      _x_f_s__d_b commands can be broken up into two classes.  Most commands are for
  53.      the navigation and display of data structures in the filesystem.  Other
  54.      commands are for scanning the filesystem in some way.
  55.  
  56.      Commands which are used to navigate the filesystem structure take
  57.      arguments which reflect the names of filesystem structure fields.  There
  58.      can be multiple field names separated by dots when the underlying
  59.      structures are nested, as in C.  The field names can be indexed (as an
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. xxxxffffssss____ddddbbbb((((1111MMMM))))                                                          xxxxffffssss____ddddbbbb((((1111MMMM))))
  71.  
  72.  
  73.  
  74.      array index) if the underlying field is an array.  The array indices can
  75.      be specified as a range, two numbers separated by a dash.
  76.  
  77.      _x_f_s__d_b maintains a current address in the filesystem.  The granularity of
  78.      the address is a filesystem structure.  This can be a filesystem block,
  79.      an inode or quota (smaller than a filesystem block), or a directory block
  80.      (could be larger than a filesystem block).  There are a variety of
  81.      commands to set the current address.  Associated with the current address
  82.      is the current data type, which is the structural type of this data.
  83.      Commands which follow the structure of the filesystem always set the type
  84.      as well as the address.  Commands which examine pieces of an individual
  85.      file (inode) need the current inode to be set, this is done with the
  86.      iiiinnnnooooddddeeee command.
  87.  
  88.      The current address/type information is actually maintained in a stack
  89.      that can be explicitly manipulated with the ppppuuuusssshhhh, ppppoooopppp, and ssssttttaaaacccckkkk
  90.      commands.  This allows for easy examination of a nested filesystem
  91.      structure.  Also, the last several locations visited are stored in a ring
  92.      buffer which can be manipulated with the ffffoooorrrrwwwwaaaarrrrdddd, bbbbaaaacccckkkk,,,, aaaannnndddd rrrriiiinnnngggg
  93.      commands.
  94.  
  95.      XFS filesystems are divided into a small number of allocation groups.
  96.      _x_f_s__d_b maintains a notion of the current allocation group which is
  97.      manipulated by some commands.  The initial allocation group is 0.
  98.  
  99. CCCCOOOOMMMMMMMMAAAANNNNDDDDSSSS
  100.      Many commands have extensive online help.  Use the hhhheeeellllpppp command for more
  101.      details on any command.
  102.  
  103.      aaaa         See the aaaaddddddddrrrr command.
  104.  
  105.      aaaabbbblllloooocccckkkk _f_i_l_o_f_f
  106.                Set current address to the offset _f_i_l_o_f_f (a filesystem block
  107.                number) in the attribute area of the current inode.
  108.  
  109.      aaaaddddddddrrrr [ _f_i_e_l_d-_e_x_p_r_e_s_s_i_o_n ]
  110.                Set current address to the value of the _f_i_e_l_d-_e_x_p_r_e_s_s_i_o_n.  This
  111.                is used to ``follow'' a reference in one structure to the
  112.                object being referred to.  If no argument is given the current
  113.                address is printed.
  114.  
  115.      aaaaggggffff [ _a_g_n_o ]
  116.                Set current address to the AGF block for allocation group _a_g_n_o.
  117.                If no argument is given use the current allocation group.
  118.  
  119.      aaaaggggffffllll [ _a_g_n_o ]
  120.                Set current address to the AGFL block for allocation group
  121.                _a_g_n_o.  If no argument is given use the current allocation
  122.                group.
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. xxxxffffssss____ddddbbbb((((1111MMMM))))                                                          xxxxffffssss____ddddbbbb((((1111MMMM))))
  137.  
  138.  
  139.  
  140.      aaaaggggiiii [ _a_g_n_o ]
  141.                Set current address to the AGI block for allocation group _a_g_n_o.
  142.                If no argument is given use the current allocation group.
  143.  
  144.      bbbb         See the bbbbaaaacccckkkk command.
  145.  
  146.      bbbbaaaacccckkkk      Move to the previous location in the position ring.
  147.  
  148.      bbbblllloooocccckkkkffffrrrreeeeeeee Free block usage information collected by the last execution of
  149.                the bbbblllloooocccckkkkggggeeeetttt command.  This must be done before another
  150.                bbbblllloooocccckkkkggggeeeetttt command can be given, presumably with different
  151.                arguments than the previous one.
  152.  
  153.      bbbblllloooocccckkkkggggeeeetttt [ ----nnnnppppssssvvvv ] [ ----bbbb _b_n_o ] ... [ ----iiii _i_n_o ] ...
  154.                Get block usage and check filesystem consistency.  The
  155.                information is saved for use by a subsequent bbbblllloooocccckkkkuuuusssseeee, nnnncccchhhheeeecccckkkk,
  156.                or bbbblllloooocccckkkkttttrrrraaaasssshhhh command.  See _x_f_s__c_h_e_c_k(1M) for more information.
  157.                The ----bbbb option is used to specify filesystem block numbers about
  158.                which verbose information should be printed.
  159.                The ----iiii option is used to specify inode numbers about which
  160.                verbose information should be printed.
  161.                The ----nnnn option is used to save pathnames for inodes visited,
  162.                this is used to support the _x_f_s__n_c_h_e_c_k(1M) command.  It also
  163.                means that pathnames will be printed for inodes that have
  164.                problems.  This option uses a lot of memory so is not enabled
  165.                by default.
  166.                The ----pppp option causes error messages to be prefixed with the
  167.                filesystem name being processed.  This is useful if several
  168.                copies of _x_f_s__d_b are run in parallel.
  169.                The ----ssss option restricts output to severe errors only.  This is
  170.                useful if the output is too long otherwise.
  171.                The ----vvvv option enables verbose output.  Messages will be printed
  172.                for every block and inode processed.
  173.  
  174.      bbbblllloooocccckkkkttttrrrraaaasssshhhh [ ----nnnn _c ] [ ----xxxx _a ] [ ----yyyy _b ] [ ----ssss _s ] [ ----0000111122223333 ] [ ----tttt _t ] ...
  175.                Trash randomly selected filesystem metadata blocks.  Trashing
  176.                occurs to randomly selected bits in the chosen blocks.  This
  177.                command is available only in debugging versions of _x_f_s__d_b.  It
  178.                is useful for testing _x_f_s__r_e_p_a_i_r(1M) and _x_f_s__c_h_e_c_k(1M).
  179.                The ----0000, ----1111, ----2222, and ----3333 options (mutually exclusive) set the
  180.                operating mode for bbbblllloooocccckkkkttttrrrraaaasssshhhh.  In ----0000 mode, changed bits are
  181.                cleared.  In ----1111 mode, changed bits are set.  In ----2222 mode,
  182.                changed bits are inverted.  In ----3333 mode, changed bits are
  183.                randomized.
  184.                The ----nnnn option supplies the count of block-trashings to perform
  185.                (default 1).
  186.                The ----ssss option supplies a seed to the random processing.
  187.                The ----tttt option gives a type of blocks to be selected for
  188.                trashing.  Multiple ----tttt options may be given.  If no ----tttt options
  189.                are given then all metadata types can be trashed.
  190.                The ----xxxx option sets the minimum size of bit range to be trashed.
  191.                The default value is 1.
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. xxxxffffssss____ddddbbbb((((1111MMMM))))                                                          xxxxffffssss____ddddbbbb((((1111MMMM))))
  203.  
  204.  
  205.  
  206.                The ----yyyy option sets the maximum size of bit range to be trashed.
  207.                The default value is 1024.
  208.  
  209.      bbbblllloooocccckkkkuuuusssseeee [ ----nnnn ] [ ----cccc _b_l_o_c_k_c_o_u_n_t ]
  210.                Print usage for current filesystem block(s).  For each block,
  211.                the type and (if any) inode are printed.
  212.                The ----cccc option specifies a count of blocks to process.  The
  213.                default value is 1 (the current block only).
  214.                The ----nnnn option specifies that file names should be printed.  The
  215.                prior bbbblllloooocccckkkkggggeeeetttt command must have also specified the ----nnnn option.
  216.  
  217.      bbbbmmmmaaaapppp [ ----aaaa ] [ ----dddd ] [ _b_l_o_c_k [ _l_e_n ] ]
  218.                Show the block map for the current inode.  The map display can
  219.                be restricted to an area of the file with the _b_l_o_c_k and _l_e_n
  220.                arguments.  If _b_l_o_c_k is given and _l_e_n is omitted then 1 is
  221.                assumed for len.
  222.                The ----aaaa and ----dddd options are used to select the attribute or data
  223.                area of the inode, if neither option is given then both areas
  224.                are shown.
  225.  
  226.      cccchhhheeeecccckkkk     See the bbbblllloooocccckkkkggggeeeetttt command.
  227.  
  228.      ccccoooonnnnvvvveeeerrrrtttt _t_y_p_e _n_u_m_b_e_r [ _t_y_p_e _n_u_m_b_e_r ] ... _t_y_p_e
  229.                Convert from one address form to another.  The known _t_y_p_es,
  230.                with alternate names, are:  aaaaggggbbbblllloooocccckkkk or aaaaggggbbbbnnnnoooo (filesystem block
  231.                within an allocation group), aaaaggggiiiinnnnoooo or aaaaggggiiiinnnnooooddddeeee (inode number
  232.                within an allocation group), aaaaggggnnnnuuuummmmbbbbeeeerrrr or aaaaggggnnnnoooo (allocation group
  233.                number), bbbbbbbbooooffffffff or ddddaaaaddddddddrrrrooooffffffff (byte offset in a ddddaaaaddddddddrrrr), bbbbllllkkkkooooffffffff or
  234.                ffffssssbbbbooooffffffff or aaaaggggbbbbooooffffffff (byte offset in a aaaaggggbbbblllloooocccckkkk or ffffssssbbbblllloooocccckkkk), bbbbyyyytttteeee or
  235.                ffffssssbbbbyyyytttteeee (byte address in filesystem), ddddaaaaddddddddrrrr or bbbbbbbb (disk address,
  236.                512-byte blocks), ffffssssbbbblllloooocccckkkk or ffffssssbbbb or ffffssssbbbbnnnnoooo (filesystem block,
  237.                see the ffffssssbbbblllloooocccckkkk command), iiiinnnnoooo or iiiinnnnooooddddeeee (inode number), iiiinnnnooooiiiiddddxxxx
  238.                or ooooffffffffsssseeeetttt (index of inode in filesystem block), and iiiinnnnooooooooffffffff or
  239.                iiiinnnnooooddddeeeeooooffffffff (byte offset in inode).  Only conversions that ``make
  240.                sense'' are allowed.  The compound form (with more than three
  241.                arguments) is useful for conversions such as ccccoooonnnnvvvveeeerrrrtttt aaaaggggnnnnoooo _a_g
  242.                aaaaggggbbbbnnnnoooo _a_g_b ffffssssbbbblllloooocccckkkk.
  243.  
  244.      ddddaaaaddddddddrrrr [ _d ]
  245.                Set current address to the daddr (512 byte block) given by _d.
  246.                If no value for _d is given the current address is printed,
  247.                expressed as a daddr.  The type is set to ddddaaaattttaaaa (uninterpreted).
  248.  
  249.      ddddbbbblllloooocccckkkk _f_i_l_o_f_f
  250.                Set current address to the offset _f_i_l_o_f_f (a filesystem block
  251.                number) in the data area of the current inode.
  252.  
  253.      ddddeeeebbbbuuuugggg [ _f_l_a_g_b_i_t_s ]
  254.                Set debug option bits.  These are used for debugging _x_f_s__d_b.
  255.                If no value is given for _f_l_a_g_b_i_t_s, print the current debug
  256.                option bits.  These are for the use of the implementor.
  257.  
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. xxxxffffssss____ddddbbbb((((1111MMMM))))                                                          xxxxffffssss____ddddbbbb((((1111MMMM))))
  269.  
  270.  
  271.  
  272.      ddddqqqquuuuooootttt [ _p_r_o_j_e_c_t_i_d__o_r__u_s_e_r_i_d ]
  273.                Set current address to a project or user quota block.
  274.  
  275.      eeeecccchhhhoooo [ _a_r_g ] ...
  276.                Echo the arguments to the output.
  277.  
  278.      ffff         See the ffffoooorrrrwwwwaaaarrrrdddd command.
  279.  
  280.      ffffoooorrrrwwwwaaaarrrrdddd   Move forward to the next entry in the position ring.
  281.  
  282.      ffffrrrraaaagggg [ ----aaaaddddffffllllqqqqRRRRrrrrvvvv ]
  283.                Get file fragmentation data.  This prints information about
  284.                fragmentation of file data in the filesystem (as opposed to
  285.                fragmentation of freespace, for which see the ffffrrrreeeeeeeesssspppp command).
  286.                Every file in the filesystem is examined to see how far from
  287.                ideal its extent mappings are.  A summary is printed giving the
  288.                totals.
  289.                The ----vvvv option sets verbosity, every inode has information
  290.                printed for it.  The remaining options select which inodes and
  291.                extents are examined.  If no options are given then all are
  292.                assumed set, otherwise just those given are enabled.
  293.                The ----aaaa option enables processing of attribute data.
  294.                The ----dddd option enables processing of directory data.
  295.                The ----ffff option enables processing of regular file data.
  296.                The ----llll option enables processing of symbolic link data.
  297.                The ----qqqq option enables processing of quota file data.
  298.                The ----RRRR option enables processing of realtime control file data.
  299.                The ----rrrr option enables processing of realtime file data.
  300.  
  301.      ffffrrrreeeeeeeesssspppp [ ----bbbbccccddddssss ] [ ----aaaa _a ] ... [ ----eeee _i ] [ ----hhhh _h_1 ] ... [ ----mmmm _m ]
  302.                Summarize free space for the filesystem.  The free blocks are
  303.                examined and totaled, and displayed in the form of a histogram,
  304.                with a count of extents in each range of free extent sizes.
  305.                The ----aaaa _a option adds _a to the list of allocation groups to be
  306.                processed.  If no ----aaaa options are given then all allocation
  307.                groups are processed.
  308.                The ----bbbb option specifies that the histogram buckets are binary-
  309.                sized, with the starting sizes being the powers of 2.
  310.                The ----cccc option specifies that ffffrrrreeeeeeeesssspppp will search the by-size
  311.                (cnt) space Btree instead of the default by-block (bno) space
  312.                Btree.
  313.                The ----dddd option specifies that every free extent will be
  314.                displayed.
  315.                The ----eeee _i option specifies that the histogram buckets are
  316.                equal-sized, with the size specified as _i.
  317.                The ----hhhh _h_1 option specifies a starting block number for a
  318.                histogram bucket as _h_1.  Multiple ----hhhh options are given to
  319.                specify the complete set of buckets.
  320.                The ----mmmm _m option specifies that the histogram starting block
  321.                numbers are powers of _m.  This is the general case of ----bbbb.
  322.                The ----ssss option specifies that a final summary of total free
  323.                extents, free blocks, and the average free extent size is
  324.  
  325.  
  326.  
  327.                                                                         PPPPaaaaggggeeee 5555
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334. xxxxffffssss____ddddbbbb((((1111MMMM))))                                                          xxxxffffssss____ddddbbbb((((1111MMMM))))
  335.  
  336.  
  337.  
  338.                printed.
  339.  
  340.      ffffssssbbbb       See the ffffssssbbbblllloooocccckkkk command.
  341.  
  342.      ffffssssbbbblllloooocccckkkk [ _f_s_b ]
  343.                Set current address to the fsblock value given by _f_s_b.  If no
  344.                value for _f_s_b is given the current address is printed,
  345.                expressed as an fsb.  The type is set to ddddaaaattttaaaa (uninterpreted).
  346.                XFS filesystem block numbers are computed ((_a_g_n_o << _a_g_s_h_i_f_t) |
  347.                _a_g_b_l_o_c_k) where _a_g_s_h_i_f_t depends on the size of an allocation
  348.                group.  Use the ccccoooonnnnvvvveeeerrrrtttt command to convert to and from this
  349.                form.  Block numbers given for file blocks (for instance from
  350.                the bbbbmmmmaaaapppp command) are in this form.
  351.  
  352.      hhhhaaaasssshhhh _s_t_r_i_n_g
  353.                Prints the hash value of _s_t_r_i_n_g using the hash function of the
  354.                XFS directory and attribute implementation.
  355.  
  356.      hhhheeeellllpppp [ _c_o_m_m_a_n_d ]
  357.                Print help for one or all commands.
  358.  
  359.      iiiinnnnooooddddeeee [ _i_n_o_d_e# ]
  360.                Set the current inode number.  If no _i_n_o_d_e# is given, print the
  361.                current inode number.
  362.  
  363.      lllloooogggg [ ssssttttoooopppp | ssssttttaaaarrrrtttt _f_i_l_e_n_a_m_e ]
  364.                Start logging output to _f_i_l_e_n_a_m_e, stop logging, or print the
  365.                current logging status.
  366.  
  367.      nnnncccchhhheeeecccckkkk [ ----ssss ] [ ----iiii _i_n_o ] ...
  368.                Print name-inode pairs.  A bbbblllloooocccckkkkggggeeeetttt ----nnnn command must be run
  369.                first to gather the information.
  370.                The ----iiii option specifies an inode number to be printed.  If no
  371.                ----iiii options are given then all inodes are printed.
  372.                The ----ssss option specifies that only setuid and setgid files are
  373.                printed.
  374.  
  375.      pppp         See the pppprrrriiiinnnntttt command.
  376.  
  377.      ppppoooopppp       Pop location from the stack.
  378.  
  379.      pppprrrriiiinnnntttt [ _f_i_e_l_d-_e_x_p_r_e_s_s_i_o_n ] ...
  380.                Print field values.  If no argument is given, print all fields
  381.                in the current structure.
  382.  
  383.      ppppuuuusssshhhh [ _c_o_m_m_a_n_d ]
  384.                Push location to the stack.  If _c_o_m_m_a_n_d is supplied, set the
  385.                current location to the results of _c_o_m_m_a_n_d after pushing the
  386.                old location.
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.                                                                         PPPPaaaaggggeeee 6666
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400. xxxxffffssss____ddddbbbb((((1111MMMM))))                                                          xxxxffffssss____ddddbbbb((((1111MMMM))))
  401.  
  402.  
  403.  
  404.      qqqq         See the qqqquuuuiiiitttt command.
  405.  
  406.      qqqquuuuiiiitttt      Exit _x_f_s__d_b.
  407.  
  408.      rrrriiiinnnngggg [ _i_n_d_e_x ]
  409.                Show position ring (if no _i_n_d_e_x argument is given), or move to
  410.                a specific entry in the position ring given by _i_n_d_e_x.
  411.  
  412.      ssssbbbb [ _a_g_n_o ]
  413.                Set current address to SB header in allocation group _a_g_n_o.  If
  414.                no _a_g_n_o is given use the current allocation group number.
  415.  
  416.      ssssoooouuuurrrrcccceeee _s_o_u_r_c_e-_f_i_l_e
  417.                Process commands from _s_o_u_r_c_e-_f_i_l_e.  ssssoooouuuurrrrcccceeee commands can be
  418.                nested.
  419.  
  420.      ssssttttaaaacccckkkk     View the location stack.
  421.  
  422.      ttttyyyyppppeeee [ _t_y_p_e ]
  423.                Set the current data type to _t_y_p_e.  If no argument is given,
  424.                show the current data type.  The possible data types are:  aaaaggggffff,
  425.                aaaaggggffffllll, aaaaggggiiii, aaaattttttttrrrr, bbbbmmmmaaaappppbbbbttttaaaa, bbbbmmmmaaaappppbbbbttttdddd, bbbbnnnnoooobbbbtttt, ccccnnnnttttbbbbtttt, ddddaaaattttaaaa, ddddiiiirrrr,
  426.                ddddiiiirrrr2222, ddddqqqqbbbbllllkkkk, iiiinnnnoooobbbbtttt, iiiinnnnooooddddeeee, lllloooogggg, rrrrttttbbbbiiiittttmmmmaaaapppp, rrrrttttssssuuuummmmmmmmaaaarrrryyyy, ssssbbbb, and
  427.                ssssyyyymmmmlllliiiinnnnkkkk.  See the TYPES section below for more information on
  428.                these data types.
  429.  
  430.      uuuuuuuuiiiidddd [ _n_e_w-_u_u_i_d | _g_e_n_e_r_a_t_e | _r_e_w_r_i_t_e ]
  431.                Display or write the filesystem UUID.  If no argument is given,
  432.                show the current UUID. If a UUID is specified, write the new
  433.                UUID to all superbolocks. If _g_e_n_e_r_a_t_e is specified, a new UUID
  434.                is generated. If _r_e_w_r_i_t_e is specified, the UUID in the first
  435.                superblock is copied to all other superblocks.
  436.  
  437.      wwwwrrrriiiitttteeee [ _f_i_e_l_d _o_r _v_a_l_u_e ] ...
  438.                Write a value to disk.  Specific fields can be set in
  439.                structures (struct mode), or a block can be set to data values
  440.                (data mode), or a block can be set to string values (string
  441.                mode, for symlink blocks).  The operation happens immediately:
  442.                there is no buffering.
  443.                Struct mode is in effect when the current type is structural,
  444.                i.e. not data.  For struct mode, the syntax is ``wwwwrrrriiiitttteeee _f_i_e_l_d
  445.                _v_a_l_u_e''.
  446.                Data mode is in effect when the current type is data.  In this
  447.                case the contents of the block can be shifted or rotated left
  448.                or right, or filled with a sequence, a constant value, or a
  449.                random value.  In this mode wwwwrrrriiiitttteeee with no arguments gives more
  450.                information on the allowed commands.
  451.  
  452. TTTTYYYYPPPPEEEESSSS
  453.      This section gives the fields in each structure type and their meanings.
  454.      Note that some types of block cover multiple actual structures, for
  455.      instance directory blocks.
  456.  
  457.  
  458.  
  459.                                                                         PPPPaaaaggggeeee 7777
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466. xxxxffffssss____ddddbbbb((((1111MMMM))))                                                          xxxxffffssss____ddddbbbb((((1111MMMM))))
  467.  
  468.  
  469.  
  470.      aaaaggggffff       The AGF block is the header for block allocation information;
  471.                it is in the second 512-byte block of each allocation group.
  472.                The following fields are defined:
  473.                mmmmaaaaggggiiiiccccnnnnuuuummmm: AGF block magic number, 0x58414746 ('XAGF')
  474.                vvvveeeerrrrssssiiiioooonnnnnnnnuuuummmm: version number, currently 1
  475.                sssseeeeqqqqnnnnoooo: sequence number starting from 0
  476.                lllleeeennnnggggtttthhhh: size in filesystem blocks of the allocation group.  All
  477.                allocation groups except the last one of the filesystem have
  478.                the superblock's aaaaggggbbbblllloooocccckkkkssss value here
  479.                bbbbnnnnoooorrrrooooooootttt: block number of the root of the Btree holding free
  480.                space information sorted by block number
  481.                ccccnnnnttttrrrrooooooootttt: block number of the root of the Btree holding free
  482.                space information sorted by block count
  483.                bbbbnnnnoooolllleeeevvvveeeellll: number of levels in the by-block-number Btree
  484.                ccccnnnnttttlllleeeevvvveeeellll: number of levels in the by-block-count Btree
  485.                ffffllllffffiiiirrrrsssstttt: index into the AGFL block of the first active entry
  486.                ffffllllllllaaaasssstttt: index into the AGFL block of the last active entry
  487.                ffffllllccccoooouuuunnnntttt: count of active entries in the AGFL block
  488.                ffffrrrreeeeeeeebbbbllllkkkkssss: count of blocks represented in the freespace Btrees
  489.                lllloooonnnnggggeeeesssstttt: longest free space represented in the freespace Btrees
  490.  
  491.      aaaaggggffffllll      The AGFL block contains block numbers for use of the block
  492.                allocator; it is in the fourth 512-byte block of each
  493.                allocation group.  Each entry in the active list is a block
  494.                number within the allocation group that can be used for any
  495.                purpose if space runs low.  The AGF block fields ffffllllffffiiiirrrrsssstttt,
  496.                ffffllllllllaaaasssstttt, and ffffllllccccoooouuuunnnntttt designate which entries are currently
  497.                active.  Entry space is allocated in a circular manner within
  498.                the AGFL block.  Fields defined:
  499.                bbbbnnnnoooo: array of all block numbers.  Even those which are not
  500.                active are printed
  501.  
  502.      aaaaggggiiii       The AGI block is the header for inode allocation information;
  503.                it is in the third 512-byte block of each allocation group.
  504.                Fields defined:
  505.                mmmmaaaaggggiiiiccccnnnnuuuummmm: AGI block magic number, 0x58414749 ('XAGI')
  506.                vvvveeeerrrrssssiiiioooonnnnnnnnuuuummmm: version number, currently 1
  507.                sssseeeeqqqqnnnnoooo: sequence number starting from 0
  508.                lllleeeennnnggggtttthhhh: size in filesystem blocks of the allocation group
  509.                ccccoooouuuunnnntttt: count of inodes allocated
  510.                rrrrooooooootttt: block number of the root of the Btree holding inode
  511.                allocation information
  512.                lllleeeevvvveeeellll: number of levels in the inode allocation Btree
  513.                ffffrrrreeeeeeeeccccoooouuuunnnntttt: count of allocated inodes that are not in use
  514.                nnnneeeewwwwiiiinnnnoooo: last inode number allocated
  515.                ddddiiiirrrriiiinnnnoooo: unused
  516.                uuuunnnnlllliiiinnnnkkkkeeeedddd: an array of inode numbers within the allocation
  517.                group.  The entries in the AGI block are the heads of lists
  518.                which run through the inode nnnneeeexxxxtttt____uuuunnnnlllliiiinnnnkkkkeeeedddd field.  These inodes
  519.                are to be unlinked the next time the filesystem is mounted
  520.  
  521.  
  522.  
  523.  
  524.  
  525.                                                                         PPPPaaaaggggeeee 8888
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532. xxxxffffssss____ddddbbbb((((1111MMMM))))                                                          xxxxffffssss____ddddbbbb((((1111MMMM))))
  533.  
  534.  
  535.  
  536.      aaaattttttttrrrr      An attribute fork is organized as a Btree with the actual data
  537.                embedded in the leaf blocks.  The root of the Btree is found in
  538.                block 0 of the fork.  The index (sort order) of the Btree is
  539.                the hash value of the attribute name.  All the blocks contain a
  540.                bbbbllllkkkkiiiinnnnffffoooo structure at the beginning, see type ddddiiiirrrr for a
  541.                description.  Nonleaf blocks are identical in format to those
  542.                for version 1 and version 2 directories, see type ddddiiiirrrr for a
  543.                description.  Leaf blocks can refer to ``local'' or ``remote''
  544.                attribute values.  Local values are stored directly in the leaf
  545.                block.  Remote values are stored in an independent block in the
  546.                attribute fork (with no structure).  Leaf blocks contain the
  547.                following fields:
  548.                hhhhddddrrrr: header containing a bbbbllllkkkkiiiinnnnffffoooo structure iiiinnnnffffoooo (magic number
  549.                0xfbee), a ccccoooouuuunnnntttt of active entries, uuuusssseeeeddddbbbbyyyytttteeeessss total bytes of
  550.                names and values, the ffffiiiirrrrssssttttuuuusssseeeedddd byte in the name area, hhhhoooolllleeeessss
  551.                set if the block needs compaction, and array ffffrrrreeeeeeeemmmmaaaapppp as for ddddiiiirrrr
  552.                leaf blocks
  553.                eeeennnnttttrrrriiiieeeessss: array of structures containing a hhhhaaaasssshhhhvvvvaaaallll, nnnnaaaammmmeeeeiiiiddddxxxx
  554.                (index into the block of the name), and flags iiiinnnnccccoooommmmpppplllleeeetttteeee, rrrrooooooootttt,
  555.                and llllooooccccaaaallll
  556.                nnnnvvvvlllliiiisssstttt: array of structures describing the attribute names and
  557.                values.  Fields always present:  vvvvaaaalllluuuueeeelllleeeennnn (length of value in
  558.                bytes), nnnnaaaammmmeeeelllleeeennnn, and nnnnaaaammmmeeee.  Fields present for local values:
  559.                vvvvaaaalllluuuueeee (value string).  Fields present for remote values:
  560.                vvvvaaaalllluuuueeeebbbbllllkkkk (fork block number of containing the value).
  561.  
  562.      bbbbmmmmaaaappppbbbbtttt    Files with many extents in their data or attribute fork will
  563.                have the extents described by the contents of a Btree for that
  564.                fork, instead of being stored directly in the inode.  Each bmap
  565.                Btree starts with a root block contained within the inode.  The
  566.                other levels of the Btree are stored in filesystem blocks.  The
  567.                blocks are linked to sibling left and right blocks at each
  568.                level, as well as by pointers from parent to child blocks.
  569.                Each block contains the following fields:
  570.                mmmmaaaaggggiiiicccc: bmap Btree block magic number, 0x424d4150 ('BMAP')
  571.                lllleeeevvvveeeellll: level of this block above the leaf level
  572.                nnnnuuuummmmrrrreeeeccccssss: number of records or keys in the block
  573.                lllleeeeffffttttssssiiiibbbb: left (logically lower) sibling block, 0 if none
  574.                rrrriiiigggghhhhttttssssiiiibbbb: right (logically higher) sibling block, 0 if none
  575.                rrrreeeeccccssss: [leaf blocks only] array of extent records.  Each record
  576.                contains ssssttttaaaarrrrttttooooffffffff, ssssttttaaaarrrrttttbbbblllloooocccckkkk, bbbblllloooocccckkkkccccoooouuuunnnntttt, and eeeexxxxtttteeeennnnttttffffllllaaaagggg (1 if
  577.                the extent is unwritten)
  578.                kkkkeeeeyyyyssss: [nonleaf blocks only] array of key records.  These are
  579.                the first key value of each block in the level below this one.
  580.                Each record contains ssssttttaaaarrrrttttooooffffffff
  581.                ppppttttrrrrssss: [nonleaf blocks only] array of child block pointers.
  582.                Each pointer is a filesystem block number to the next level in
  583.                the Btree
  584.  
  585.      bbbbnnnnoooobbbbtttt     There is one set of filesystem blocks forming the by-block-
  586.                number allocation Btree for each allocation group.  The root
  587.                block of this Btree is designated by the bbbbnnnnoooorrrrooooooootttt field in the
  588.  
  589.  
  590.  
  591.                                                                         PPPPaaaaggggeeee 9999
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598. xxxxffffssss____ddddbbbb((((1111MMMM))))                                                          xxxxffffssss____ddddbbbb((((1111MMMM))))
  599.  
  600.  
  601.  
  602.                corresponding AGF block.  The blocks are linked to sibling left
  603.                and right blocks at each level, as well as by pointers from
  604.                parent to child blocks.  Each block has the following fields:
  605.                mmmmaaaaggggiiiicccc: BNOBT block magic number, 0x41425442 ('ABTB')
  606.                lllleeeevvvveeeellll: level number of this block, 0 is a leaf
  607.                nnnnuuuummmmrrrreeeeccccssss: number of data entries in the block
  608.                lllleeeeffffttttssssiiiibbbb: left (logically lower) sibling block, 0 if none
  609.                rrrriiiigggghhhhttttssssiiiibbbb: right (logically higher) sibling block, 0 if none
  610.                rrrreeeeccccssss: [leaf blocks only] array of freespace records.  Each
  611.                record contains ssssttttaaaarrrrttttbbbblllloooocccckkkk and bbbblllloooocccckkkkccccoooouuuunnnntttt
  612.                kkkkeeeeyyyyssss: [nonleaf blocks only] array of key records.  These are
  613.                the first value of each block in the level below this one.
  614.                Each record contains ssssttttaaaarrrrttttbbbblllloooocccckkkk and bbbblllloooocccckkkkccccoooouuuunnnntttt
  615.                ppppttttrrrrssss: [nonleaf blocks only] array of child block pointers.
  616.                Each pointer is a block number within the allocation group to
  617.                the next level in the Btree
  618.  
  619.      ccccnnnnttttbbbbtttt     There is one set of filesystem blocks forming the by-block-
  620.                count allocation Btree for each allocation group.  The root
  621.                block of this Btree is designated by the corresponding AGF
  622.                block.  The blocks are linked to sibling left and right blocks
  623.                at each level, as well as by pointers from parent to child
  624.                blocks.  Each block has the following fields:
  625.                mmmmaaaaggggiiiicccc: CNTBT block magic number, 0x41425443 ('ABTC')
  626.                lllleeeevvvveeeellll: level number of this block, 0 is a leaf
  627.                nnnnuuuummmmrrrreeeeccccssss: number of data entries in the block
  628.                lllleeeeffffttttssssiiiibbbb: left (logically lower) sibling block, 0 if none
  629.                rrrriiiigggghhhhttttssssiiiibbbb: right (logically higher) sibling block, 0 if none
  630.                rrrreeeeccccssss: [leaf blocks only] array of freespace records.  Each
  631.                record contains ssssttttaaaarrrrttttbbbblllloooocccckkkk and bbbblllloooocccckkkkccccoooouuuunnnntttt
  632.                kkkkeeeeyyyyssss: [nonleaf blocks only] array of key records.  These are
  633.                the first value of each block in the level below this one.
  634.                Each record contains bbbblllloooocccckkkkccccoooouuuunnnntttt and ssssttttaaaarrrrttttbbbblllloooocccckkkk
  635.                ppppttttrrrrssss: [nonleaf blocks only] array of child block pointers.
  636.                Each pointer is a block number within the allocation group to
  637.                the next level in the Btree
  638.  
  639.      ddddaaaattttaaaa      User file blocks, and other blocks whose type is unknown, have
  640.                this type for display purposes in _x_f_s__d_b.  The block data is
  641.                displayed in hexadecimal format.
  642.  
  643.      ddddiiiirrrr       A version 1 directory is organized as a Btree with the
  644.                directory data embedded in the leaf blocks.  The root of the
  645.                Btree is found in block 0 of the file.  The index (sort order)
  646.                of the Btree is the hash value of the entry name.  All the
  647.                blocks contain a bbbbllllkkkkiiiinnnnffffoooo structure at the beginning with the
  648.                following fields:
  649.                ffffoooorrrrwwww: next sibling block
  650.                bbbbaaaacccckkkk: previous sibling block
  651.                mmmmaaaaggggiiiicccc: magic number for this block type
  652.  
  653.                The nonleaf (node) blocks have the following fields:
  654.  
  655.  
  656.  
  657.                                                                        PPPPaaaaggggeeee 11110000
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664. xxxxffffssss____ddddbbbb((((1111MMMM))))                                                          xxxxffffssss____ddddbbbb((((1111MMMM))))
  665.  
  666.  
  667.  
  668.                hhhhddddrrrr: header containing a bbbbllllkkkkiiiinnnnffffoooo structure iiiinnnnffffoooo (magic number
  669.                0xfebe), the ccccoooouuuunnnntttt of active entries, and the lllleeeevvvveeeellll of this
  670.                block above the leaves
  671.                bbbbttttrrrreeeeeeee: array of entries containing hhhhaaaasssshhhhvvvvaaaallll and bbbbeeeeffffoooorrrreeee fields.
  672.                The bbbbeeeeffffoooorrrreeee value is a block number within the directory file to
  673.                the child block, the hhhhaaaasssshhhhvvvvaaaallll is the last hash value in that
  674.                block
  675.  
  676.                The leaf blocks have the following fields:
  677.                hhhhddddrrrr: header containing a bbbbllllkkkkiiiinnnnffffoooo structure iiiinnnnffffoooo (magic number
  678.                0xfeeb), the ccccoooouuuunnnntttt of active entries, nnnnaaaammmmeeeebbbbyyyytttteeeessss (total name
  679.                string bytes), hhhhoooolllleeeessss flag (block needs compaction), and ffffrrrreeeeeeeemmmmaaaapppp
  680.                (array of bbbbaaaasssseeee, ssssiiiizzzzeeee entries for free regions)
  681.                eeeennnnttttrrrriiiieeeessss: array of structures containing hhhhaaaasssshhhhvvvvaaaallll, nnnnaaaammmmeeeeiiiiddddxxxx (byte
  682.                index into the block of the name string), and nnnnaaaammmmeeeelllleeeennnn
  683.                nnnnaaaammmmeeeelllliiiisssstttt: array of structures containing iiiinnnnuuuummmmbbbbeeeerrrr and nnnnaaaammmmeeee
  684.  
  685.      ddddiiiirrrr2222      A version 2 directory has four kinds of blocks.  Data blocks
  686.                start at offset 0 in the file.  There are two kinds of data
  687.                blocks: single-block directories have the leaf information
  688.                embedded at the end of the block, data blocks in multi-block
  689.                directories do not.  Node and leaf blocks start at offset 32GB
  690.                (with either a single leaf block or the root node block).
  691.                Freespace blocks start at offset 64GB.  The node and leaf
  692.                blocks form a Btree, with references to the data in the data
  693.                blocks.  The freespace blocks form an index of longest free
  694.                spaces within the data blocks.
  695.  
  696.                A single-block directory block contains the following fields:
  697.                bbbbhhhhddddrrrr: header containing mmmmaaaaggggiiiicccc number 0x58443242 ('XD2B') and an
  698.                array bbbbeeeessssttttffffrrrreeeeeeee of the longest 3 free spaces in the block
  699.                (ooooffffffffsssseeeetttt, lllleeeennnnggggtttthhhh)
  700.                bbbbuuuu: array of union structures.  Each element is either an entry
  701.                or a freespace.  For entries, there are the following fields:
  702.                iiiinnnnuuuummmmbbbbeeeerrrr, nnnnaaaammmmeeeelllleeeennnn, nnnnaaaammmmeeee, and ttttaaaagggg.  For freespace, there are the
  703.                following fields:  ffffrrrreeeeeeeettttaaaagggg (0xffff), lllleeeennnnggggtttthhhh, and ttttaaaagggg.  The ttttaaaagggg
  704.                value is the byte offset in the block of the start of the entry
  705.                it is contained in
  706.                bbbblllleeeeaaaaffff: array of leaf entries containing hhhhaaaasssshhhhvvvvaaaallll and aaaaddddddddrrrreeeessssssss.
  707.                The aaaaddddddddrrrreeeessssssss is a 64-bit word offset into the file
  708.                bbbbttttaaaaiiiillll: tail structure containing the total ccccoooouuuunnnntttt of leaf
  709.                entries and ssssttttaaaalllleeee count of unused leaf entries
  710.  
  711.                A data block contains the following fields:
  712.                ddddhhhhddddrrrr:  header containing mmmmaaaaggggiiiicccc number 0x58443244 ('XD2D') and
  713.                an array bbbbeeeessssttttffffrrrreeeeeeee of the longest 3 free spaces in the block
  714.                (ooooffffffffsssseeeetttt, lllleeeennnnggggtttthhhh)
  715.                dddduuuu: array of union structures as for bbbbuuuu
  716.  
  717.                Leaf blocks have two possible forms.  If the Btree consists of
  718.                a single leaf then the freespace information is in the leaf
  719.                block, otherwise it is in separate blocks and the root of the
  720.  
  721.  
  722.  
  723.                                                                        PPPPaaaaggggeeee 11111111
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730. xxxxffffssss____ddddbbbb((((1111MMMM))))                                                          xxxxffffssss____ddddbbbb((((1111MMMM))))
  731.  
  732.  
  733.  
  734.                Btree is a node block.  A leaf block contains the following
  735.                fields:
  736.                llllhhhhddddrrrr: header containing a bbbbllllkkkkiiiinnnnffffoooo structure iiiinnnnffffoooo (magic number
  737.                0xd2f1 for the single leaf case, 0xd2ff for the true Btree
  738.                case), the total ccccoooouuuunnnntttt of leaf entries, and ssssttttaaaalllleeee count of
  739.                unused leaf entries
  740.                lllleeeennnnttttssss: leaf entries, as for bbbblllleeeeaaaaffff
  741.                llllbbbbeeeessssttttssss: [single leaf only] array of values which represent the
  742.                longest freespace in each data block in the directory
  743.                llllttttaaaaiiiillll: [single leaf only] tail structure containing bbbbeeeessssttttccccoooouuuunnnntttt
  744.                count of llllbbbbeeeessssttttssss
  745.  
  746.                A node block is identical to that for types aaaattttttttrrrr and ddddiiiirrrr.
  747.  
  748.                A freespace block contains the following fields:
  749.                ffffhhhhddddrrrr: header containing mmmmaaaaggggiiiicccc number 0x58443246 ('XD2F'),
  750.                ffffiiiirrrrssssttttddddbbbb first data block number covered by this freespace
  751.                block, nnnnvvvvaaaalllliiiidddd number of valid entries, and nnnnuuuusssseeeedddd number of
  752.                entries representing real data blocks
  753.                ffffbbbbeeeessssttttssss: array of values as for llllbbbbeeeessssttttssss
  754.  
  755.      ddddqqqqbbbbllllkkkk     The quota information is stored in files referred to by the
  756.                superblock uuuuqqqquuuuoooottttiiiinnnnoooo and ppppqqqquuuuoooottttiiiinnnnoooo fields.  Each filesystem block
  757.                in a quota file contains a constant number of quota entries.
  758.                The quota entry size is currently 136 bytes, so with a 4KB
  759.                filesystem block size there are 30 quota entries per block.
  760.                The ddddqqqquuuuooootttt command is used to locate these entries in the
  761.                filesystem.  The file entries are indexed by the user or
  762.                project identifier to determine the block and offset.  Each
  763.                quota entry has the following fields:
  764.                mmmmaaaaggggiiiicccc: magic number, 0x4451 ('DQ')
  765.                vvvveeeerrrrssssiiiioooonnnn: version number, currently 1
  766.                ffffllllaaaaggggssss: flags, values include 0x01 for user quota, 0x02 for
  767.                project quota
  768.                iiiidddd: user or project identifier
  769.                bbbbllllkkkk____hhhhaaaarrrrddddlllliiiimmmmiiiitttt: absolute limit on blocks in use
  770.                bbbbllllkkkk____ssssooooffffttttlllliiiimmmmiiiitttt: preferred limit on blocks in use
  771.                iiiinnnnoooo____hhhhaaaarrrrddddlllliiiimmmmiiiitttt: absolute limit on inodes in use
  772.                iiiinnnnoooo____ssssooooffffttttlllliiiimmmmiiiitttt: preferred limit on inodes in use
  773.                bbbbccccoooouuuunnnntttt: blocks actually in use
  774.                iiiiccccoooouuuunnnntttt: inodes actually in use
  775.                iiiittttiiiimmmmeeeerrrr: time when service will be refused if soft limit is
  776.                violated for inodes
  777.                bbbbttttiiiimmmmeeeerrrr: time when service will be refused if soft limit is
  778.                violated for blocks
  779.                iiiiwwwwaaaarrrrnnnnssss: number of warnings issued about inode limit violations
  780.                bbbbwwwwaaaarrrrnnnnssss: number of warnings issued about block limit violations
  781.                rrrrttttbbbb____hhhhaaaarrrrddddlllliiiimmmmiiiitttt: absolute limit on realtime blocks in use
  782.                rrrrttttbbbb____ssssooooffffttttlllliiiimmmmiiiitttt: preferred limit on realtime blocks in use
  783.                rrrrttttbbbbccccoooouuuunnnntttt: realtime blocks actually in use
  784.                rrrrttttbbbbttttiiiimmmmeeeerrrr: time when service will be refused if soft limit is
  785.                violated for realtime blocks
  786.  
  787.  
  788.  
  789.                                                                        PPPPaaaaggggeeee 11112222
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796. xxxxffffssss____ddddbbbb((((1111MMMM))))                                                          xxxxffffssss____ddddbbbb((((1111MMMM))))
  797.  
  798.  
  799.  
  800.                rrrrttttbbbbwwwwaaaarrrrnnnnssss: number of warnings issued about realtime block limit
  801.                violations
  802.  
  803.      iiiinnnnoooobbbbtttt     There is one set of filesystem blocks forming the inode
  804.                allocation Btree for each allocation group.  The root block of
  805.                this Btree is designated by the rrrrooooooootttt field in the corresponding
  806.                AGI block.  The blocks are linked to sibling left and right
  807.                blocks at each level, as well as by pointers from parent to
  808.                child blocks.  Each block has the following fields:
  809.                mmmmaaaaggggiiiicccc: INOBT block magic number, 0x49414254 ('IABT')
  810.                lllleeeevvvveeeellll: level number of this block, 0 is a leaf
  811.                nnnnuuuummmmrrrreeeeccccssss: number of data entries in the block
  812.                lllleeeeffffttttssssiiiibbbb: left (logically lower) sibling block, 0 if none
  813.                rrrriiiigggghhhhttttssssiiiibbbb: right (logically higher) sibling block, 0 if none
  814.                rrrreeeeccccssss: [leaf blocks only] array of inode records.  Each record
  815.                contains ssssttttaaaarrrrttttiiiinnnnoooo allocation-group relative inode number,
  816.                ffffrrrreeeeeeeeccccoooouuuunnnntttt count of free inodes in this chunk, and ffffrrrreeeeeeee bitmap,
  817.                LSB corresponds to inode 0
  818.                kkkkeeeeyyyyssss: [nonleaf blocks only] array of key records.  These are
  819.                the first value of each block in the level below this one.
  820.                Each record contains ssssttttaaaarrrrttttiiiinnnnoooo
  821.                ppppttttrrrrssss: [nonleaf blocks only] array of child block pointers.
  822.                Each pointer is a block number within the allocation group to
  823.                the next level in the Btree
  824.  
  825.      iiiinnnnooooddddeeee     Inodes are allocated in ``chunks'' of 64 inodes each.  Usually
  826.                a chunk is multiple filesystem blocks, although there are cases
  827.                with large filesystem blocks where a chunk is less than one
  828.                block.  The inode Btree (see iiiinnnnoooobbbbtttt above) refers to the inode
  829.                numbers per allocation group.  The inode numbers directly
  830.                reflect the location of the inode block on disk.  Use the iiiinnnnooooddddeeee
  831.                command to point _x_f_s__d_b to a specific inode.  Each inode
  832.                contains four regions:  ccccoooorrrreeee, nnnneeeexxxxtttt____uuuunnnnlllliiiinnnnkkkkeeeedddd, uuuu, and aaaa.  ccccoooorrrreeee
  833.                contains the fixed information.  nnnneeeexxxxtttt____uuuunnnnlllliiiinnnnkkkkeeeedddd is separated
  834.                from the core due to journalling considerations, see type aaaaggggiiii
  835.                field uuuunnnnlllliiiinnnnkkkkeeeedddd.  uuuu is a union structure that is different in
  836.                size and format depending on the type and representation of the
  837.                file data (``data fork'').  aaaa is an optional union structure to
  838.                describe attribute data, that is different in size, format, and
  839.                location depending on the presence and representation of
  840.                attribute data, and the size of the uuuu data (``attribute
  841.                fork'').  _x_f_s__d_b automatically selects the proper union members
  842.                based on information in the inode.
  843.                The following are fields in the inode core:
  844.                mmmmaaaaggggiiiicccc: inode magic number, 0x494e ('IN')
  845.                mmmmooooddddeeee: mode and type of file, as described in cccchhhhmmmmoooodddd(2),
  846.                mmmmkkkknnnnoooodddd(2), and ssssttttaaaatttt(2)
  847.                vvvveeeerrrrssssiiiioooonnnn: inode version, 1 or 2
  848.                ffffoooorrrrmmmmaaaatttt: format of uuuu union data (0: dev_t, 1: local file - in-
  849.                inode directory or symlink, 2: extent list, 3: Btree root, 4:
  850.                unique id [unused])
  851.                nnnnlllliiiinnnnkkkkvvvv1111: number of links to the file in a version 1 inode
  852.  
  853.  
  854.  
  855.                                                                        PPPPaaaaggggeeee 11113333
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862. xxxxffffssss____ddddbbbb((((1111MMMM))))                                                          xxxxffffssss____ddddbbbb((((1111MMMM))))
  863.  
  864.  
  865.  
  866.                nnnnlllliiiinnnnkkkkvvvv2222: number of links to the file in a version 2 inode
  867.                pppprrrroooojjjjiiiidddd: owner's project id (version 2 inode only)
  868.                uuuuiiiidddd: owner's user id
  869.                ggggiiiidddd: owner's group id
  870.                aaaattttiiiimmmmeeee: time last accessed (seconds and nanoseconds)
  871.                mmmmttttiiiimmmmeeee: time last modified
  872.                ccccttttiiiimmmmeeee: time created or inode last modified
  873.                ssssiiiizzzzeeee: number of bytes in the file
  874.                nnnnbbbblllloooocccckkkkssss: total number of blocks in the file including indirect
  875.                and attribute
  876.                eeeexxxxttttssssiiiizzzzeeee: basic/minimum extent size for the file, used only for
  877.                realtime
  878.                nnnneeeexxxxtttteeeennnnttttssss: number of extents in the data fork
  879.                nnnnaaaaeeeexxxxtttteeeennnnttttssss: number of extents in the attribute fork
  880.                ffffoooorrrrkkkkooooffffffff: attribute fork offset in the inode, in 64-bit words
  881.                from the start of uuuu
  882.                aaaaffffoooorrrrmmmmaaaatttt: format of aaaa data (1: local attribute data, 2: extent
  883.                list, 3: Btree root)
  884.                ddddmmmmeeeevvvvmmmmaaaasssskkkk: DMAPI event mask
  885.                ddddmmmmssssttttaaaatttteeee: DMAPI state information
  886.                nnnneeeewwwwrrrrttttbbbbmmmm: file is the realtime bitmap and is ``new'' format
  887.                pppprrrreeeeaaaalllllllloooocccc: file has preallocated data space after EOF
  888.                rrrreeeeaaaallllttttiiiimmmmeeee: file data is in the realtime subvolume
  889.                ggggeeeennnn: inode generation number
  890.  
  891.                The following fields are in the uuuu data fork union:
  892.                bbbbmmmmbbbbtttt: bmap Btree root.  This looks like a bbbbmmmmaaaappppbbbbttttdddd block with
  893.                redundant information removed
  894.                bbbbmmmmxxxx: array of extent descriptors
  895.                ddddeeeevvvv: dev_t for the block or character device
  896.                ssssffffddddiiiirrrr: shortform (in-inode) version 1 directory.  This consists
  897.                of a hhhhddddrrrr containing the ppppaaaarrrreeeennnntttt inode number and a ccccoooouuuunnnntttt of
  898.                active entries in the directory, followed by an array lllliiiisssstttt of
  899.                hhhhddddrrrr.ccccoooouuuunnnntttt entries.  Each such entry contains iiiinnnnuuuummmmbbbbeeeerrrr, nnnnaaaammmmeeeelllleeeennnn,
  900.                and nnnnaaaammmmeeee string
  901.                ssssffffddddiiiirrrr2222: shortform (in-inode) version 2 directory.  This
  902.                consists of a hhhhddddrrrr containing a ccccoooouuuunnnntttt of active entries in the
  903.                directory, an iiii8888ccccoooouuuunnnntttt of entries with inumbers that don't fit
  904.                in a 32-bit value, and the ppppaaaarrrreeeennnntttt inode number, followed by an
  905.                array lllliiiisssstttt of hhhhddddrrrr.ccccoooouuuunnnntttt entries.  Each such entry contains
  906.                nnnnaaaammmmeeeelllleeeennnn, a saved ooooffffffffsssseeeetttt used when the directory is converted to
  907.                a larger form, a nnnnaaaammmmeeee string, and the iiiinnnnuuuummmmbbbbeeeerrrr
  908.                ssssyyyymmmmlllliiiinnnnkkkk: symbolic link string value
  909.  
  910.                The following fields are in the aaaa attribute fork union if it
  911.                exists:
  912.                bbbbmmmmbbbbtttt: bmap Btree root, as above
  913.                bbbbmmmmxxxx: array of extent descriptors
  914.                ssssffffaaaattttttttrrrr: shortform (in-inode) attribute values.  This consists
  915.                of a hhhhddddrrrr containing a ttttoooottttssssiiiizzzzeeee (total size in bytes) and a ccccoooouuuunnnntttt
  916.                of active entries, followed by an array lllliiiisssstttt of hhhhddddrrrr.ccccoooouuuunnnntttt
  917.                entries.  Each such entry contains nnnnaaaammmmeeeelllleeeennnn, vvvvaaaalllluuuueeeelllleeeennnn, rrrrooooooootttt
  918.  
  919.  
  920.  
  921.                                                                        PPPPaaaaggggeeee 11114444
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928. xxxxffffssss____ddddbbbb((((1111MMMM))))                                                          xxxxffffssss____ddddbbbb((((1111MMMM))))
  929.  
  930.  
  931.  
  932.                flag, nnnnaaaammmmeeee, and vvvvaaaalllluuuueeee
  933.  
  934.      lllloooogggg       Log blocks contain the journal entries for XFS.  It's not
  935.                useful to examine these with _x_f_s__d_b, use _x_f_s__l_o_g_p_r_i_n_t(1M)
  936.                instead.
  937.  
  938.      rrrrttttbbbbiiiittttmmmmaaaapppp  If the filesystem has a realtime subvolume, then the rrrrbbbbmmmmiiiinnnnoooo
  939.                field in the superblock refers to a file that contains the
  940.                realtime bitmap.  Each bit in the bitmap file controls the
  941.                allocation of a single realtime extent (set == free).  The
  942.                bitmap is processed in 32-bit words, the LSB of a word is used
  943.                for the first extent controlled by that bitmap word.  The aaaattttiiiimmmmeeee
  944.                field of the realtime bitmap inode contains a counter that is
  945.                used to control where the next new realtime file will start.
  946.  
  947.      rrrrttttssssuuuummmmmmmmaaaarrrryyyy If the filesystem has a realtime subvolume, then the rrrrssssuuuummmmiiiinnnnoooo
  948.                field in the superblock refers to a file that contains the
  949.                realtime summary data.  The summary file contains a two-
  950.                dimensional array of 16-bit values.  Each value counts the
  951.                number of free extent runs (consecutive free realtime extents)
  952.                of a given range of sizes that starts in a given bitmap block.
  953.                The size ranges are binary buckets (low size in the bucket is a
  954.                power of 2).  There are as many size ranges as are necessary
  955.                given the size of the realtime subvolume.  The first dimension
  956.                is the size range, the second dimension is the starting bitmap
  957.                block number (adjacent entries are for the same size, adjacent
  958.                bitmap blocks).
  959.  
  960.      ssssbbbb        There is one sb (superblock) structure per allocation group.
  961.                It is the first disk block in the allocation group.  Only the
  962.                first one (block 0 of the filesystem) is actually used; the
  963.                other blocks are redundant information for _x_f_s__r_e_p_a_i_r(1M) to
  964.                use if the first superblock is damaged.  Fields defined:
  965.                mmmmaaaaggggiiiiccccnnnnuuuummmm: superblock magic number, 0x58465342 ('XFSB')
  966.                bbbblllloooocccckkkkssssiiiizzzzeeee: filesystem block size in bytes
  967.                ddddbbbblllloooocccckkkkssss: number of filesystem blocks present in the data
  968.                subvolume
  969.                rrrrbbbblllloooocccckkkkssss: number of filesystem blocks present in the realtime
  970.                subvolume
  971.                rrrreeeexxxxtttteeeennnnttttssss: number of realtime extents that rrrrbbbblllloooocccckkkkssss contain
  972.                uuuuuuuuiiiidddd: unique identifier of the filesystem
  973.                llllooooggggssssttttaaaarrrrtttt: starting filesystem block number of the log
  974.                (journal).  If this value is 0 the log is ``external''
  975.                rrrroooooooottttiiiinnnnoooo: root inode number
  976.                rrrrbbbbmmmmiiiinnnnoooo: realtime bitmap inode number
  977.                rrrrssssuuuummmmiiiinnnnoooo: realtime summary data inode number
  978.                rrrreeeexxxxttttssssiiiizzzzeeee: realtime extent size in filesystem blocks
  979.                aaaaggggbbbblllloooocccckkkkssss: size of an allocation group in filesystem blocks
  980.                aaaaggggccccoooouuuunnnntttt: number of allocation groups
  981.                rrrrbbbbmmmmbbbblllloooocccckkkkssss: number of realtime bitmap blocks
  982.                llllooooggggbbbblllloooocccckkkkssss: number of log blocks (filesystem blocks)
  983.                vvvveeeerrrrssssiiiioooonnnnnnnnuuuummmm: filesystem version information.  This value is
  984.  
  985.  
  986.  
  987.                                                                        PPPPaaaaggggeeee 11115555
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994. xxxxffffssss____ddddbbbb((((1111MMMM))))                                                          xxxxffffssss____ddddbbbb((((1111MMMM))))
  995.  
  996.  
  997.  
  998.                currently 1, 2, 3, or 4 in the low 4 bits.  If the low bits are
  999.                4 then the other bits have additional meanings.  1 is the
  1000.                original value.  2 means that attributes were used.  3 means
  1001.                that version 2 inodes (large link counts) were used.  4 is the
  1002.                bitmask version of the version number.  In this case, the other
  1003.                bits are used as flags (0x0010: attributes were used, 0x0020:
  1004.                version 2 inodes were used, 0x0040: quotas were used, 0x0080:
  1005.                inode cluster alignment is in force, 0x0100: data stripe
  1006.                alignment is in force, 0x0200: the sssshhhhaaaarrrreeeedddd____vvvvnnnn field is used,
  1007.                0x1000: unwritten extent tracking is on, 0x2000: version 2
  1008.                directories are in use)
  1009.                sssseeeeccccttttssssiiiizzzzeeee: sector size in bytes, currently always 512.  This is
  1010.                the size of the superblock and the other header blocks
  1011.                iiiinnnnooooddddeeeessssiiiizzzzeeee: inode size in bytes
  1012.                iiiinnnnooooppppbbbblllloooocccckkkk: number of inodes per filesystem block
  1013.                ffffnnnnaaaammmmeeee: obsolete, filesystem name
  1014.                ffffppppaaaacccckkkk: obsolete, filesystem pack name
  1015.                bbbblllloooocccckkkklllloooogggg: log2 of bbbblllloooocccckkkkssssiiiizzzzeeee
  1016.                sssseeeeccccttttlllloooogggg: log2 of sssseeeeccccttttssssiiiizzzzeeee
  1017.                iiiinnnnooooddddeeeelllloooogggg: log2 of iiiinnnnooooddddeeeessssiiiizzzzeeee
  1018.                iiiinnnnooooppppbbbblllloooogggg: log2 of iiiinnnnooooppppbbbblllloooocccckkkk
  1019.                aaaaggggbbbbllllkkkklllloooogggg: log2 of aaaaggggbbbblllloooocccckkkkssss (rounded up)
  1020.                rrrreeeexxxxttttsssslllloooogggg: log2 of rrrreeeexxxxtttteeeennnnttttssss
  1021.                iiiinnnnpppprrrrooooggggrrrreeeessssssss: _m_k_f_s__x_f_s(1M) aborted before completing this
  1022.                filesystem
  1023.                iiiimmmmaaaaxxxx____ppppcccctttt: maximum percentage of filesystem space used for inode
  1024.                blocks
  1025.                iiiiccccoooouuuunnnntttt: number of allocated inodes
  1026.                iiiiffffrrrreeeeeeee: number of allocated inodes that are not in use
  1027.                ffffddddbbbblllloooocccckkkkssss: number of free data blocks
  1028.                ffffrrrreeeexxxxtttteeeennnnttttssss: number of free realtime extents
  1029.                uuuuqqqquuuuoooottttiiiinnnnoooo: user quota inode number
  1030.                ppppqqqquuuuoooottttiiiinnnnoooo: project quota inode number; this is currently unused
  1031.                qqqqffffllllaaaaggggssss: quota status flags (0x01: user quota accounting is on,
  1032.                0x02: user quota limits are enforced, 0x04: quotacheck has been
  1033.                run on user quotas, 0x08: project quota accounting is on, 0x10:
  1034.                project quota limits are enforced, 0x20: quotacheck has been
  1035.                run on project quotas)
  1036.                ffffllllaaaaggggssss: random flags.  0x01: only read-only mounts are allowed
  1037.                sssshhhhaaaarrrreeeedddd____vvvvnnnn: shared version number (shared readonly filesystems)
  1038.                iiiinnnnooooaaaalllliiiiggggnnnnmmmmtttt: inode chunk alignment in filesystem blocks
  1039.                uuuunnnniiiitttt: stripe or RAID unit
  1040.                wwwwiiiiddddtttthhhh: stripe or RAID width
  1041.                ddddiiiirrrrbbbbllllkkkklllloooogggg: log2 of directory block size (filesystem blocks)
  1042.  
  1043.      ssssyyyymmmmlllliiiinnnnkkkk   Symbolic link blocks are used only when the symbolic link value
  1044.                does not fit inside the inode.  The block content is just the
  1045.                string value.  Bytes past the logical end of the symbolic link
  1046.                value have arbitrary values.
  1047.  
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053.                                                                        PPPPaaaaggggeeee 11116666
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060. xxxxffffssss____ddddbbbb((((1111MMMM))))                                                          xxxxffffssss____ddddbbbb((((1111MMMM))))
  1061.  
  1062.  
  1063.  
  1064. DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS
  1065.      Many messages can come from the cccchhhheeeecccckkkk (bbbblllloooocccckkkkggggeeeetttt) command; these are
  1066.      documented in _x_f_s__c_h_e_c_k(1M).
  1067.  
  1068. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  1069.      mkfs_xfs(1M), xfs_check(1M), xfs_copy(1M), xfs_logprint(1M),
  1070.      xfs_ncheck(1M), xfs_repair(1M), chmod(2), mknod(2), stat(2), xfs(4).
  1071.  
  1072.  
  1073.  
  1074.  
  1075.  
  1076.  
  1077.  
  1078.  
  1079.  
  1080.  
  1081.  
  1082.  
  1083.  
  1084.  
  1085.  
  1086.  
  1087.  
  1088.  
  1089.  
  1090.  
  1091.  
  1092.  
  1093.  
  1094.  
  1095.  
  1096.  
  1097.  
  1098.  
  1099.  
  1100.  
  1101.  
  1102.  
  1103.  
  1104.  
  1105.  
  1106.  
  1107.  
  1108.  
  1109.  
  1110.  
  1111.  
  1112.  
  1113.  
  1114.  
  1115.  
  1116.  
  1117.  
  1118.  
  1119.                                                                        PPPPaaaaggggeeee 11117777
  1120.  
  1121.  
  1122.  
  1123.