1
.TH "fsck.ocfs2.checks" "8" "September 2010" "Version 1.6.3" "OCFS2 Manual Pages"
3
fsck.ocfs2.checks \- Consistency checks that
5
performs and its means for fixing inconsistencies.
9
is used to check an OCFS2 file system. It performs many consistency checks
10
and will offer to fix faults that it finds. This man page lists the problems
11
it may find and describes their fixes. The problems are indexed by the error
14
emits when it describes the problem and asks if it should be fixed.
16
The prompts are constructed such that answering 'no' results in no changes
17
to the file system. This may result in errors later on that stop
26
Extent blocks contain a record of the disk block where they are located. An
27
extent block was found at a block that didn't match its recorded location.
29
Answering yes will update the data structure in the extent block to reflect
30
its real location on disk.
33
Extent blocks are created with a generation number to match the generation
34
number of the volume at the time of creation. An extent block was found which
35
contains a generation number that doesn't match.
37
Answering yes implies that the generation number is correct and that the
38
extent block is from a previous file system. The extent block will be
39
ignored and the file that contains it will lose the data it referenced.
42
Extent blocks are created with a generation number to match the generation
43
number of the volume at the time of creation. An extent block was found which
44
contains a generation number that doesn't match.
46
Answering yes implies that the generation number in the extent block is
47
incorrect and that the extent block is valid. The generation number in the
48
block is updated to match the generation number in the volume.
50
.SS "EXTENT_MARKED_UNWRITTEN"
51
An extent record has the UNWRITTEN flag set, but the filesystem
52
feature set does not include unwritten extents.
54
Answering yes clears the UNWRITTEN flag. This is safe to do; as the
55
feature is disabled anyway.
57
.SS "EXTENT_MARKED_REFCOUNTED"
58
An extent record has the REFCOUNTED flag set, but neither the filesystem
59
nor the file has the REFCOUNTED flag set.
61
Answering yes clears the REFCOUNTED flag.
63
.SS "EXTENT_BLKNO_UNALIGNED"
64
The block that marks the start of an extent should always fall on the start
65
of a cluster. An extent was found that starts part-way into a cluster.
67
Answering yes moves the start of the extent back to the start of the addressed
68
cluster. This may add data to the middle of the file that contains this
71
.SS "EXTENT_CLUSTERS_OVERRUN"
72
An extent was found which claims to contain clusters which are beyond the
75
Answering yes clamps the extent to the end of the volume. This may result
76
in a reduced file size for the file that contains the extent, but it
77
couldn't have addressed those final clusters anyway. One can imagine this
78
problem arising if there are problems shrinking a volume.
80
.SS "EXTENT_EB_INVALID"
81
Deep extent trees are built by forming a tree out of extent blocks. An
82
extent tree references an invalid extent block.
84
Answering yes stops the tree from referencing the invalid extent block. This
85
may truncate data from the file which contains the tree.
87
.SS "EXTENT_LIST_DEPTH"
88
Extent lists contain a record of their depth in the tree. An extent list
89
was found whose recorded depth doesn't match the position they have in the
92
Answering yes updates the depth field in the list to match the tree on disk.
94
.SS "EXTENT_LIST_COUNT"
95
The number of entries in an extent list is bounded by either the size of the
96
inode or the size of the block which contains it. An extent list was found
97
which claims to have more entries than would fit in its container.
99
Answering yes updates the count field in the extent list to match the
100
container. Answering no to this question may stop further fixes from being
101
done because the count value can not be trusted.
103
.SS "EXTENT_LIST_FREE"
104
The number of free entries in an extent list must be less than the total
105
number of entries in the list. A list was found which claims to have more
106
free entries than possible entries.
108
Answering yes sets the number of free entries in the list equal to the total
111
.SS "EXTENT_BLKNO_RANGE"
112
An extent record was found which references a block which can not be
113
referenced by an extent. The referenced block is either very early in the
114
volume, and thus reserved, or beyond the end of the volume.
116
Answering yes removes this extent record from the tree. This may remove data
117
from the file which owns the tree but any such data was inaccessible.
120
The bitmap inode indicates a different clusters per group than the group
121
descriptor. This value is typically static and only modified by tunefs during
122
volume resize and that too only on volumes having only one cluster group.
124
Answering yes updates the clusters per group on the bitmap inode to the
125
corresponding value in the group descriptor.
127
.SS "SUPERBLOCK_CLUSTERS"
128
The super block indicates a different total clusters value than the global
129
bitmap. This is only possible due to a failed volume resize operation.
131
Answering yes updates the total clusters in the super block to the value
132
specified in the global bitmap.
134
.SS "FIXED_CHAIN_CLUSTERS"
135
The global bitmap inode was repaired, resulting in a change to the total
136
cluster count of the filesystem.
138
Answering yes updates the total clusters in the super block to the value
139
specified in the global bitmap.
143
.SS "GROUP_UNEXPECTED_DESC"
144
The group descriptors that make up the global bitmap chain allocator reside
145
at predictable locations on disk. A group descriptor was found in the global
146
bitmap allocator which isn't at one of these locations and so shouldn't
149
Answering yes removes this descriptor from the global bitmap allocator.
151
.SS "GROUP_EXPECTED_DESC"
152
The group descriptors that make up the global bitmap chain allocator reside
153
at predictable locations on disk. A group descriptor at one of these
154
locations was not linked into the global bitmap allocator.
156
Answering yes will relink this group into the allocator.
159
A group descriptor was found with a generation number that doesn't match
160
the generation number of the volume.
162
Answering yes sets the group descriptor's generation equal to the generation
163
number in the volume.
166
Group descriptors contain a pointer to the allocator inode which contains
167
the chain they belong to. A group descriptor was found in an allocator
168
inode that doesn't match the descriptor's parent pointer.
170
Answering yes updates the group descriptor's parent pointer to match the inode
173
.SS "GROUP_DUPLICATE"
174
Group descriptors contain a pointer to the allocator inode which contains
175
the chain they belong to. A group descriptor was found in two allocator
176
inodes so it may be duplicated.
178
Answering yes removes the group descriptor from current allocator inode.
181
Group descriptors have a field which records their block location on disk. A
182
group descriptor was found at a given location but is recorded as being
183
located somewhere else.
185
Answering yes updates the group descriptor's recorded location to match where
186
it actually is found on disk.
189
Group descriptors are found in a number of different singly-linked chains
190
in an allocator inode. A group descriptor records the chain number that it
191
is linked in. A group descriptor was found whose chain field doesn't match
192
the chain it was found in.
194
Answering yes sets the group descriptor's chain field to match the chain
197
.SS "GROUP_FREE_BITS"
198
A group descriptor records the number of bits in its bitmap that are free.
199
A group descriptor was found which claims to have more free bits than are
202
Answering yes decreases the number of recorded free bits so that it equals
203
the total number of bits in the group descriptor's bitmap.
206
The chain list embedded in an inode is limited by the block size and the
207
number of bytes consumed by the rest of the inode. A chain list header was
208
found which claimed that there are more entries in the list then could
211
Answering yes resets the header's cl_count member to the maximum size allowed
212
by the block size after accounting for the space consumed by the inode.
214
.SS "CHAIN_NEXT_FREE"
215
This is identical to CHAIN_COUNT except that it is testing and fixing the
216
pointer to the next free list entry recorded in the cl_next_free_rec member
217
instead of the total number of entries.
220
Chain entries need to be packed such that there are no chains without
221
descriptors found before the chain that is marked as free by the chain header.
222
A chain without descriptors was found found before that chain that was
225
Answering yes will remove the unused chain and shift the remaining chains
228
.SS "CHAIN_I_CLUSTERS"
229
Chain allocator inodes have an i_clusters value that represents the number
230
of clusters used by the allocator. An inode was found whose i_clusters
231
value doesn't match the number of clusters its chains cover.
233
Answering yes updates i_clusters in the inode to reflect what was actually
234
found by walking the chain.
237
Chain allocator inodes multiply the number of bytes per cluster
238
by the their i_clusters value and store it in i_size. An inode was found
239
which didn't have the correct value in its i_size.
241
Answering yes updates i_size to be the product of i_clusters and the cluster
242
size. Nothing else uses this value, and previous versions of tools didn't
243
calculate it properly, so don't be too worried if this error appears.
245
.SS "CHAIN_GROUP_BITS"
246
The inode that contains an embedded chain list has fields which record the
247
total number of bits covered by the chain as well as the amount free. These
248
fields didn't match what was found in the chain.
250
Answering yes updates the fields in the inode to reflect what was actually
251
found by walking the chain.
253
.SS "CHAIN_HEAD_LINK_RANGE"
254
The header that starts a chain tried to reference a group descriptor at
255
a block number that couldn't be valid.
257
Answering yes will clear the reference to this invalid block and truncate
258
the chain that it started.
261
A reference was made to a group descriptor whose generation number doesn't
262
match the generation of the volume.
264
Answering yes to this question implies that the group descriptor is invalid
265
and the chain is truncated at the point that it referred to this invalid
266
group descriptor. Answering no to this question considers the group
267
descriptor as valid and its generation may be fixed.
269
.SS "CHAIN_LINK_MAGIC"
270
Chains are built by chain headers and group descriptors which are linked
271
together by block references. A reference was made to a group descriptor
272
at a given block but a valid group descriptor signature wasn't found
275
Answering yes clears the reference to this invalid block and truncates the
276
chain at the point of the reference.
278
.SS "CHAIN_LINK_RANGE"
279
Chains are built by chain headers and group descriptors which are linked
280
together by block references. A reference a block was found which
281
can't possibly be valid because it was either too small or extended beyond the
284
Answering yes truncates the chain in question by zeroing the invalid block
285
reference. This shortens the chain in question and could result in more
286
fixes later if the part of the chain that couldn't be referenced was valid
290
A chain's header contains members which record the total number of bits in the
291
chain as well as the number of bits that are free. After walking through a
292
chain it was found that the number of bits recorded in its header don't match
293
what was found by totalling up the group descriptors.
295
Answering yes updates the c_total and c_free members of the header to reflect
296
what was found in the group descriptors in the chain.
298
.SS "DISCONTIG_BG_DEPTH"
299
A discontiguous block group has an extent list which records all the clusters
300
allocated to it. Discontiguous block groups only support extent lists with
301
a tree depth of 0. A block group claims to have a tree depth greater than 0.
303
Answering yes will set the tree depth of the extent list to 0.
305
.SS "DISCONTIG_BG_COUNT"
306
A discontiguous block group has an extent list which records all the clusters
307
allocated to it. A block group claims to have more records than can actually
310
Answering yes will set the record count to the maximum possible.
312
.SS "DISCONTIG_BG_REC_RANGE"
313
Block groups set aside clusters to be used for metadata. A discontiguous
314
block group claims to contain clusters beyond the end of the volume.
316
Answering yes will remove the block group.
318
.SS "DISCONTIG_BG_CORRUPT_LEAVES"
319
A discontiguous block group has an extent list which records all the clusters
320
allocated to it. A group has more than one extent claiming to have an
321
impossible number of clusters.
323
Answering yes will remove the block group.
325
.SS "DISCONTIG_BG_CLUSTERS"
326
Extent records in a discontiguous block group were found having more clusters
327
allocated then a block group can have.
329
Answering yes will remove the block group.
331
.SS "DISCONTIG_BG_LESS_CLUSTERS"
332
Extent records in a discontiguous block group were found having less clusters
333
allocated then a block group can have.
335
Answering yes will remove the block group.
337
.SS "DISCONTIG_BG_NEXT_FREE_REC"
338
A discontiguous block group has an extent list which records all the clusters
339
allocated to it. A group was found with fewer filled in extents than it claims
340
to have. The filled in extents describe a complete and correct group.
342
Answering yes will set the used extent count to the number of filled extents.
344
.SS "DISCONTIG_BG_LIST_CORRUPT"
345
A discontiguous block group has an extent list which records all the clusters
346
allocated to it. The group claims to have more extents than is possible, and
347
the existing extents contain errors.
349
Answering yes will remove the block group.
351
.SS "DISCONTIG_BG_REC_CORRUPT"
352
A discontiguous block group has a extent list which records all the clusters
353
allocated to it. A group was found with one extent claiming too many
354
clusters but the sum of the remaining extents are equal to the total clusters
357
Answering yes will remove the block group.
359
.SS "DISCONTIG_BG_LEAF_CLUSTERS"
360
A discontiguous block group has a extent list which records all the clusters
361
allocated to it. A group was found with one extent claiming too many
362
clusters, but the remaining extents are correct.
364
Answering yes will set the number of the clusters on the broken extent
365
to the difference between the total clusters a group must have and the
366
sum of the remaining extents.
370
.SS "INODE_ALLOC_REPAIR"
371
The inode allocator did not accurately reflect the set of inodes that are
372
free and in use in the volume.
374
Answering yes will update the inode allocator bitmaps. Each bit that
375
doesn't match the state of its inode will be inverted.
378
Each inode records the node whose allocator is responsible for the inode. An
379
inode was found in a given node's allocator but the inode itself claimed to
380
belong to a different node.
382
Answering yes will correct the inode to point to the node's allocator that it
386
Each node has a local allocator contained in a block that is used to allocate
387
clusters in batches. A node's local allocator claims to reflect more bytes
388
than are possible for the volume's block size.
390
Answering yes decreases the local allocator's size to reflect the volume's
394
A given node's local allocator isn't in use but it claims to have bits
395
in use in its bitmap.
397
Answering yes zeros this used field.
400
A given node's local allocator isn't in use but it has a field which records
401
the bitmap as starting at a non-zero cluster offset.
403
Answering yes zeros the bm_off field.
405
.SS "LALLOC_BM_OVERRUN"
406
Each local allocator contains a reference to the first cluster that its bitmap
407
addresses. A given local allocator was found which references a starting
408
cluster that is beyond the end of the volume.
410
Answering yes resets the given local allocator. No allocated data will
414
The given local allocator claims to cover more bits than are possible for the
415
size in bytes of its bitmap.
417
Answering yes decreases the number of bits the allocator covers to reflect
418
the size in bytes of the bitmap and resets the allocator. No allocated
421
.SS "LALLOC_BM_STRADDLE"
422
The given local allocator claims to cover a region of clusters which extents
423
beyond the end of the volume.
425
Answering yes resets the given local allocator. No allocated data will
428
.SS "LALLOC_USED_OVERRUN"
429
The given local allocator claims to have more bits in use than it has total
432
Answering yes decreases the number of bits used so that it equals the total
433
number of available bits.
436
A local allocator inode was found to have problems. This gives the operator
437
a chance to just reset the local allocator inode.
439
Answering yes clears the local allocator. No information is lost but the
440
global bitmap allocator may need to be updated to reflect clusters that were
441
reserved for the local allocator but were free.
444
The given truncate log inode contains a count that is greater than the
445
value that is possible given the size of the inode.
447
Answering yes resets the count value to the possible maximum.
450
The given truncate log inode claims to have more records in use than
451
it is possible to store in the inode.
453
Answering yes resets the record of the number used to the maximum
456
.SS "TRUNCATE_REC_START_RANGE"
457
A truncate record was found which claims to start at a cluster that is beyond
458
the number of clusters in the volume.
460
Answering yes will clear the truncate record. This may result in previously
461
freed space being marked as allocated. This will be fixed up later as the
462
allocator is updated to match what is used by the file system.
464
.SS "TRUNCATE_REC_WRAP"
465
Clusters are recorded as 32bit values. A truncate record was found which
466
claims to have enough clusters to cause this value to wrap. This could
467
never be the case and is a sure sign of corruption.
469
Answering yes will clear the truncate record. This may result in previously
470
freed space being marked as allocated. This will be fixed up later as the
471
allocator is updated to match what is used by the file system.
473
.SS "TRUNCATE_REC_RANGE"
474
A truncate record was found which claims to reference a region of clusters
475
which partially extends beyond the number of clusters in the volume.
477
Answering yes will clear the truncate record. This may result in previously
478
freed space being marked as allocated. This will be fixed up later as the
479
allocator is updated to match what is used by the file system.
482
Inodes are created with a generation number to match the generation
483
number of the volume at the time of creation. An Inode was found which
484
contains a generation number that doesn't match.
486
Answering yes implies that the generation number is correct and that the
487
inode is from a previous file system. The inode will be recorded as free.
490
Inodes are created with a generation number to match the generation
491
number of the volume at the time of creation. An inode was found which
492
contains a generation number that doesn't match.
494
Answering yes implies that the generation number in the inode is
495
incorrect and that the inode is valid. The generation number in the
496
inode is updated to match the generation number in the volume.
499
Inodes contain a field that must match the block that they reside in.
500
An inode was found at a block that doesn't match the field in the inode.
502
Answering yes updates the field to match the inode's position on disk.
505
The super block contains a reference to the inode that contains the root
506
directory. This block was found to contain an inode that isn't a directory.
508
Answering yes clears this inode. The operator will be asked to recreate
509
the root directory at a point in the near future.
512
Inodes contain a field describing the time at which they were deleted. This
513
can not be set for an inode that is still in use. An inode was found
514
which is in use but which contains a non-zero dtime.
516
Answering yes implies that the inode is still valid and resets its dtime
520
The target name for a symbolic link is stored either as file contents for
521
that inode or in the inode structure itself on disk. Only small destination
522
names are stored in the inode structure. The i_blocks field of the inode
523
indicates that the name is stored in the inode when it is zero. An inode
524
was found that has both i_blocks set to zero and file contents.
526
Answering yes clears the inode and so deletes the link.
529
The targets of links on disk must be null terminated. A link was found
530
whose target wasn't null terminated.
532
Answering yes clears the inode and so deletes the link.
535
The size of a link on disk must match the length of its target string.
536
A link was found whose size does not.
538
Answering yes updates the link's size to reflect the length of its target
542
Links can not be sparse. There must be exactly as many blocks allocated
543
as are needed to cover its size. A link was found which doesn't have enough
544
blocks allocated to cover its size.
546
Answering yes clears the link's inode thus deleting the link.
549
Directories must at least contain a block that has the "." and ".." entries.
550
A directory was found which doesn't contain any blocks.
552
Answering yes to this question clears the directory's inode thus
553
deleting the directory.
556
Certain inodes record the size of the data they reference in an i_size field.
557
This can be the number of bytes in a file, directory, or symlink target
558
which are stored in data mapped by extents of clusters. This error occurs
559
when the extent lists are walked and the amount of data found does not match
560
what is stored in i_size.
562
Answering yes to this question updates the inode's i_size to match the amount
563
of data referenced by the extent lists. It is vitally important that i_size
564
matches the extent lists and so answering yes is strongly encouraged.
566
.SS "INODE_SPARSE_SIZE"
567
Certain inodes record the size of the data they reference in an i_size field.
568
This can be the number of bytes in a file, directory, or symlink target
569
which are stored in data mapped by extents of clusters. This error occurs when
570
a sparse inode was found that had data allocated past its i_size.
572
Answering yes to this question will update the inode's i_size to cover all of
573
its allocated storage. It is vitally important that i_size matches the extent
574
lists and so answering yes is strongly encouraged.
576
.SS "INODE_INLINE_SIZE"
577
Inodes can only fit a certain amount of inline data. This inode has its data
578
inline but claims an i_size larger than will actually fit.
580
Answering yes to this question updates the inode's i_size to the maximum available
584
Inodes contain a record of how many clusters are allocated to them. An inode
585
was found whose recorded number of clusters doesn't match the number of blocks
586
that were found associated with the inode.
588
Answering yes resets the inode's number of clusters to reflect the number
589
of blocks that were associated with the file.
591
.SS "INODE_SPARSE_CLUSTERS"
592
Inodes contain a record of how many clusters are allocated to them. An sparse
593
inode was found whose recorded number of clusters doesn't match the number of
594
blocks that were found associated with the inode.
596
Answering yes resets the inode's number of clusters to reflect the number
597
of blocks that were associated with the file.
599
.SS "INODE_INLINE_CLUSTERS"
600
Inlined inode should not have allocated clusters. An inode who has inline data
601
flag set was found with clusters allocated.
603
Answering yes resets the inode's number of clusters to zero.
606
An active local allocator did not accurately reflect the set of clusters that
607
are free and in use in its region.
609
Answering yes will update the local allocator bitmap. Each bit that doesn't
610
match the use of its cluster will be inverted.
613
A local allocator records the number of bits that are used in its bitmap. An
614
allocator was found whose used value doesn't reflect the number of bits that
615
are set in its bitmap.
617
Answering yes sets the used value to match the number of bits set in the
620
.SS "CLUSTER_ALLOC_BIT"
621
A specific cluster's use didn't match the setting of its bit in the cluster
624
Answering yes will invert the bit in the allocator to match the use of the
625
cluster -- either allocated and in use or free.
627
.SS "REFCOUNT_FLAG_INVALID"
628
Refcount file can only exist in a volume with refcount supported, Fsck has
629
found that a file in a non-refcount volume has refcount flag set.
631
Answering yes remove this flag from the file.
633
.SS "REFCOUNT_LOC_INVALID"
634
Refcount loc can only be valid if the file has refcount flag set. Fsck has
635
found that a file has refcount loc while it does't have refcount flag set.
637
Answering yes reset refcount loc to zero for the file.
640
refcount blocks contain a record of the disk block where they are located.
641
An refcount block was found at a block that didn't match its recorded location.
643
Answering yes will update the data structure in the refcount block to reflect
644
its real location on disk.
647
Refcount blocks are created with a generation number to match the generation
648
number of the volume at the time of creation. An refcount block was found which
649
contains a generation number that doesn't match.
651
Answering yes implies that the generation number is correct and that the
652
refcount block is from a previous file system. The refcount block will be
653
removed and the file that uses it will lose the refcounted information, but
654
it may be regenerated later.
657
Refcount blocks are created with a generation number to match the generation
658
number of the volume at the time of creation. An refcount block was found which
659
contains a generation number that doesn't match.
661
Answering yes implies that the generation number in the refcount block is
662
incorrect and that the refcount block is valid. The generation number in the
663
block is updated to match the generation number in the volume.
666
refcount blocks contain a record of the parent this disk block belongs to.
667
An refcount block was found storing a wrong parent location.
669
Answering yes will update the data structure in the refcount block to reflect
670
its parent's real location on disk.
672
.SS "REFCOUNT_LIST_COUNT"
673
The number of entries in a refcount list is bounded by the size of the block
674
which contains it. An refcount list was found which claims to have more
675
entries than would fit in its container.
677
Answering yes updates the count field in the refcount list to match the
678
container. Answering no to this question may stop further fixes from being
679
done because the count value can not be trusted.
681
.SS "REFCOUNT_LIST_USED"
682
The number of free entries in a refcount list must be less than the total
683
number of entries in the list. A list was found which claims to have more
684
free entries than possible entries.
686
Answering yes sets the number of free entries in the list equal to the total
689
.SS "REFCOUNT_CLUSTER_RANGE"
690
A refcount record was found which references a cluster which can not be
691
referenced by a refcount. The referenced cluster is either very early in the
692
volume, and thus reserved, or beyond the end of the volume.
694
Answering yes removes this refcount record from the tree.
696
.SS "REFCOUNT_CLUSTER_COLLISION"
697
A refcount record was found which references a cluster which has a collision
698
with the previous valid refcount record.
700
Answering yes removes this refcount record from the tree.
702
.SS "REFCOUNT_LIST_EMPTY"
703
A refcount list was found which has no refcount record in it. It is normally
704
caused by a corrupted refcount record.
706
Answering yes removes this refcount block from the tree. It will be
707
re-generated in refcounted extent records handler if all the other
710
.SS "REFCOUNT_BLOCK_INVALID"
711
Refcount block stores the refcount record for physical clusters of a file.
712
It is found refering an invalid refcount block.
714
Answering yes remove this refcount block.
716
.SS "REFCOUNT_CLUSTERS"
717
Refcount tree contains a record of how many clusters are allocated to them.
718
A tree was found whose recorded number of clusters doesn't match the number
719
of blocks that were found associated with it.
721
Answering yes resets the number of clusters to reflect the real number
722
of clusters that were associated with the tree.
724
.SS "REFCOUNT_ROOT_BLOCK_INVALID"
725
Root refcount block is the root of the refcount record for a file. It is found
726
refering an invalid refcount block.
728
Answering yes remove this refcount block and clear refcount flag from this file.
730
.SS "REFCOUNT_REC_REDUNDANT"
731
Refcount record is used to store the refcount for physical clusters. Some
732
refcount record is found to have no physical clusters corresponding to it.
734
Answering yes remove the refcount record.
736
.SS "REFCOUNT_COUNT_INVALID"
737
Refcount record is used to store the refcount for physical clusters. A record
738
record is found whichs claims the wrong refcount for some physical clusters.
740
Answering yes update the corresponding refcount record.
743
Refcount tree contains a record of how many files refering to this tree.
744
A tree was found whose recorded number of files doesn't match the real
745
files refering to the tree.
747
Answering yes resets the number of files to reflect the real number
748
of files that were associated with the tree.
752
.SS "DUP_CLUSTERS_SYSFILE_CLONE"
753
A system file inode claims clusters that are also claimed by another inode.
754
ocfs2 does not allow this. System files may be cloned but may not be
755
deleted. Allocation system files may not be cloned or deleted.
757
Answering yes will copy the data of this inode to newly allocated extents.
758
This will break the claim on the overcommitted clusters.
760
.SS "DUP_CLUSTERS_CLONE"
761
An inode claims clusters that are also claimed by another inode. ocfs2
764
Answering yes will copy the data of this inode to newly allocated extents.
765
This will break the claim on the overcommitted clusters.
767
.SS "DUP_CLUSTERS_DELETE"
768
An inode claims clusters that are also claimed by another inode. ocfs2
771
Answering yes will remove this inode, thus breaking its claim on the
772
overcommitted clusters.
774
.SS "DUP_CLUSTERS_ADD_REFCOUNT"
775
An inode claims clusters that are also claimed by another inode. ocfs2
778
Answering yes will try to add a refcount record for all these inodes, so
779
that they will share the cluster.
783
.SS "DIRENT_DOTTY_DUP"
784
There can be only one instance of both the "." and ".." entries in a
785
directory. A directory entry was found which duplicated one of these entries.
787
Answering yes will remove the duplicate directory entry.
789
.SS "DIRENT_NOT_DOTTY"
790
The first and second directory entries in a directory must be "." and ".."
791
respectively. One of these directory entries was found to not match these
794
Answering yes will force the directory entry to be either "." or "..". This
795
might consume otherwise valid entries and cause some files to appear in
798
.SS "DIRENT_DOT_INODE"
799
The inode field of the "." directory entry must refer to the directory inode
800
that contains the given directory block. A "." entry was found which doesn't
803
Answering yes sets the directory entry's inode reference to the parent
804
directory that contains the entry.
806
.SS "DIRENT_DOT_EXCESS"
807
A "." directory entry was found whose lengths exceeds the amount required
808
for the single dot in the name.
810
Answering yes creates another empty directory entry in this excess space.
813
A directory entry was found with a zero length name.
815
Answering yes clears the directory entry so its space can be reused.
817
.SS "DIRENT_NAME_CHARS"
818
Directory entries can not contain either the NULL character (ASCII 0) or
819
the forward slash (ASCII 47). A directory entry was found which contains
822
Answering yes will change each instance of these forbidden characters into
825
.SS "DIRENT_INODE_RANGE"
826
Each directory entry contains a inode field which the entry's name corresponds
827
to. An entry was found which referenced an inode number that is invalid
828
for the current volume.
830
Answering yes clears this entry so its space can be reused. If the entry
831
once corresponded to a real inode and was corrupted this inode may appear
834
.SS "DIRENT_INODE_FREE"
835
Each directory entry contains a inode field which the entry's name corresponds
836
to. An entry was found which referenced an inode number that isn't in
839
Answering yes clears this directory entry.
842
Each directory entry contains a field which describes the type of file
843
that the entry refers to. An entry was found whose type doesn't match the
844
inode it is referring to.
846
Answering yes resets the entry's type to match the target inode.
849
Each directory can only be pointed to by one directory entry in a parent
850
directory. A directory entry was found which was the second entry to point
851
to a given directory inode.
853
Answering yes clears this entry which was the second to refer to a given
854
directory. This reflects the policy that hard links to directories are not
857
.SS "DIRENT_DUPLICATE"
858
File names within a directory must be unique. A file name occurred in more
859
than one directory entry in a given directory.
861
Answering yes renames the duplicate entry to a name that doesn't collide
862
with recent entries and is unlikely to collide with future entries in
866
There are very few directory entry lengths that are valid. The lengths must
867
be greater than the minimum required to record a single character directory,
868
be rounded to 12 bytes, be within the amount of space remaining in a directory
869
block, and be properly rounded for the size of the name of the directory
870
entry. An entry was found which didn't meet these criteria.
872
Answering yes will try to repair the directory entry. This runs a very good
873
chance of invalidating all the entries in the directory block. Orphaned
874
inodes may appear in lost+found.
876
.SS "DIR_TRAILER_INODE"
877
A directory block trailer is a fake directory entry at the end of the
878
block. The trailer has compatibility fields for when it is viewed as a
879
directory entry. The inode field must be zero.
881
Answering yes will set the inode field to zero.
883
.SS "DIR_TRAILER_NAME_LEN"
884
A directory block trailer is a fake directory entry at the end of the
885
block. The trailer has compatibility fields for when it is viewed as a
886
directory entry. The name length field must be zero.
888
Answering yes will set the name length field to zero.
890
.SS "DIR_TRAILER_REC_LEN"
891
A directory block trailer is a fake directory entry at the end of the
892
block. The trailer has compatibility fields for when it is viewed as a
893
directory entry. The record length field must be equal to the size of
896
Answering yes will set the record length field to the size of the trailer.
898
.SS "DIR_TRAILER_BLKNO"
899
A directory block trailer is a fake directory entry at the end of the
900
block. The self-referential block number is incorrect.
902
Answering yes will set the block number to the correct block on disk.
904
.SS "DIR_TRAILER_PARENT_INODE"
905
A directory block trailer is a fake directory entry at the end of the
906
block. It has a pointer to the directory inode it belongs to. This
907
pointer is incorrect.
909
Answering yes will set the parent inode pointer to the inode referencing
910
this directory block.
914
.SS "ROOT_DIR_MISSING"
915
The super block contains a reference to the inode that serves as the root
916
directory. This reference points to an inode that isn't in use.
918
Answering yes will create a new inode and update the super block to refer
919
to this inode as the root directory.
921
.SS "LOSTFOUND_MISSING"
922
The super block contains a reference to the inode that serves as the
923
lost+found directory. This reference points to an inode that isn't in use.
925
Answering yes will create a new lost+found directory in the root directory.
927
.SS "DIR_NOT_CONNECTED"
928
Every directory in the file system should be reachable by a directory entry
929
in its parent directory. This is verified by walking every directory in
930
the system. A directory inode was found during this walk which doesn't have
931
a parent directory entry.
933
Answering yes moves this directory entry into the lost+found directory and
934
gives it a name based on its inode number.
937
A directory inode's ".." directory entry must refer to the parent directory.
938
A directory was found whose ".." doesn't refer to its parent.
940
Answering yes will read the directory block for the given directory and update
941
its ".." entry to reflect its parent.
945
.SS "INODE_NOT_CONNECTED"
946
Most all inodes in the system should be referenced by a directory entry. An
947
inode was found which isn't referred to by any directory entry.
949
Answering yes moves this inode into the lost+found directory and
950
gives it a name based on its inode number.
953
Each inode records the number of directory entries that refer to it. An inode
954
was found whose recorded count doesn't match the number of entries that
957
Answering yes sets the inode's count to match the number of referring
961
While files are being deleted they are placed in an internal directory. If
962
the machine crashes while this is taking place the files will be left in
963
this directory. Fsck has found an inode in this directory and would like
964
to finish the job of truncating and removing it.
966
Answering yes removes the file data associated with the inode and frees
969
.SS "RECOVER_BACKUP_SUPERBLOCK"
970
When \fIfsck.ocfs2\fR successfully uses the specified backup superblock,
971
it provides the user with this option to overwrite the existing superblock
974
Answering yes will refresh the superblock from the backup. Answering no will
975
only disable the copying of the backup superblock and will not effect the
976
remaining \fIfsck.ocfs2\fR processing.
978
.SS "ORPHAN_DIR_MISSING"
979
While files are being deleted they are placed in an internal directory, named
980
orphan directory. If an orphan directory does not exist, an OCFS2 volume cannot
981
be mounted successfully. Fsck has found the orphan directory is missing and
982
would like to create it for future use.
984
Answering yes creates the orphan directory in the system directory.
986
.SS "JOURNAL_FILE_INVALID"
987
OCFS2 uses JDB for journalling and some journal files exist in the
988
system directory. Fsck has found some journal files that are invalid.
990
Answering yes to this question will regenerate the invalid journal files.
992
.SS "JOURNAL_UNKNOWN_FEATURE"
993
Fsck has found some journal files with unknown features. Other journals
994
on the filesystem have only known features, so this is likely a corruption.
995
If you think your filesystem may be newer than this version of fsck.ocfs2,
996
say N here and grab the latest version of fsck.ocfs2.
998
Answering yes resets the journal features to match other journals.
1000
.SS "JOURNAL_MISSING_FEATURE"
1001
Fsck has found some journal files have features that are not set on all
1002
journal files. All journals on filesystem should have the same set of
1005
Answering yes will set all journals to the union of set features.
1007
.SS "JOURNAL_TOO_SMALL"
1008
Fsck has found some journal files are too small.
1010
Answering yes extends these journals.
1012
.SS "RECOVER_CLUSTER_INFO"
1013
The currently active cluster stack is different than the one the filesystem
1014
is configured for. Thus, fsck.ocfs2 cannot determine whether the
1015
filesystem is mounted on an another node or not. The recommended solution
1016
is to exit and run fsck.ocfs2 on this device from a node that has the
1017
appropriate active cluster stack. However, you can proceed with the fsck if
1018
you are sure that the volume is not in use on any node.
1020
Answering yes reconfigures the filesystem to use the current cluster stack.
1021
DANGER: YOU MUST BE ABSOLUTELY SURE THAT NO OTHER NODE IS USING THIS FILESYSTEM
1022
BEFORE CONTINUING. OTHERWISE, YOU CAN CORRUPT THE FILESYSTEM AND LOSE DATA.
1024
.SS "INLINE_DATA_FLAG_INVALID"
1025
Inline file can only exist in a volume with inline supported, Fsck has found
1026
that a file in a non-inline volume has inline flag set.
1028
Answering yes remove this flag from the file.
1030
.SS "INLINE_DATA_COUNT_INVALID"
1031
For an inline file, there is a limit for id2.id_data.id_count. Fsck has found
1032
that this value isn't right.
1034
Answering yes change this value to the right number.
1036
.SS "XATTR_BLOCK_INVALID"
1037
Extended attributes are stored off an extended attribute block
1038
referenced by the inode. This inode references an invalid extended
1041
Answering yes will remove this block.
1043
.SS "XATTR_COUNT_INVALID"
1044
The count of extended attributes in an inode, block, or bucket
1045
does not match the number of entries found by fsck.
1047
Answering yes will change this to the correct count.
1049
.SS "XATTR_ENTRY_INVALID"
1050
An extended attribute entry points to already used space.
1052
Answering yes will remove this entry.
1054
.SS "XATTR_NAME_OFFSET_INVALID"
1055
The name_offset field of an extended attribute entry is not correct.
1056
Without a correct name_offset field, the entry cannot be used.
1058
Answering yes will remove this entry.
1060
.SS "XATTR_VALUE_INVALID"
1061
The value region of an extended attribute points to already
1064
Answering yes will remove this entry.
1066
.SS "XATTR_LOCATION_INVALID"
1067
The xe_local field and xe_value_size field of an extended attribute
1068
entry does not match. So the entry cannot be used.
1070
Answering yes will remove this entry.
1072
.SS "XATTR_HASH_INVALID"
1073
Extended attributes use a hash of their name for lookup purposes.
1074
The name_hash of this extended attribute entry is not correct.
1076
Answering yes will change this to the correct hash.
1078
.SS "XATTR_FREE_START_INVALID"
1079
Extended attributes use free_start to indicate the offset of the
1080
free space in inode, block, or bucket. The free_start field
1081
of this object is not correct.
1083
Answering yes will change this to the correct offset.
1085
.SS "XATTR_VALUE_LEN_INVALID"
1086
Extended attributes use name_value_len to store the total length
1087
of all entry's name and value in inode, block or bucket.
1088
the name_value_len filed of this object is not correct.
1090
Answering yes will change this to the correct value.
1092
.SS "XATTR_BUCKET_COUNT_INVALID"
1093
The count of extended attributes bucket pointed by one extent record
1094
does not match the number of buckets found by fsck.
1096
Answering yes will change this to the correct count.
1100
.SS "QMAGIC_INVALID"
1101
The magic number in the header of quota file does not match the proper
1104
Answering yes will make fsck use values in the quota file header anyway.
1106
.SS "QTREE_BLK_INVALID"
1107
Block with references to other blocks with quota data is corrupted.
1109
Answering yes will make fsck use references in the block.
1112
The structure with quota limits was found in a corrupted block.
1114
Answering yes will use the values of limits for the user / group.
1116
.SS "DUP_DQBLK_INVALID"
1117
The structure with quota limits was found in a corrupted block
1118
and fsck has already found quota limits for this user / group.
1120
Answering yes will use new values of limits for the user / group.
1122
.SS "DUP_DQBLK_VALID"
1123
The structure with quota limits was found in a correct block
1124
but fsck has already found quota limits for this user / group.
1126
Answering yes will use new values of limits for the user / group.
1129
A directory index was found on an inode but that feature is not enabled on the
1132
Answering yes will truncate the invalid index.
1134
.SS "DX_LOOKUP_FAILED"
1135
A directory entry is missing an entry in the directory index. The missing
1136
index entry will cause lookups on this name to fail.
1138
Answering yes will rebuild the directory index, restoring the missing entry.
1147
Copyright \(co 2004, 2010 Oracle. All rights reserved.