3 xfs_db \- debug an XFS filesystem
25 is used to examine an XFS filesystem. Under rare circumstances it can also
26 be used to modify an XFS filesystem, but that task is normally left to
37 commands may be run interactively (the default) or as arguments
38 on the command line. Multiple
40 arguments may be given. The commands are run in the sequence given,
41 then the program exits. This is the mechanism used to implement
45 Specifies that the filesystem image to be processed is stored in a
49 .BR mkfs.xfs "(8) " -d
52 This might happen if an image copy of a filesystem has been made into
57 Allows execution on a mounted filesystem, provided it is mounted read-only.
58 Useful for shell scripts such as
60 which must only operate on filesystems in a guarenteed consistent state
61 (either unmounted or mounted read-only). These semantics are slightly
62 different to that of the
67 Specifies the device where the filesystems external log resides.
68 Only for those filesystems which use an external log. See the
69 .BR mkfs.xfs "(8) " \-l
72 for a detailed description of the XFS log.
75 Set the program name to
77 for prompts and some error messages, the default value is
85 read-only. This option is required if the filesystem is mounted.
86 It is only necessary to omit this flag if a command that changes data
87 .RB ( write ", " blocktrash )
91 Specifies expert mode.
99 Prints out the current version number and exits.
102 commands can be broken up into two classes. Most commands are for
103 the navigation and display of data structures in the filesystem.
104 Other commands are for scanning the filesystem in some way.
106 Commands which are used to navigate the filesystem structure take arguments
107 which reflect the names of filesystem structure fields.
108 There can be multiple field names separated by dots when the underlying
109 structures are nested, as in C.
110 The field names can be indexed (as an array index)
111 if the underlying field is an array.
112 The array indices can be specified as a range, two numbers separated by a dash.
115 maintains a current address in the filesystem.
116 The granularity of the address is a filesystem structure.
117 This can be a filesystem block,
118 an inode or quota (smaller than a filesystem block),
119 or a directory block (could be larger than a filesystem block).
120 There are a variety of commands to set the current address.
121 Associated with the current address is the current data type,
122 which is the structural type of this data.
123 Commands which follow the structure of the filesystem always set the type
124 as well as the address.
125 Commands which examine pieces of an individual file (inode) need the current
126 inode to be set, this is done with the
130 The current address/type information is actually maintained in a
131 stack that can be explicitly manipulated with the
132 .BR push ", " pop ", and " stack
134 This allows for easy examination of a nested filesystem structure.
135 Also, the last several locations visited are stored in a ring buffer
136 which can be manipulated with the
137 .BR forward ", " back ", and " ring
140 XFS filesystems are divided into a small number of allocation groups.
142 maintains a notion of the current allocation group which is
143 manipulated by some commands. The initial allocation group is 0.
146 Many commands have extensive online help. Use the
148 command for more details on any command.
156 Set current address to the offset .
158 (a filesystem block number) in the attribute area of the current inode.
160 .BI "addr [" field-expression ]
161 Set current address to the value of the
162 .IR field-expression .
163 This is used to "follow" a reference in one structure to the object
164 being referred to. If no argument is given the current address is printed.
167 Set current address to the AGF block for allocation group
169 If no argument is given use the current allocation group.
172 Set current address to the AGFL block for allocation group
174 If no argument is given use the current allocation group.
177 Set current address to the AGI block for allocation group
179 If no argument is given use the current allocation group.
187 Move to the previous location in the position ring.
190 Free block usage information collected by the last execution of the
192 command. This must be done before another
194 command can be given, presumably with different arguments than the previous one.
196 .BI "blockget [\-npvs] [\-b " bno "] ... [\-i " ino "] ..."
197 Get block usage and check filesystem consistency.
198 The information is saved for use by a subsequent
199 .BR blockuse ", " ncheck ", or " blocktrash
202 for more information.
206 is used to specify filesystem block numbers about which verbose
207 information should be printed.
210 is used to specify inode numbers about which verbose information
214 is used to save pathnames for inodes visited, this is used to support the
216 command. It also means that pathnames will be printed for inodes that have
217 problems. This option uses a lot of memory so is not enabled by default.
220 causes error messages to be prefixed with the filesystem name being
221 processed. This is useful if several copies of
226 restricts output to severe errors only. This is useful if the output is
230 enables verbose output. Messages will be printed for every block and
234 .BI "blocktrash [\-n " count "] [\-x " min "] [\-y " max "] [\-s " seed "] [\-0|1|2|3] [\-t " type "] ..."
235 Trash randomly selected filesystem metadata blocks.
236 Trashing occurs to randomly selected bits in the chosen blocks.
237 This command is available only in debugging versions of
239 It is useful for testing
240 .BR xfs_repair "(8) and " xfs_check (8).
243 .BR \-0 " | " -1 " | " -2 " | " -3
244 These are used to set the operating mode for
246 Only one can be used:
248 changed bits are cleared;
250 changed bits are set;
252 changed bits are inverted;
254 changed bits are randomized.
259 of block-trashings to perform (default 1).
264 to the random processing.
269 of blocks to be selected for trashing. Multiple
271 options may be given. If no
273 options are given then all metadata types can be trashed.
278 size of bit range to be trashed. The default value is 1.
283 size of bit range to be trashed. The default value is 1024.
286 .BI "blockuse [\-n] [\-c " count ]
287 Print usage for current filesystem block(s).
288 For each block, the type and (if any) inode are printed.
294 of blocks to process. The default value is 1 (the current block only).
297 specifies that file names should be printed. The prior
299 command must have also specified the
304 .BI "bmap [\-a\] [\-d] [" block " [" len ]]
305 Show the block map for the current inode.
306 The map display can be restricted to an area of the file with the
314 is omitted then 1 is assumed for len.
320 options are used to select the attribute or data
321 area of the inode, if neither option is given then both areas are shown.
328 .BI "convert " "type number" " [" "type number" "] ... " type
329 Convert from one address form to another.
332 with alternate names, are:
339 (filesystem block within an allocation group)
344 (inode number within an allocation group)
349 (allocation group number)
369 (byte address in filesystem)
374 (disk address, 512-byte blocks)
381 (filesystem block, see the
393 (index of inode in filesystem block)
398 (byte offset in inode)
402 Only conversions that "make sense" are allowed.
403 The compound form (with more than three arguments) is useful for
412 Set current address to the daddr (512 byte block) given by
416 is given the current address is printed, expressed as a daddr.
422 Set current address to the offset
424 (a filesystem block number) in the data area of the current inode.
426 .BI "debug [" flagbits ]
427 Set debug option bits. These are used for debugging
429 If no value is given for
431 print the current debug option bits. These are for the use of the implementor.
433 .BI "dquot [" projectid_or_userid ]
434 Set current address to a project or user quota block.
436 .BI "echo [" arg "] ..."
437 Echo the arguments to the output.
445 Move forward to the next entry in the position ring.
448 Get file fragmentation data. This prints information about fragmentation
449 of file data in the filesystem (as opposed to fragmentation of freespace,
452 command). Every file in the filesystem is examined to see how far from ideal
453 its extent mappings are. A summary is printed giving the totals.
457 sets verbosity, every inode has information printed for it.
458 The remaining options select which inodes and extents are examined.
459 If no options are given then all are assumed set,
460 otherwise just those given are enabled.
463 enables processing of attribute data.
466 enables processing of directory data.
469 enables processing of regular file data.
472 enables processing of symbolic link data.
475 enables processing of quota file data.
478 enables processing of realtime control file data.
481 enables processing of realtime file data.
484 .BI "freesp [\-bcds] [\-a " ag "] ... [\-e " i "] [\-h " h1 "] ... [\-m " m ]
485 Summarize free space for the filesystem. The free blocks are examined
486 and totalled, and displayed in the form of a histogram, with a count
487 of extents in each range of free extent sizes.
493 to the list of allocation groups to be processed. If no
495 options are given then all allocation groups are processed.
498 specifies that the histogram buckets are binary-sized, with the starting
499 sizes being the powers of 2.
504 will search the by-size (cnt) space Btree instead of the default
505 by-block (bno) space Btree.
508 specifies that every free extent will be displayed.
511 specifies that the histogram buckets are
512 equal-sized, with the size specified as
516 specifies a starting block number for a histogram bucket as
520 are given to specify the complete set of buckets.
523 specifies that the histogram starting block numbers are powers of
525 This is the general case of
529 specifies that a final summary of total free extents,
530 free blocks, and the average free extent size is printed.
538 .BI "fsblock [" fsb ]
539 Set current address to the fsblock value given by
543 is given the current address is printed, expressed as an fsb.
546 (uninterpreted). XFS filesystem block numbers are computed
547 .RI (( agno " << " agshift ") | " agblock )
550 depends on the size of an allocation group. Use the
552 command to convert to and from this form. Block numbers given for file blocks
553 (for instance from the
555 command) are in this form.
558 Prints the hash value of
560 using the hash function of the XFS directory and attribute implementation.
562 .BI "help [" command ]
563 Print help for one or all commands.
565 .BI "inode [" inode# ]
566 Set the current inode number. If no
568 is given, print the current inode number.
570 .BI "label [" label ]
571 Set the filesystem label. The filesystem label can be used by
573 instead of using a device special file.
574 The maximum length of an XFS label is 12 characters \- use of a longer
576 will result in truncation and a warning will be issued. If no
578 is given, the current filesystem label is printed.
580 .BI "log [stop | start " filename ]
581 Start logging output to
583 stop logging, or print the current logging status.
585 .BI "metadump [\-egow] " filename
586 Dumps metadata to a file. See
588 for more information.
590 .BI "ncheck [\-s] [\-i " ino "] ..."
591 Print name-inode pairs. A
593 command must be run first to gather the information.
597 specifies an inode number to be printed. If no
599 options are given then all inodes are printed.
602 specifies that only setuid and setgid files are printed.
611 Pop location from the stack.
613 .BI "print [" field-expression "] ..."
615 If no argument is given, print all fields in the current structure.
617 .BI "push [" command ]
618 Push location to the stack. If
620 is supplied, set the current location to the results of
622 after pushing the old location.
634 Show position ring (if no
636 argument is given), or move to a specific entry in the position ring given by
640 Set current address to SB header in allocation group
644 is given use the current allocation group number.
646 .BI "source " source-file
647 Process commands from
650 commands can be nested.
653 View the location stack.
656 Set the current data type to
658 If no argument is given, show the current data type.
659 The possible data types are:
660 .BR agf ", " agfl ", " agi ", " attr ", " bmapbta ", " bmapbtd ,
661 .BR bnobt ", " cntbt ", " data ", " dir ", " dir2 ", " dqblk ,
662 .BR inobt ", " inode ", " log ", " rtbitmap ", " rtsummary ,
663 .BR sb ", " symlink " and " text .
664 See the TYPES section below for more information on these data types.
666 .BI "uuid [" uuid " | generate | rewrite]"
667 Set the filesystem universally unique identifier (UUID).
668 The filesystem UUID can be used by
670 instead of using a device special file.
673 can be set directly to the desired UUID, or it can
674 be automatically generated using the
676 option. These options will both write the UUID into every copy of the
677 superblock in the filesystem.
679 copies the current UUID from the primary superblock
680 to all secondary copies of the superblock.
681 If no argument is given, the current filesystem UUID is printed.
683 .BI "version [" feature " | " "versionnum features2" ]
684 Enable selected features for a filesystem (certain features can
685 be enabled on an unmounted filesystem, after
687 has created the filesystem).
688 Support for unwritten extents can be enabled using the
690 option. Support for version 2 log format can be enabled using the
692 option. Support for extended attributes can be enabled using the
696 option. Once enabled, extended attributes cannot be disabled, but the user
701 at will (older kernels may not support the newer version).
703 If no argument is given, the current version and feature bits are printed.
704 With one argument, this command will write the updated version number
705 into every copy of the superblock in the filesystem.
706 If two arguments are given, they will be used as numeric values for the
710 bits respectively, and their string equivalent reported
711 (but no modifications are made).
713 .BI "write [" "field value" "] ..."
714 Write a value to disk.
715 Specific fields can be set in structures (struct mode),
716 or a block can be set to data values (data mode),
717 or a block can be set to string values (string mode, for symlink blocks).
718 The operation happens immediately: there is no buffering.
720 Struct mode is in effect when the current type is structural,
721 i.e. not data. For struct mode, the syntax is "\c
726 Data mode is in effect when the current type is data. In this case the
727 contents of the block can be shifted or rotated left or right, or filled
728 with a sequence, a constant value, or a random value. In this mode
730 with no arguments gives more information on the allowed commands.
732 This section gives the fields in each structure type and their meanings.
733 Note that some types of block cover multiple actual structures,
734 for instance directory blocks.
737 The AGF block is the header for block allocation information;
738 it is in the second 512-byte block of each allocation group.
739 The following fields are defined:
744 AGF block magic number, 0x58414746 ('XAGF').
747 version number, currently 1.
750 sequence number starting from 0.
753 size in filesystem blocks of the allocation group. All allocation
754 groups except the last one of the filesystem have the superblock's
759 block number of the root of the Btree holding free space
760 information sorted by block number.
763 block number of the root of the Btree holding free space
764 information sorted by block count.
767 number of levels in the by-block-number Btree.
770 number of levels in the by-block-count Btree.
773 index into the AGFL block of the first active entry.
776 index into the AGFL block of the last active entry.
779 count of active entries in the AGFL block.
782 count of blocks represented in the freespace Btrees.
785 longest free space represented in the freespace Btrees.
788 number of blocks held in the AGF Btrees.
793 The AGFL block contains block numbers for use of the block allocator;
794 it is in the fourth 512-byte block of each allocation group.
795 Each entry in the active list is a block number within the allocation group
796 that can be used for any purpose if space runs low.
798 .BR flfirst ", " fllast ", and " flcount
799 designate which entries are currently active.
800 Entry space is allocated in a circular manner within the AGFL block.
806 array of all block numbers. Even those which are not active are printed.
811 The AGI block is the header for inode allocation information;
812 it is in the third 512-byte block of each allocation group.
818 AGI block magic number, 0x58414749 ('XAGI').
821 version number, currently 1.
824 sequence number starting from 0.
827 size in filesystem blocks of the allocation group.
830 count of inodes allocated.
833 block number of the root of the Btree holding inode allocation information.
836 number of levels in the inode allocation Btree.
839 count of allocated inodes that are not in use.
842 last inode number allocated.
848 an array of inode numbers within the allocation group. The entries
849 in the AGI block are the heads of lists which run through the inode
851 field. These inodes are to be unlinked the next time the filesystem is mounted.
856 An attribute fork is organized as a Btree with the actual data embedded
857 in the leaf blocks. The root of the Btree is found in block 0 of the fork.
858 The index (sort order) of the Btree is the hash value of the attribute name.
859 All the blocks contain a
861 structure at the beginning, see type
863 for a description. Nonleaf blocks are identical in format to those for
864 version 1 and version 2 directories, see type
866 for a description. Leaf blocks can refer to "local" or "remote" attribute
867 values. Local values are stored directly in the leaf block.
868 Remote values are stored in an independent block in the attribute fork
869 (with no structure). Leaf blocks contain the following fields:
878 (magic number 0xfbee), a
882 total bytes of names and values, the
884 byte in the name area,
886 set if the block needs compaction, and array
893 array of structures containing a
896 (index into the block of the name), and flags
903 array of structures describing the attribute names and values. Fields
906 (length of value in bytes),
910 Fields present for local values:
912 (value string). Fields present for remote values:
914 (fork block number of containing the value).
919 Files with many extents in their data or attribute fork will have the
920 extents described by the contents of a Btree for that fork,
921 instead of being stored directly in the inode.
922 Each bmap Btree starts with a root block contained within the inode.
923 The other levels of the Btree are stored in filesystem blocks.
924 The blocks are linked to sibling left and right blocks at each level,
925 as well as by pointers from parent to child blocks.
926 Each block contains the following fields:
931 bmap Btree block magic number, 0x424d4150 ('BMAP').
934 level of this block above the leaf level.
937 number of records or keys in the block.
940 left (logically lower) sibling block, 0 if none.
943 right (logically higher) sibling block, 0 if none.
946 [leaf blocks only] array of extent records.
953 (1 if the extent is unwritten).
956 [nonleaf blocks only] array of key records. These are the first key
957 value of each block in the level below this one. Each record contains
961 [nonleaf blocks only] array of child block pointers.
962 Each pointer is a filesystem block number to the next level in the Btree.
967 There is one set of filesystem blocks forming the by-block-number
968 allocation Btree for each allocation group. The root block of this
969 Btree is designated by the
971 field in the coresponding AGF block.
972 The blocks are linked to sibling left and right blocks at each level,
973 as well as by pointers from parent to child blocks.
974 Each block has the following fields:
979 BNOBT block magic number, 0x41425442 ('ABTB').
982 level number of this block, 0 is a leaf.
985 number of data entries in the block.
988 left (logically lower) sibling block, 0 if none.
991 right (logically higher) sibling block, 0 if none.
994 [leaf blocks only] array of freespace records. Each record contains
1000 [nonleaf blocks only] array of key records. These are the first value
1001 of each block in the level below this one. Each record contains
1007 [nonleaf blocks only] array of child block pointers. Each pointer is a
1008 block number within the allocation group to the next level in the Btree.
1013 There is one set of filesystem blocks forming the by-block-count
1014 allocation Btree for each allocation group. The root block of this
1015 Btree is designated by the
1017 field in the coresponding AGF block. The blocks are linked to sibling
1018 left and right blocks at each level, as well as by pointers from parent
1019 to child blocks. Each block has the following fields:
1024 CNTBT block magic number, 0x41425443 ('ABTC').
1027 level number of this block, 0 is a leaf.
1030 number of data entries in the block.
1033 left (logically lower) sibling block, 0 if none.
1036 right (logically higher) sibling block, 0 if none.
1039 [leaf blocks only] array of freespace records. Each record contains
1045 [nonleaf blocks only] array of key records. These are the first value
1046 of each block in the level below this one. Each record contains
1052 [nonleaf blocks only] array of child block pointers. Each pointer is a
1053 block number within the allocation group to the next level in the Btree.
1058 User file blocks, and other blocks whose type is unknown, have this
1059 type for display purposes in
1061 The block data is displayed in hexadecimal format.
1064 A version 1 directory is organized as a Btree with the directory data
1065 embedded in the leaf blocks. The root of the Btree is found in block 0
1066 of the file. The index (sort order) of the Btree is the hash value of
1067 the entry name. All the blocks contain a
1069 structure at the beginning with the following fields:
1077 previous sibling block.
1080 magic number for this block type.
1084 The non-leaf (node) blocks have the following fields:
1092 (magic number 0xfebe), the
1094 of active entries, and the
1096 of this block above the leaves.
1099 array of entries containing
1105 value is a block number within the directory file to the child block, the
1107 is the last hash value in that block.
1111 The leaf blocks have the following fields:
1119 (magic number 0xfeeb), the
1123 (total name string bytes),
1125 flag (block needs compaction), and
1129 entries for free regions).
1132 array of structures containing
1135 (byte index into the block of the name string), and
1139 array of structures containing
1147 A version 2 directory has four kinds of blocks.
1148 Data blocks start at offset 0 in the file.
1149 There are two kinds of data blocks: single-block directories have
1150 the leaf information embedded at the end of the block, data blocks
1151 in multi-block directories do not.
1152 Node and leaf blocks start at offset 32GiB (with either a single
1153 leaf block or the root node block).
1154 Freespace blocks start at offset 64GiB.
1155 The node and leaf blocks form a Btree, with references to the data
1157 The freespace blocks form an index of longest free spaces within the
1160 A single-block directory block contains the following fields:
1167 number 0x58443242 ('XD2B') and an array
1169 of the longest 3 free spaces in the block
1170 .RB ( offset ", " length ).
1173 array of union structures. Each element is either an entry or a freespace.
1174 For entries, there are the following fields:
1180 For freespace, there are the following fields:
1188 value is the byte offset in the block of the start of the entry it
1192 array of leaf entries containing
1198 is a 64-bit word offset into the file.
1201 tail structure containing the total
1205 count of unused leaf entries.
1209 A data block contains the following fields:
1215 number 0x58443244 ('XD2D') and an array
1217 of the longest 3 free spaces in the block
1218 .RB ( offset ", " length ).
1221 array of union structures as for
1226 Leaf blocks have two possible forms. If the Btree consists of a single
1227 leaf then the freespace information is in the leaf block,
1228 otherwise it is in separate blocks and the root of the Btree is
1229 a node block. A leaf block contains the following fields:
1237 (magic number 0xd2f1 for the single leaf case, 0xd2ff for the true
1238 Btree case), the total
1240 of leaf entries, and
1242 count of unused leaf entries.
1245 leaf entries, as for
1249 [single leaf only] array of values which represent the longest freespace
1250 in each data block in the directory.
1253 [single leaf only] tail structure containing
1260 A node block is identical to that for types
1265 A freespace block contains the following fields:
1271 number 0x58443246 ('XD2F'),
1273 first data block number covered by this freespace block,
1275 number of valid entries, and
1277 number of entries representing real data blocks.
1280 array of values as for
1286 The quota information is stored in files referred to by the superblock
1290 fields. Each filesystem block in a quota file contains a constant number of
1291 quota entries. The quota entry size is currently 136 bytes, so with a 4KiB
1292 filesystem block size there are 30 quota entries per block. The
1294 command is used to locate these entries in the filesystem.
1295 The file entries are indexed by the user or project identifier
1296 to determine the block and offset.
1297 Each quota entry has the following fields:
1302 magic number, 0x4451 ('DQ').
1305 version number, currently 1.
1308 flags, values include 0x01 for user quota, 0x02 for project quota.
1311 user or project identifier.
1314 absolute limit on blocks in use.
1317 preferred limit on blocks in use.
1320 absolute limit on inodes in use.
1323 preferred limit on inodes in use.
1326 blocks actually in use.
1329 inodes actually in use.
1332 time when service will be refused if soft limit is violated for inodes.
1335 time when service will be refused if soft limit is violated for blocks.
1338 number of warnings issued about inode limit violations.
1341 number of warnings issued about block limit violations.
1344 absolute limit on realtime blocks in use.
1347 preferred limit on realtime blocks in use.
1350 realtime blocks actually in use.
1353 time when service will be refused if soft limit is violated for realtime blocks.
1356 number of warnings issued about realtime block limit violations.
1361 There is one set of filesystem blocks forming the inode allocation Btree for
1362 each allocation group. The root block of this Btree is designated by the
1364 field in the coresponding AGI block.
1365 The blocks are linked to sibling left and right blocks at each level,
1366 as well as by pointers from parent to child blocks.
1367 Each block has the following fields:
1372 INOBT block magic number, 0x49414254 ('IABT').
1375 level number of this block, 0 is a leaf.
1378 number of data entries in the block.
1381 left (logically lower) sibling block, 0 if none.
1384 right (logically higher) sibling block, 0 if none.
1387 [leaf blocks only] array of inode records. Each record contains
1389 allocation-group relative inode number,
1391 count of free inodes in this chunk, and
1393 bitmap, LSB corresponds to inode 0.
1396 [nonleaf blocks only] array of key records. These are the first value of each
1397 block in the level below this one. Each record contains
1401 [nonleaf blocks only] array of child block pointers. Each pointer is a
1402 block number within the allocation group to the next level in the Btree.
1407 Inodes are allocated in "chunks" of 64 inodes each. Usually a chunk is
1408 multiple filesystem blocks, although there are cases with large filesystem
1409 blocks where a chunk is less than one block. The inode Btree (see
1411 above) refers to the inode numbers per allocation group. The inode numbers
1412 directly reflect the location of the inode block on disk. Use the
1416 to a specific inode. Each inode contains four regions:
1422 contains the fixed information.
1424 is separated from the core due to journaling considerations, see type
1429 is a union structure that is different in size and format depending
1430 on the type and representation of the file data ("data fork").
1432 is an optional union structure to describe attribute data,
1433 that is different in size, format, and location depending on the presence
1434 and representation of attribute data, and the size of the
1436 data ("attribute fork").
1438 automatically selects the proper union members based on information
1441 The following are fields in the inode core:
1446 inode magic number, 0x494e ('IN').
1449 mode and type of file, as described in
1456 inode version, 1 or 2.
1461 union data (0: xfs_dev_t, 1: local file \- in-inode directory or symlink,
1462 2: extent list, 3: Btree root, 4: unique id [unused]).
1465 number of links to the file in a version 1 inode.
1468 number of links to the file in a version 2 inode.
1471 owner's project id (version 2 inode only).
1480 time last accessed (seconds and nanoseconds).
1486 time created or inode last modified.
1489 number of bytes in the file.
1492 total number of blocks in the file including indirect and attribute.
1495 basic/minimum extent size for the file.
1498 number of extents in the data fork.
1501 number of extents in the attribute fork.
1504 attribute fork offset in the inode, in 64-bit words from the start of
1510 data (1: local attribute data, 2: extent list, 3: Btree root).
1516 DMAPI state information.
1519 file is the realtime bitmap and is "new" format.
1522 file has preallocated data space after EOF.
1525 file data is in the realtime subvolume.
1528 inode generation number.
1532 The following fields are in the
1538 bmap Btree root. This looks like a
1540 block with redundant information removed.
1543 array of extent descriptors.
1546 dev_t for the block or character device.
1549 shortform (in-inode) version 1 directory. This consists of a
1555 of active entries in the directory, followed by an array
1559 entries. Each such entry contains
1567 shortform (in-inode) version 2 directory. This consists of a
1571 of active entries in the directory, an
1573 of entries with inumbers that don't fit in a 32-bit value, and the
1575 inode number, followed by an array
1579 entries. Each such entry contains
1583 used when the directory is converted to a larger form, a
1589 symbolic link string value.
1593 The following fields are in the
1595 attribute fork union if it exists:
1599 bmap Btree root, as above.
1602 array of extent descriptors.
1605 shortform (in-inode) attribute values. This consists of a
1609 (total size in bytes) and a
1611 of active entries, followed by an array
1615 entries. Each such entry contains
1627 Log blocks contain the journal entries for XFS.
1628 It's not useful to examine these with
1631 .BR xfs_logprint (8)
1635 If the filesystem has a realtime subvolume, then the
1637 field in the superblock refers to a file that contains the realtime bitmap.
1638 Each bit in the bitmap file controls the allocation of a single realtime extent
1639 (set == free). The bitmap is processed in 32-bit words, the LSB of a word is
1640 used for the first extent controlled by that bitmap word. The
1642 field of the realtime bitmap inode contains a counter
1643 that is used to control where the next new realtime file will start.
1646 If the filesystem has a realtime subvolume, then the
1648 field in the superblock refers to a file that contains the realtime summary
1649 data. The summary file contains a two-dimensional array of 16-bit values.
1650 Each value counts the number of free extent runs
1651 (consecutive free realtime extents)
1652 of a given range of sizes that starts in a given bitmap block.
1653 The size ranges are binary buckets (low size in the bucket is a power of 2).
1654 There are as many size ranges as are necessary given the size of the
1656 The first dimension is the size range,
1657 the second dimension is the starting bitmap block number
1658 (adjacent entries are for the same size, adjacent bitmap blocks).
1661 There is one sb (superblock) structure per allocation group.
1662 It is the first disk block in the allocation group.
1663 Only the first one (block 0 of the filesystem) is actually used;
1664 the other blocks are redundant information for
1666 to use if the first superblock is damaged. Fields defined:
1671 superblock magic number, 0x58465342 ('XFSB').
1674 filesystem block size in bytes.
1677 number of filesystem blocks present in the data subvolume.
1680 number of filesystem blocks present in the realtime subvolume.
1683 number of realtime extents that
1688 unique identifier of the filesystem.
1691 starting filesystem block number of the log (journal).
1692 If this value is 0 the log is "external".
1698 realtime bitmap inode number.
1701 realtime summary data inode number.
1704 realtime extent size in filesystem blocks.
1707 size of an allocation group in filesystem blocks.
1710 number of allocation groups.
1713 number of realtime bitmap blocks.
1716 number of log blocks (filesystem blocks).
1719 filesystem version information.
1720 This value is currently 1, 2, 3, or 4 in the low 4 bits.
1721 If the low bits are 4 then the other bits have additional meanings.
1722 1 is the original value.
1723 2 means that attributes were used.
1724 3 means that version 2 inodes (large link counts) were used.
1725 4 is the bitmask version of the version number.
1726 In this case, the other bits are used as flags
1727 (0x0010: attributes were used,
1728 0x0020: version 2 inodes were used,
1729 0x0040: quotas were used,
1730 0x0080: inode cluster alignment is in force,
1731 0x0100: data stripe alignment is in force,
1735 0x1000: unwritten extent tracking is on,
1736 0x2000: version 2 directories are in use).
1739 sector size in bytes, currently always 512.
1740 This is the size of the superblock and the other header blocks.
1743 inode size in bytes.
1746 number of inodes per filesystem block.
1749 obsolete, filesystem name.
1752 obsolete, filesystem pack name.
1783 aborted before completing this filesystem.
1786 maximum percentage of filesystem space used for inode blocks.
1789 number of allocated inodes.
1792 number of allocated inodes that are not in use.
1795 number of free data blocks.
1798 number of free realtime extents.
1801 user quota inode number.
1804 project quota inode number; this is currently unused.
1808 (0x01: user quota accounting is on,
1809 0x02: user quota limits are enforced,
1810 0x04: quotacheck has been run on user quotas,
1811 0x08: project quota accounting is on,
1812 0x10: project quota limits are enforced,
1813 0x20: quotacheck has been run on project quotas).
1816 random flags. 0x01: only read-only mounts are allowed.
1819 shared version number (shared readonly filesystems).
1822 inode chunk alignment in filesystem blocks.
1825 stripe or RAID unit.
1828 stripe or RAID width.
1831 log2 of directory block size (filesystem blocks).
1836 Symbolic link blocks are used only when the symbolic link value does
1837 not fit inside the inode. The block content is just the string value.
1838 Bytes past the logical end of the symbolic link value have arbitrary values.
1841 User file blocks, and other blocks whose type is unknown,
1842 have this type for display purposes in
1844 The block data is displayed in two columns: Hexadecimal format
1845 and printable ASCII chars.
1847 Many messages can come from the
1850 command; these are documented in
1857 .BR xfs_logprint (8),
1858 .BR xfs_metadump (8),