'\" t .\" Title: debugvmfs .\" Author: [see the "AUTHORS" section] .\" Generator: DocBook XSL Stylesheets v1.76.1 .\" Date: 03/25/2012 .\" Manual: vmfs-tools .\" Source: \ \& 0.2.5.19.g4a80 .\" Language: English .\" .TH "DEBUGVMFS" "8" "03/25/2012" "\ \& 0\&.2\&.5\&.19\&.g4a80" "vmfs\-tools" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" debugvmfs \- VMFS file system debugger .SH "SYNOPSIS" .sp \fBdebugvmfs\fR \fIVOLUME\fR\&... \fICOMMAND\fR [ \fIOPTIONS\fR ] .SH "DESCRIPTION" .sp The \fBdebugvmfs\fR program allows to display various informations about VMFS file systems, and to access data within the file systems\&. .sp The \fIVOLUME\fR to be opened can be either a block device or an image file\&. When the VMFS spreads accross several extents, all extents must be given\&. .sp Please note that most commands are still likely to change in future versions\&. .SH "SPECIFYING FILES" .sp Some commands take a \fIfilespec\fR as an argument\&. A \fIfilespec\fR may take either of the following forms: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} A path name, relative to the root of the filesystem if it starts with \*(Aq/\*(Aq, or relative to the current working directory otherwise (interactive mode only)\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} An inode number, enclosed between angle brackets, e\&.g\&. \*(Aq<4>\*(Aq, \*(Aq<0x1400004>\*(Aq .RE .SH "COMMANDS" .PP \fBcat\fR \fIfilespec\fR [ \&... ] .RS 4 Outputs the content of the given files from the VMFS\&. .RE .PP \fBls\fR [ \fB\-l\fR ] \fIfilespec\fR .RS 4 Lists files contained at the given location within the VMFS\&. .sp With \fB\-l\fR, gives some more information, much like the output from \fBls\fR(1) when given the \fB\-l\fR option\&. .RE .PP \fBtruncate\fR \fIfilespec\fR \fIlength\fR .RS 4 Truncate the file to the specified length\&. R/W support must be enabled\&. .RE .PP \fBchmod\fR \fIfilespec\fR \fImode\fR .RS 4 Change file permissions to the given mode\&. .RE .PP \fBdf\fR .RS 4 Outputs information about file system size\&. .RE .PP \fBget_file_block\fR \fIfilespec\fR \fIposition\fR .RS 4 Get file block corresponding to position in the specified file\&. .RE .PP \fBcheck_vol_bitmaps\fR .RS 4 Checks volume bitmaps consistency\&. .RE .PP \fBshow_heartbeats\fR .RS 4 Outputs active heartbeats on the file system\&. .RE .PP \fBread_block\fR \fIblock_id\fR [ \&... ] .RS 4 Outputs content within the specified block_id in binary .RE .PP \fBget_block_status\fR \fIblock_id\fR .RS 4 Get status (allocated or free) of the specified block_id\&. .RE .PP \fBalloc_block_fixed\fR \fIblock_id\fR .RS 4 Allocate the specified block_id\&. R/W support must be enabled\&. .RE .PP \fBalloc_block\fR \fIblock_type\fR .RS 4 Allocate a block of the specified type\&. R/W support must be enabled\&. .sp Allowed block types are: 1 (File Block), 2 (Sub\-Block), 3 (Pointer Block) and 4 (File Descriptor / Inode)\&. .RE .PP \fBfree_block\fR \fIblock_id\fR .RS 4 Free the specified block_id\&. R/W support must be enabled\&. .sp Warning: can cause damage since no heartbeat is used at this time and a block used by a file can be freed\&. .RE .PP \fBshow\fR .RS 4 Display value(s) of the given variable\&. See the \fBVARIABLES\fR section for more details\&. When no variable is given, it lists the top\-level properties\&. .RE .PP \fBshell\fR .RS 4 Starts an interactive session\&. All of the above commands can be executed from within the interactive session\&. .sp The current working directory can be changed with the \fBcd\fR command, followed by a filespec\&. .sp The following output redirections are supported within the shell: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fIcmd\fR > \fIoutput\fR .sp Puts the output of \fIcmd\fR in the \fIoutput\fR file\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fIcmd\fR >> \fIoutput\fR .sp Appends the output of \fIcmd\fR to the \fIoutput\fR file\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fIcmd\fR | \fIexternal command\fR .sp Sends the output of \fIcmd\fR to the input of \fIexternal command\fR\&. The \fIexternal command\fR itself can contain output redirection\&. .sp Examples: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} read_block 0x00000681 | less .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} cat /\&.fdc\&.sf | hexdump \-C .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} cat /\&.fdc\&.sf | hexdump \-C > /tmp/fdc\&.hex .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} cat /\&.fdc\&.sf | hexdump \-C | less .RE .RE .RE .SH "VARIABLES" .sp Variables in debugvmfs represent structures on the filesystem\&. The currently supported top\-level variables are the following: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBvol_version\fR .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBversion\fR .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBlabel\fR .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBmode\fR .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBuuid\fR .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBctime\fR .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBblock_size\fR .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBsubblock_size\fR .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBfdc_header_size\fR .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBfdc_bitmap_count\fR .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBfbb\fR .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBfdc\fR .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBpbc\fR .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBsbc\fR .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBfs\fR .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBlvm\fR .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBblkid\fR[\fIblk\fR] .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBdirent\fR["\fIpath\fR"] .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBinode\fR["\fIfilespec\fR"] .RE .sp The \fBvol_version\fR, \fBversion\fR, \fBlabel\fR, \fBmode\fR, \fBuuid\fR, \fBctime\fR, \fBblock_size\fR, \fBsubblock_size\fR, \fBfdc_header_size\fR, and \fBfdc_bitmap_count\fR properties are low\-level information about the filesystem\&. .sp The \fBfbb\fR, \fBfdc\fR, \fBpbc\fR and \fBsbc\fR variables are bitmaps\&. Running them through the \fBshow\fR command will display all the bitmaps header fields\&. Each of these fields can also be displayed individually: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fIbitmap\fR\&.\fBitems_per_bitmap_entry\fR .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fIbitmap\fR\&.\fBbmp_entries_per_area\fR .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fIbitmap\fR\&.\fBhdr_size\fR .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fIbitmap\fR\&.\fBdata_size\fR .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fIbitmap\fR\&.\fBarea_size\fR .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fIbitmap\fR\&.\fBarea_count\fR .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fIbitmap\fR\&.\fBtotal_items\fR .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fIbitmap\fR\&.\fBused_items\fR .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fIbitmap\fR\&.\fBfree_items\fR .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fIbitmap\fR\&.\fBentry\fR[\fIn\fR] .RE .sp e\&.g\&. to display the data size of the fdc bitmap, type \fBshow fdc\&.data_size\fR\&. .sp Each \fIbitmap\fR\&.\fBentry\fR[\fIn\fR] (where 0 ≤ \fIn\fR < \fIbitmap\fR\&.\fBbmp_entries_per_area\fR * \fIbitmap\fR\&.\fBarea_count\fR) contains information about each entry in the bitmap\&. The available fields are: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fIbitmap\fR\&.\fBentry\fR[\fIn\fR]\&.id .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fIbitmap\fR\&.\fBentry\fR[\fIn\fR]\&.total .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fIbitmap\fR\&.\fBentry\fR[\fIn\fR]\&.free .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fIbitmap\fR\&.\fBentry\fR[\fIn\fR]\&.ffree .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fIbitmap\fR\&.\fBentry\fR[\fIn\fR]\&.mdh .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fIbitmap\fR\&.\fBentry\fR[\fIn\fR]\&.item[\fIm\fR] .RE .sp The \fIbitmap\fR\&.\fBentry\fR[\fIn\fR]\&.mdh is a metadata header\&. See further below for more details about metadata headers\&. .sp Each \fIbitmap\fR\&.\fBentry\fR[\fIn\fR]\&.item[\fIm\fR] (where 0 ≤ \fIm\fR < \fIbitmap\fR\&.\fBitems_per_bitmap_entry\fR) contains information about a given item in the given entry\&. The available fields are: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fIbitmap\fR\&.\fBentry\fR[\fIn\fR]\&.item[\fIm\fR]\&.used .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fIbitmap\fR\&.\fBentry\fR[\fIn\fR]\&.item[\fIm\fR]\&.dump .RE .sp The \fBpbc\fR bitmap has an additional field: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBpbc\fR\&.\fBentry\fR[\fIn\fR]\&.item[\fIm\fR]\&.blocks .RE .sp The \fBlvm\fR variable contains low\-level information about the physical and logical volumes\&. The available fields are: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBlvm\fR\&.\fBuuid\fR .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBlvm\fR\&.\fBsize\fR .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBlvm\fR\&.\fBblocks\fR .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBlvm\fR\&.\fBnum_extents\fR .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBlvm\fR\&.\fBextent\fR[\fIn\fR] .RE .sp Each \fBlvm\fR\&.\fBextent\fR[\fIn\fR] (where 0 ≤ \fIn\fR < \fBlvm\fR\&.\fBnum_extents\fR) contains low\-level information about the physical volumes\&. The available fields are: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBlvm\fR\&.\fBextent\fR[\fIn\fR]\&.device .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBlvm\fR\&.\fBextent\fR[\fIn\fR]\&.uuid .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBlvm\fR\&.\fBextent\fR[\fIn\fR]\&.lun .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBlvm\fR\&.\fBextent\fR[\fIn\fR]\&.version .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBlvm\fR\&.\fBextent\fR[\fIn\fR]\&.name .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBlvm\fR\&.\fBextent\fR[\fIn\fR]\&.size .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBlvm\fR\&.\fBextent\fR[\fIn\fR]\&.num_segments .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBlvm\fR\&.\fBextent\fR[\fIn\fR]\&.first_segment .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBlvm\fR\&.\fBextent\fR[\fIn\fR]\&.last_segment .RE .sp Each \fBblkid\fR[\fIblk\fR] (where \fIblk\fR is a block id) contains information on the given block id\&. The available fields are: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBblkid\fR[\fIblk\fR]\&.item .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBblkid\fR[\fIblk\fR]\&.flags .RE .sp Each \fBdirent\fR[\fIpath\fR] (where \fIpath\fR is a path relative to the current directory in the shell or / outside the shell) contains information on the directory entry corresponding to the given path\&. The available fields are: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBdirent\fR["\fIpath\fR"]\&.type .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBdirent\fR["\fIpath\fR"]\&.block_id .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBdirent\fR["\fIpath\fR"]\&.record_id .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBdirent\fR["\fIpath\fR"]\&.name .RE .sp Each \fBinode\fR[\fIfilespec\fR] contains information on the inode corresponding to the given filespec\&. The available fields are: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBinode\fR["\fIfilespec\fR"]\&.id .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBinode\fR["\fIfilespec\fR"]\&.id2 .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBinode\fR["\fIfilespec\fR"]\&.nlink .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBinode\fR["\fIfilespec\fR"]\&.type .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBinode\fR["\fIfilespec\fR"]\&.flags .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBinode\fR["\fIfilespec\fR"]\&.size .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBinode\fR["\fIfilespec\fR"]\&.blk_size .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBinode\fR["\fIfilespec\fR"]\&.blk_count .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBinode\fR["\fIfilespec\fR"]\&.uid .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBinode\fR["\fIfilespec\fR"]\&.gid .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBinode\fR["\fIfilespec\fR"]\&.mode .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBinode\fR["\fIfilespec\fR"]\&.zla .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBinode\fR["\fIfilespec\fR"]\&.tbz .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBinode\fR["\fIfilespec\fR"]\&.cow .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBinode\fR["\fIfilespec\fR"]\&.atime .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBinode\fR["\fIfilespec\fR"]\&.mtime .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBinode\fR["\fIfilespec\fR"]\&.ctime .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBinode\fR["\fIfilespec\fR"]\&.rdm_id .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBinode\fR["\fIfilespec\fR"]\&.mdh .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBinode\fR["\fIfilespec\fR"]\&.blocks .RE .sp Metadata headers are being used in several places, such as \fIbitmap\fR\&.\fBentry\fR[\fIn\fR]\&.mdh and \fBinode\fR["\fIfilespec\fR"]\&.mdh\&. They mostly contain information about clustered accesses to metadata on the filesystem\&. The available fields are: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fImdh\fR\&.magic .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fImdh\fR\&.pos .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fImdh\fR\&.hb_pos .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fImdh\fR\&.hb_lock .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fImdh\fR\&.hb_uuid .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fImdh\fR\&.hb_seq .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fImdh\fR\&.obj_seq .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fImdh\fR\&.mtime .RE .sp Variable values can also be used in expressions using square brackets to use the variable value as an index\&. For example: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBblkid\fR[\fBinode\fR["\fIfilespec\fR"]\&.id] .RE .sp Enclosing a variable name with parentheses will use that variable value as a variable name\&. For example: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} (\fBblkid\fR[\fIblk\fR]\&.item)\&.status .RE .SH "AUTHORS" .sp Christophe Fillot <\m[blue]\fBcf@utc\&.fr\fR\m[]\&\s-2\u[1]\d\s+2>, Mike Hommey <\m[blue]\fBmh@glandium\&.org\fR\m[]\&\s-2\u[2]\d\s+2> .SH "SEE ALSO" .sp vmfs\-fuse(8) .SH "NOTES" .IP " 1." 4 cf@utc.fr .RS 4 \%mailto:cf@utc.fr .RE .IP " 2." 4 mh@glandium.org .RS 4 \%mailto:mh@glandium.org .RE