1fsck.ocfs2.checks(8) OCFS2 Manual Pages fsck.ocfs2.checks(8)
2
3
4
6 fsck.ocfs2.checks - Consistency checks that fsck.ocfs2(8) performs and
7 its means for fixing inconsistencies.
8
10 fsck.ocfs2(8) is used to check an OCFS2 file system. It performs many
11 consistency checks and will offer to fix faults that it finds. This
12 man page lists the problems it may find and describes their fixes. The
13 problems are indexed by the error number that fsck.ocfs2(8) emits when
14 it describes the problem and asks if it should be fixed.
15
16 The prompts are constructed such that answering 'no' results in no
17 changes to the file system. This may result in errors later on that
18 stop fsck.ocfs2(8) from proceeding.
19
20
22 EB_BLKNO
23 Extent blocks contain a record of the disk block where they are
24 located. An extent block was found at a block that didn't match its
25 recorded location.
26
27 Answering yes will update the data structure in the extent block to
28 reflect its real location on disk.
29
30
31 EB_GEN
32 Extent blocks are created with a generation number to match the genera‐
33 tion number of the volume at the time of creation. An extent block was
34 found which contains a generation number that doesn't match.
35
36 Answering yes implies that the generation number is correct and that
37 the extent block is from a previous file system. The extent block will
38 be ignored and the file that contains it will lose the data it refer‐
39 enced.
40
41
42 EB_GEN_FIX
43 Extent blocks are created with a generation number to match the genera‐
44 tion number of the volume at the time of creation. An extent block was
45 found which contains a generation number that doesn't match.
46
47 Answering yes implies that the generation number in the extent block is
48 incorrect and that the extent block is valid. The generation number in
49 the block is updated to match the generation number in the volume.
50
51
52 EXTENT_MARKED_UNWRITTEN
53 An extent record has the UNWRITTEN flag set, but the filesystem feature
54 set does not include unwritten extents.
55
56 Answering yes clears the UNWRITTEN flag. This is safe to do; as the
57 feature is disabled anyway.
58
59
60 EXTENT_MARKED_REFCOUNTED
61 An extent record has the REFCOUNTED flag set, but neither the filesys‐
62 tem nor the file has the REFCOUNTED flag set.
63
64 Answering yes clears the REFCOUNTED flag.
65
66
67 EXTENT_BLKNO_UNALIGNED
68 The block that marks the start of an extent should always fall on the
69 start of a cluster. An extent was found that starts part-way into a
70 cluster.
71
72 Answering yes moves the start of the extent back to the start of the
73 addressed cluster. This may add data to the middle of the file that
74 contains this extent.
75
76
77 EXTENT_CLUSTERS_OVERRUN
78 An extent was found which claims to contain clusters which are beyond
79 the end of the volume.
80
81 Answering yes clamps the extent to the end of the volume. This may
82 result in a reduced file size for the file that contains the extent,
83 but it couldn't have addressed those final clusters anyway. One can
84 imagine this problem arising if there are problems shrinking a volume.
85
86
87 EXTENT_EB_INVALID
88 Deep extent trees are built by forming a tree out of extent blocks. An
89 extent tree references an invalid extent block.
90
91 Answering yes stops the tree from referencing the invalid extent block.
92 This may truncate data from the file which contains the tree.
93
94
95 EXTENT_LIST_DEPTH
96 Extent lists contain a record of their depth in the tree. An extent
97 list was found whose recorded depth doesn't match the position they
98 have in the tree.
99
100 Answering yes updates the depth field in the list to match the tree on
101 disk.
102
103
104 EXTENT_LIST_COUNT
105 The number of entries in an extent list is bounded by either the size
106 of the inode or the size of the block which contains it. An extent
107 list was found which claims to have more entries than would fit in its
108 container.
109
110 Answering yes updates the count field in the extent list to match the
111 container. Answering no to this question may stop further fixes from
112 being done because the count value can not be trusted.
113
114
115 EXTENT_LIST_FREE
116 The number of free entries in an extent list must be less than the
117 total number of entries in the list. A list was found which claims to
118 have more free entries than possible entries.
119
120 Answering yes sets the number of free entries in the list equal to the
121 total possible entries.
122
123
124 EXTENT_BLKNO_RANGE
125 An extent record was found which references a block which can not be
126 referenced by an extent. The referenced block is either very early in
127 the volume, and thus reserved, or beyond the end of the volume.
128
129 Answering yes removes this extent record from the tree. This may
130 remove data from the file which owns the tree but any such data was
131 inaccessible.
132
133
134 CHAIN_CPG
135 The bitmap inode indicates a different clusters per group than the
136 group descriptor. This value is typically static and only modified by
137 tunefs during volume resize and that too only on volumes having only
138 one cluster group.
139
140 Answering yes updates the clusters per group on the bitmap inode to the
141 corresponding value in the group descriptor.
142
143
144 SUPERBLOCK_CLUSTERS
145 The super block indicates a different total clusters value than the
146 global bitmap. This is only possible due to a failed volume resize
147 operation.
148
149 Answering yes updates the total clusters in the super block to the
150 value specified in the global bitmap.
151
152
153 FIXED_CHAIN_CLUSTERS
154 The global bitmap inode was repaired, resulting in a change to the
155 total cluster count of the filesystem.
156
157 Answering yes updates the total clusters in the super block to the
158 value specified in the global bitmap.
159
160
161
162
163 GROUP_UNEXPECTED_DESC
164 The group descriptors that make up the global bitmap chain allocator
165 reside at predictable locations on disk. A group descriptor was found
166 in the global bitmap allocator which isn't at one of these locations
167 and so shouldn't be in the allocator.
168
169 Answering yes removes this descriptor from the global bitmap allocator.
170
171
172 GROUP_EXPECTED_DESC
173 The group descriptors that make up the global bitmap chain allocator
174 reside at predictable locations on disk. A group descriptor at one of
175 these locations was not linked into the global bitmap allocator.
176
177 Answering yes will relink this group into the allocator.
178
179
180 GROUP_GEN
181 A group descriptor was found with a generation number that doesn't
182 match the generation number of the volume.
183
184 Answering yes sets the group descriptor's generation equal to the gen‐
185 eration number in the volume.
186
187
188 GROUP_PARENT
189 Group descriptors contain a pointer to the allocator inode which con‐
190 tains the chain they belong to. A group descriptor was found in an
191 allocator inode that doesn't match the descriptor's parent pointer.
192
193 Answering yes updates the group descriptor's parent pointer to match
194 the inode it resides in.
195
196
197 GROUP_DUPLICATE
198 Group descriptors contain a pointer to the allocator inode which con‐
199 tains the chain they belong to. A group descriptor was found in two
200 allocator inodes so it may be duplicated.
201
202 Answering yes removes the group descriptor from current allocator
203 inode.
204
205
206 GROUP_BLKNO
207 Group descriptors have a field which records their block location on
208 disk. A group descriptor was found at a given location but is recorded
209 as being located somewhere else.
210
211 Answering yes updates the group descriptor's recorded location to match
212 where it actually is found on disk.
213
214
215 GROUP_CHAIN
216 Group descriptors are found in a number of different singly-linked
217 chains in an allocator inode. A group descriptor records the chain
218 number that it is linked in. A group descriptor was found whose chain
219 field doesn't match the chain it was found in.
220
221 Answering yes sets the group descriptor's chain field to match the
222 chain it is found in.
223
224
225 GROUP_FREE_BITS
226 A group descriptor records the number of bits in its bitmap that are
227 free. A group descriptor was found which claims to have more free bits
228 than are valid in its bitmap.
229
230 Answering yes decreases the number of recorded free bits so that it
231 equals the total number of bits in the group descriptor's bitmap.
232
233
234 GROUP_CHAIN_LOOP
235 A chain may loop if the next field of the group descriptor points to
236 one of the previous group descriptors in the chain. This causes the
237 ocfs2 code, both user space and kernel module to loop forever.
238
239 Answering yes breaks the loop at an optimum location so that all the
240 existing group descriptors are in the chain. However, it cannot re-con‐
241 nect stray group descriptors and must rely on the rest of the fsck code
242 to fix it.
243
244
245 CHAIN_COUNT
246 The chain list embedded in an inode is limited by the block size and
247 the number of bytes consumed by the rest of the inode. A chain list
248 header was found which claimed that there are more entries in the list
249 then could fit in the inode.
250
251 Answering yes resets the header's cl_count member to the maximum size
252 allowed by the block size after accounting for the space consumed by
253 the inode.
254
255
256 CHAIN_NEXT_FREE
257 This is identical to CHAIN_COUNT except that it is testing and fixing
258 the pointer to the next free list entry recorded in the
259 cl_next_free_rec member instead of the total number of entries.
260
261
262 CHAIN_EMPTY
263 Chain entries need to be packed such that there are no chains without
264 descriptors found before the chain that is marked as free by the chain
265 header. A chain without descriptors was found found before that chain
266 that was marked free.
267
268 Answering yes will remove the unused chain and shift the remaining
269 chains forward in the list.
270
271
272 CHAIN_I_CLUSTERS
273 Chain allocator inodes have an i_clusters value that represents the
274 number of clusters used by the allocator. An inode was found whose
275 i_clusters value doesn't match the number of clusters its chains cover.
276
277 Answering yes updates i_clusters in the inode to reflect what was actu‐
278 ally found by walking the chain.
279
280
281 CHAIN_I_SIZE
282 Chain allocator inodes multiply the number of bytes per cluster by the
283 their i_clusters value and store it in i_size. An inode was found
284 which didn't have the correct value in its i_size.
285
286 Answering yes updates i_size to be the product of i_clusters and the
287 cluster size. Nothing else uses this value, and previous versions of
288 tools didn't calculate it properly, so don't be too worried if this
289 error appears.
290
291
292 CHAIN_GROUP_BITS
293 The inode that contains an embedded chain list has fields which record
294 the total number of bits covered by the chain as well as the amount
295 free. These fields didn't match what was found in the chain.
296
297 Answering yes updates the fields in the inode to reflect what was actu‐
298 ally found by walking the chain.
299
300
301 CHAIN_HEAD_LINK_RANGE
302 The header that starts a chain tried to reference a group descriptor at
303 a block number that couldn't be valid.
304
305 Answering yes will clear the reference to this invalid block and trun‐
306 cate the chain that it started.
307
308
309 CHAIN_LINK_GEN
310 A reference was made to a group descriptor whose generation number
311 doesn't match the generation of the volume.
312
313 Answering yes to this question implies that the group descriptor is
314 invalid and the chain is truncated at the point that it referred to
315 this invalid group descriptor. Answering no to this question considers
316 the group descriptor as valid and its generation may be fixed.
317
318
319 CHAIN_LINK_MAGIC
320 Chains are built by chain headers and group descriptors which are
321 linked together by block references. A reference was made to a group
322 descriptor at a given block but a valid group descriptor signature
323 wasn't found at that block.
324
325 Answering yes clears the reference to this invalid block and truncates
326 the chain at the point of the reference.
327
328
329 CHAIN_LINK_RANGE
330 Chains are built by chain headers and group descriptors which are
331 linked together by block references. A reference a block was found
332 which can't possibly be valid because it was either too small or
333 extended beyond the volume.
334
335 Answering yes truncates the chain in question by zeroing the invalid
336 block reference. This shortens the chain in question and could result
337 in more fixes later if the part of the chain that couldn't be refer‐
338 enced was valid at some point.
339
340
341 CHAIN_BITS
342 A chain's header contains members which record the total number of bits
343 in the chain as well as the number of bits that are free. After walk‐
344 ing through a chain it was found that the number of bits recorded in
345 its header don't match what was found by totalling up the group
346 descriptors.
347
348 Answering yes updates the c_total and c_free members of the header to
349 reflect what was found in the group descriptors in the chain.
350
351
352 DISCONTIG_BG_DEPTH
353 A discontiguous block group has an extent list which records all the
354 clusters allocated to it. Discontiguous block groups only support
355 extent lists with a tree depth of 0. A block group claims to have a
356 tree depth greater than 0.
357
358 Answering yes will set the tree depth of the extent list to 0.
359
360
361 DISCONTIG_BG_COUNT
362 A discontiguous block group has an extent list which records all the
363 clusters allocated to it. A block group claims to have more records
364 than can actually fit.
365
366 Answering yes will set the record count to the maximum possible.
367
368
369 DISCONTIG_BG_REC_RANGE
370 Block groups set aside clusters to be used for metadata. A discontigu‐
371 ous block group claims to contain clusters beyond the end of the vol‐
372 ume.
373
374 Answering yes will remove the block group.
375
376
377 DISCONTIG_BG_CORRUPT_LEAVES
378 A discontiguous block group has an extent list which records all the
379 clusters allocated to it. A group has more than one extent claiming to
380 have an impossible number of clusters.
381
382 Answering yes will remove the block group.
383
384
385 DISCONTIG_BG_CLUSTERS
386 Extent records in a discontiguous block group were found having more
387 clusters allocated then a block group can have.
388
389 Answering yes will remove the block group.
390
391
392 DISCONTIG_BG_LESS_CLUSTERS
393 Extent records in a discontiguous block group were found having less
394 clusters allocated then a block group can have.
395
396 Answering yes will remove the block group.
397
398
399 DISCONTIG_BG_NEXT_FREE_REC
400 A discontiguous block group has an extent list which records all the
401 clusters allocated to it. A group was found with fewer filled in
402 extents than it claims to have. The filled in extents describe a com‐
403 plete and correct group.
404
405 Answering yes will set the used extent count to the number of filled
406 extents.
407
408
409 DISCONTIG_BG_LIST_CORRUPT
410 A discontiguous block group has an extent list which records all the
411 clusters allocated to it. The group claims to have more extents than
412 is possible, and the existing extents contain errors.
413
414 Answering yes will remove the block group.
415
416
417 DISCONTIG_BG_REC_CORRUPT
418 A discontiguous block group has a extent list which records all the
419 clusters allocated to it. A group was found with one extent claiming
420 too many clusters but the sum of the remaining extents are equal to the
421 total clusters a group must have.
422
423 Answering yes will remove the block group.
424
425
426 DISCONTIG_BG_LEAF_CLUSTERS
427 A discontiguous block group has a extent list which records all the
428 clusters allocated to it. A group was found with one extent claiming
429 too many clusters, but the remaining extents are correct.
430
431 Answering yes will set the number of the clusters on the broken extent
432 to the difference between the total clusters a group must have and the
433 sum of the remaining extents.
434
435
436
437
438 INODE_ALLOC_REPAIR
439 The inode allocator did not accurately reflect the set of inodes that
440 are free and in use in the volume.
441
442 Answering yes will update the inode allocator bitmaps. Each bit that
443 doesn't match the state of its inode will be inverted.
444
445
446 INODE_SUBALLOC
447 Each inode records the node whose allocator is responsible for the
448 inode. An inode was found in a given node's allocator but the inode
449 itself claimed to belong to a different node.
450
451 Answering yes will correct the inode to point to the node's allocator
452 that it belongs to.
453
454
455 LALLOC_SIZE
456 Each node has a local allocator contained in a block that is used to
457 allocate clusters in batches. A node's local allocator claims to
458 reflect more bytes than are possible for the volume's block size.
459
460 Answering yes decreases the local allocator's size to reflect the vol‐
461 ume's block size.
462
463
464 LALLOC_NZ_USED
465 A given node's local allocator isn't in use but it claims to have bits
466 in use in its bitmap.
467
468 Answering yes zeros this used field.
469
470
471 LALLOC_NZ_BM
472 A given node's local allocator isn't in use but it has a field which
473 records the bitmap as starting at a non-zero cluster offset.
474
475 Answering yes zeros the bm_off field.
476
477
478 LALLOC_BM_OVERRUN
479 Each local allocator contains a reference to the first cluster that its
480 bitmap addresses. A given local allocator was found which references a
481 starting cluster that is beyond the end of the volume.
482
483 Answering yes resets the given local allocator. No allocated data will
484 be lost.
485
486
487 LALLOC_BM_SIZE
488 The given local allocator claims to cover more bits than are possible
489 for the size in bytes of its bitmap.
490
491 Answering yes decreases the number of bits the allocator covers to
492 reflect the size in bytes of the bitmap and resets the allocator. No
493 allocated data will be lost.
494
495
496 LALLOC_BM_STRADDLE
497 The given local allocator claims to cover a region of clusters which
498 extents beyond the end of the volume.
499
500 Answering yes resets the given local allocator. No allocated data will
501 be lost.
502
503
504 LALLOC_USED_OVERRUN
505 The given local allocator claims to have more bits in use than it has
506 total bits in its bitmap.
507
508 Answering yes decreases the number of bits used so that it equals the
509 total number of available bits.
510
511
512 LALLOC_CLEAR
513 A local allocator inode was found to have problems. This gives the
514 operator a chance to just reset the local allocator inode.
515
516 Answering yes clears the local allocator. No information is lost but
517 the global bitmap allocator may need to be updated to reflect clusters
518 that were reserved for the local allocator but were free.
519
520
521 DEALLOC_COUNT
522 The given truncate log inode contains a count that is greater than the
523 value that is possible given the size of the inode.
524
525 Answering yes resets the count value to the possible maximum.
526
527
528 DEALLOC_USED
529 The given truncate log inode claims to have more records in use than it
530 is possible to store in the inode.
531
532 Answering yes resets the record of the number used to the maximum value
533 possible.
534
535
536 TRUNCATE_REC_START_RANGE
537 A truncate record was found which claims to start at a cluster that is
538 beyond the number of clusters in the volume.
539
540 Answering yes will clear the truncate record. This may result in pre‐
541 viously freed space being marked as allocated. This will be fixed up
542 later as the allocator is updated to match what is used by the file
543 system.
544
545
546 TRUNCATE_REC_WRAP
547 Clusters are recorded as 32bit values. A truncate record was found
548 which claims to have enough clusters to cause this value to wrap. This
549 could never be the case and is a sure sign of corruption.
550
551 Answering yes will clear the truncate record. This may result in pre‐
552 viously freed space being marked as allocated. This will be fixed up
553 later as the allocator is updated to match what is used by the file
554 system.
555
556
557 TRUNCATE_REC_RANGE
558 A truncate record was found which claims to reference a region of clus‐
559 ters which partially extends beyond the number of clusters in the vol‐
560 ume.
561
562 Answering yes will clear the truncate record. This may result in pre‐
563 viously freed space being marked as allocated. This will be fixed up
564 later as the allocator is updated to match what is used by the file
565 system.
566
567
568 INODE_GEN
569 Inodes are created with a generation number to match the generation
570 number of the volume at the time of creation. An Inode was found which
571 contains a generation number that doesn't match.
572
573 Answering yes implies that the generation number is correct and that
574 the inode is from a previous file system. The inode will be recorded
575 as free.
576
577
578 INODE_GEN_FIX
579 Inodes are created with a generation number to match the generation
580 number of the volume at the time of creation. An inode was found which
581 contains a generation number that doesn't match.
582
583 Answering yes implies that the generation number in the inode is incor‐
584 rect and that the inode is valid. The generation number in the inode
585 is updated to match the generation number in the volume.
586
587
588 INODE_BLKNO
589 Inodes contain a field that must match the block that they reside in.
590 An inode was found at a block that doesn't match the field in the
591 inode.
592
593 Answering yes updates the field to match the inode's position on disk.
594
595
596 ROOT_NOTDIR
597 The super block contains a reference to the inode that contains the
598 root directory. This block was found to contain an inode that isn't a
599 directory.
600
601 Answering yes clears this inode. The operator will be asked to recre‐
602 ate the root directory at a point in the near future.
603
604
605 INODE_NZ_DTIME
606 Inodes contain a field describing the time at which they were deleted.
607 This can not be set for an inode that is still in use. An inode was
608 found which is in use but which contains a non-zero dtime.
609
610 Answering yes implies that the inode is still valid and resets its
611 dtime to zero.
612
613
614 LINK_FAST_DATA
615 The target name for a symbolic link is stored either as file contents
616 for that inode or in the inode structure itself on disk. Only small
617 destination names are stored in the inode structure. The i_blocks
618 field of the inode indicates that the name is stored in the inode when
619 it is zero. An inode was found that has both i_blocks set to zero and
620 file contents.
621
622 Answering yes clears the inode and so deletes the link.
623
624
625 LINK_NULLTERM
626 The targets of links on disk must be null terminated. A link was found
627 whose target wasn't null terminated.
628
629 Answering yes clears the inode and so deletes the link.
630
631
632 LINK_SIZE
633 The size of a link on disk must match the length of its target string.
634 A link was found whose size does not.
635
636 Answering yes updates the link's size to reflect the length of its tar‐
637 get string.
638
639
640 LINK_BLOCKS
641 Links can not be sparse. There must be exactly as many blocks allo‐
642 cated as are needed to cover its size. A link was found which doesn't
643 have enough blocks allocated to cover its size.
644
645 Answering yes clears the link's inode thus deleting the link.
646
647
648 DIR_ZERO
649 Directories must at least contain a block that has the "." and ".."
650 entries. A directory was found which doesn't contain any blocks.
651
652 Answering yes to this question clears the directory's inode thus delet‐
653 ing the directory.
654
655
656 INODE_SIZE
657 Certain inodes record the size of the data they reference in an i_size
658 field. This can be the number of bytes in a file, directory, or sym‐
659 link target which are stored in data mapped by extents of clusters.
660 This error occurs when the extent lists are walked and the amount of
661 data found does not match what is stored in i_size.
662
663 Answering yes to this question updates the inode's i_size to match the
664 amount of data referenced by the extent lists. It is vitally important
665 that i_size matches the extent lists and so answering yes is strongly
666 encouraged.
667
668
669 INODE_SPARSE_SIZE
670 Certain inodes record the size of the data they reference in an i_size
671 field. This can be the number of bytes in a file, directory, or sym‐
672 link target which are stored in data mapped by extents of clusters.
673 This error occurs when a sparse inode was found that had data allocated
674 past its i_size.
675
676 Answering yes to this question will update the inode's i_size to cover
677 all of its allocated storage. It is vitally important that i_size
678 matches the extent lists and so answering yes is strongly encouraged.
679
680
681 INODE_INLINE_SIZE
682 Inodes can only fit a certain amount of inline data. This inode has
683 its data inline but claims an i_size larger than will actually fit.
684
685 Answering yes to this question updates the inode's i_size to the maxi‐
686 mum available inline space.
687
688
689 INODE_CLUSTERS
690 Inodes contain a record of how many clusters are allocated to them. An
691 inode was found whose recorded number of clusters doesn't match the
692 number of blocks that were found associated with the inode.
693
694 Answering yes resets the inode's number of clusters to reflect the num‐
695 ber of blocks that were associated with the file.
696
697
698 INODE_SPARSE_CLUSTERS
699 Inodes contain a record of how many clusters are allocated to them. An
700 sparse inode was found whose recorded number of clusters doesn't match
701 the number of blocks that were found associated with the inode.
702
703 Answering yes resets the inode's number of clusters to reflect the num‐
704 ber of blocks that were associated with the file.
705
706
707 INODE_INLINE_CLUSTERS
708 Inlined inode should not have allocated clusters. An inode who has
709 inline data flag set was found with clusters allocated.
710
711 Answering yes resets the inode's number of clusters to zero.
712
713
714 LALLOC_REPAIR
715 An active local allocator did not accurately reflect the set of clus‐
716 ters that are free and in use in its region.
717
718 Answering yes will update the local allocator bitmap. Each bit that
719 doesn't match the use of its cluster will be inverted.
720
721
722 LALLOC_USED
723 A local allocator records the number of bits that are used in its bit‐
724 map. An allocator was found whose used value doesn't reflect the num‐
725 ber of bits that are set in its bitmap.
726
727 Answering yes sets the used value to match the number of bits set in
728 the allocator's bitmap.
729
730
731 CLUSTER_ALLOC_BIT
732 A specific cluster's use didn't match the setting of its bit in the
733 cluster allocator.
734
735 Answering yes will invert the bit in the allocator to match the use of
736 the cluster -- either allocated and in use or free.
737
738
739 REFCOUNT_FLAG_INVALID
740 Refcount file can only exist in a volume with refcount supported, Fsck
741 has found that a file in a non-refcount volume has refcount flag set.
742
743 Answering yes remove this flag from the file.
744
745
746 REFCOUNT_LOC_INVALID
747 Refcount loc can only be valid if the file has refcount flag set. Fsck
748 has found that a file has refcount loc while it does't have refcount
749 flag set.
750
751 Answering yes reset refcount loc to zero for the file.
752
753
754 RB_BLKNO
755 refcount blocks contain a record of the disk block where they are
756 located. An refcount block was found at a block that didn't match its
757 recorded location.
758
759 Answering yes will update the data structure in the refcount block to
760 reflect its real location on disk.
761
762
763 RB_GEN
764 Refcount blocks are created with a generation number to match the gen‐
765 eration number of the volume at the time of creation. An refcount
766 block was found which contains a generation number that doesn't match.
767
768 Answering yes implies that the generation number is correct and that
769 the refcount block is from a previous file system. The refcount block
770 will be removed and the file that uses it will lose the refcounted
771 information, but it may be regenerated later.
772
773
774 RB_GEN_FIX
775 Refcount blocks are created with a generation number to match the gen‐
776 eration number of the volume at the time of creation. An refcount
777 block was found which contains a generation number that doesn't match.
778
779 Answering yes implies that the generation number in the refcount block
780 is incorrect and that the refcount block is valid. The generation num‐
781 ber in the block is updated to match the generation number in the vol‐
782 ume.
783
784
785 RB_PARENT
786 refcount blocks contain a record of the parent this disk block belongs
787 to. An refcount block was found storing a wrong parent location.
788
789 Answering yes will update the data structure in the refcount block to
790 reflect its parent's real location on disk.
791
792
793 REFCOUNT_LIST_COUNT
794 The number of entries in a refcount list is bounded by the size of the
795 block which contains it. An refcount list was found which claims to
796 have more entries than would fit in its container.
797
798 Answering yes updates the count field in the refcount list to match the
799 container. Answering no to this question may stop further fixes from
800 being done because the count value can not be trusted.
801
802
803 REFCOUNT_LIST_USED
804 The number of free entries in a refcount list must be less than the
805 total number of entries in the list. A list was found which claims to
806 have more free entries than possible entries.
807
808 Answering yes sets the number of free entries in the list equal to the
809 total possible entries.
810
811
812 REFCOUNT_CLUSTER_RANGE
813 A refcount record was found which references a cluster which can not be
814 referenced by a refcount. The referenced cluster is either very early
815 in the volume, and thus reserved, or beyond the end of the volume.
816
817 Answering yes removes this refcount record from the tree.
818
819
820 REFCOUNT_CLUSTER_COLLISION
821 A refcount record was found which references a cluster which has a col‐
822 lision with the previous valid refcount record.
823
824 Answering yes removes this refcount record from the tree.
825
826
827 REFCOUNT_LIST_EMPTY
828 A refcount list was found which has no refcount record in it. It is
829 normally caused by a corrupted refcount record.
830
831 Answering yes removes this refcount block from the tree. It will be re-
832 generated in refcounted extent records handler if all the other infor‐
833 mation is sane.
834
835
836 REFCOUNT_BLOCK_INVALID
837 Refcount block stores the refcount record for physical clusters of a
838 file. It is found refering an invalid refcount block.
839
840 Answering yes remove this refcount block.
841
842
843 REFCOUNT_CLUSTERS
844 Refcount tree contains a record of how many clusters are allocated to
845 them. A tree was found whose recorded number of clusters doesn't match
846 the number of blocks that were found associated with it.
847
848 Answering yes resets the number of clusters to reflect the real number
849 of clusters that were associated with the tree.
850
851
852 REFCOUNT_ROOT_BLOCK_INVALID
853 Root refcount block is the root of the refcount record for a file. It
854 is found refering an invalid refcount block.
855
856 Answering yes remove this refcount block and clear refcount flag from
857 this file.
858
859
860 REFCOUNT_REC_REDUNDANT
861 Refcount record is used to store the refcount for physical clusters.
862 Some refcount record is found to have no physical clusters correspond‐
863 ing to it.
864
865 Answering yes remove the refcount record.
866
867
868 REFCOUNT_COUNT_INVALID
869 Refcount record is used to store the refcount for physical clusters. A
870 record record is found whichs claims the wrong refcount for some physi‐
871 cal clusters.
872
873 Answering yes update the corresponding refcount record.
874
875
876 REFCOUNT_COUNT
877 Refcount tree contains a record of how many files refering to this
878 tree. A tree was found whose recorded number of files doesn't match
879 the real files refering to the tree.
880
881 Answering yes resets the number of files to reflect the real number of
882 files that were associated with the tree.
883
884
885
886
887 DUP_CLUSTERS_SYSFILE_CLONE
888 A system file inode claims clusters that are also claimed by another
889 inode. ocfs2 does not allow this. System files may be cloned but may
890 not be deleted. Allocation system files may not be cloned or deleted.
891
892 Answering yes will copy the data of this inode to newly allocated
893 extents. This will break the claim on the overcommitted clusters.
894
895
896 DUP_CLUSTERS_CLONE
897 An inode claims clusters that are also claimed by another inode. ocfs2
898 does not allow this.
899
900 Answering yes will copy the data of this inode to newly allocated
901 extents. This will break the claim on the overcommitted clusters.
902
903
904 DUP_CLUSTERS_DELETE
905 An inode claims clusters that are also claimed by another inode. ocfs2
906 does not allow this.
907
908 Answering yes will remove this inode, thus breaking its claim on the
909 overcommitted clusters.
910
911
912 DUP_CLUSTERS_ADD_REFCOUNT
913 An inode claims clusters that are also claimed by another inode. ocfs2
914 does not allow this.
915
916 Answering yes will try to add a refcount record for all these inodes,
917 so that they will share the cluster.
918
919
920
921
922 DIRENT_DOTTY_DUP
923 There can be only one instance of both the "." and ".." entries in a
924 directory. A directory entry was found which duplicated one of these
925 entries.
926
927 Answering yes will remove the duplicate directory entry.
928
929
930 DIRENT_NOT_DOTTY
931 The first and second directory entries in a directory must be "." and
932 ".." respectively. One of these directory entries was found to not
933 match these rules.
934
935 Answering yes will force the directory entry to be either "." or "..".
936 This might consume otherwise valid entries and cause some files to
937 appear in lost+found.
938
939
940 DIRENT_DOT_INODE
941 The inode field of the "." directory entry must refer to the directory
942 inode that contains the given directory block. A "." entry was found
943 which doesn't do so.
944
945 Answering yes sets the directory entry's inode reference to the parent
946 directory that contains the entry.
947
948
949 DIRENT_DOT_EXCESS
950 A "." directory entry was found whose lengths exceeds the amount
951 required for the single dot in the name.
952
953 Answering yes creates another empty directory entry in this excess
954 space.
955
956
957 DIRENT_ZERO
958 A directory entry was found with a zero length name.
959
960 Answering yes clears the directory entry so its space can be reused.
961
962
963 DIRENT_NAME_CHARS
964 Directory entries can not contain either the NULL character (ASCII 0)
965 or the forward slash (ASCII 47). A directory entry was found which
966 contains either.
967
968 Answering yes will change each instance of these forbidden characters
969 into a period (ASCII 46).
970
971
972 DIRENT_INODE_RANGE
973 Each directory entry contains a inode field which the entry's name cor‐
974 responds to. An entry was found which referenced an inode number that
975 is invalid for the current volume.
976
977 Answering yes clears this entry so its space can be reused. If the
978 entry once corresponded to a real inode and was corrupted this inode
979 may appear in lost+found.
980
981
982 DIRENT_INODE_FREE
983 Each directory entry contains a inode field which the entry's name cor‐
984 responds to. An entry was found which referenced an inode number that
985 isn't in use.
986
987 Answering yes clears this directory entry.
988
989
990 DIRENT_TYPE
991 Each directory entry contains a field which describes the type of file
992 that the entry refers to. An entry was found whose type doesn't match
993 the inode it is referring to.
994
995 Answering yes resets the entry's type to match the target inode.
996
997
998 DIR_PARENT_DUP
999 Each directory can only be pointed to by one directory entry in a par‐
1000 ent directory. A directory entry was found which was the second entry
1001 to point to a given directory inode.
1002
1003 Answering yes clears this entry which was the second to refer to a
1004 given directory. This reflects the policy that hard links to directo‐
1005 ries are not allowed.
1006
1007
1008 DIRENT_DUPLICATE
1009 File names within a directory must be unique. A file name occurred in
1010 more than one directory entry in a given directory.
1011
1012 Answering yes renames the duplicate entry to a name that doesn't col‐
1013 lide with recent entries and is unlikely to collide with future entries
1014 in the directory.
1015
1016
1017 DIRENT_LENGTH
1018 There are very few directory entry lengths that are valid. The lengths
1019 must be greater than the minimum required to record a single character
1020 directory, be rounded to 12 bytes, be within the amount of space
1021 remaining in a directory block, and be properly rounded for the size of
1022 the name of the directory entry. An entry was found which didn't meet
1023 these criteria.
1024
1025 Answering yes will try to repair the directory entry. This runs a very
1026 good chance of invalidating all the entries in the directory block.
1027 Orphaned inodes may appear in lost+found.
1028
1029
1030 DIR_TRAILER_INODE
1031 A directory block trailer is a fake directory entry at the end of the
1032 block. The trailer has compatibility fields for when it is viewed as a
1033 directory entry. The inode field must be zero.
1034
1035 Answering yes will set the inode field to zero.
1036
1037
1038 DIR_TRAILER_NAME_LEN
1039 A directory block trailer is a fake directory entry at the end of the
1040 block. The trailer has compatibility fields for when it is viewed as a
1041 directory entry. The name length field must be zero.
1042
1043 Answering yes will set the name length field to zero.
1044
1045
1046 DIR_TRAILER_REC_LEN
1047 A directory block trailer is a fake directory entry at the end of the
1048 block. The trailer has compatibility fields for when it is viewed as a
1049 directory entry. The record length field must be equal to the size of
1050 the trailer.
1051
1052 Answering yes will set the record length field to the size of the
1053 trailer.
1054
1055
1056 DIR_TRAILER_BLKNO
1057 A directory block trailer is a fake directory entry at the end of the
1058 block. The self-referential block number is incorrect.
1059
1060 Answering yes will set the block number to the correct block on disk.
1061
1062
1063 DIR_TRAILER_PARENT_INODE
1064 A directory block trailer is a fake directory entry at the end of the
1065 block. It has a pointer to the directory inode it belongs to. This
1066 pointer is incorrect.
1067
1068 Answering yes will set the parent inode pointer to the inode referenc‐
1069 ing this directory block.
1070
1071
1072
1073
1074 ROOT_DIR_MISSING
1075 The super block contains a reference to the inode that serves as the
1076 root directory. This reference points to an inode that isn't in use.
1077
1078 Answering yes will create a new inode and update the super block to
1079 refer to this inode as the root directory.
1080
1081
1082 LOSTFOUND_MISSING
1083 The super block contains a reference to the inode that serves as the
1084 lost+found directory. This reference points to an inode that isn't in
1085 use.
1086
1087 Answering yes will create a new lost+found directory in the root direc‐
1088 tory.
1089
1090
1091 DIR_NOT_CONNECTED
1092 Every directory in the file system should be reachable by a directory
1093 entry in its parent directory. This is verified by walking every
1094 directory in the system. A directory inode was found during this walk
1095 which doesn't have a parent directory entry.
1096
1097 Answering yes moves this directory entry into the lost+found directory
1098 and gives it a name based on its inode number.
1099
1100
1101 DIR_DOTDOT
1102 A directory inode's ".." directory entry must refer to the parent
1103 directory. A directory was found whose ".." doesn't refer to its par‐
1104 ent.
1105
1106 Answering yes will read the directory block for the given directory and
1107 update its ".." entry to reflect its parent.
1108
1109
1110
1111
1112 INODE_NOT_CONNECTED
1113 Most all inodes in the system should be referenced by a directory
1114 entry. An inode was found which isn't referred to by any directory
1115 entry.
1116
1117 Answering yes moves this inode into the lost+found directory and gives
1118 it a name based on its inode number.
1119
1120
1121 INODE_COUNT
1122 Each inode records the number of directory entries that refer to it.
1123 An inode was found whose recorded count doesn't match the number of
1124 entries that refer to it.
1125
1126 Answering yes sets the inode's count to match the number of referring
1127 directory entries.
1128
1129
1130 INODE_ORPHANED
1131 While files are being deleted they are placed in an internal directory.
1132 If the machine crashes while this is taking place the files will be
1133 left in this directory. Fsck has found an inode in this directory and
1134 would like to finish the job of truncating and removing it.
1135
1136 Answering yes removes the file data associated with the inode and frees
1137 the inode.
1138
1139
1140 RECOVER_BACKUP_SUPERBLOCK
1141 When fsck.ocfs2 successfully uses the specified backup superblock, it
1142 provides the user with this option to overwrite the existing superblock
1143 with that backup.
1144
1145 Answering yes will refresh the superblock from the backup. Answering no
1146 will only disable the copying of the backup superblock and will not
1147 effect the remaining fsck.ocfs2 processing.
1148
1149
1150 ORPHAN_DIR_MISSING
1151 While files are being deleted they are placed in an internal directory,
1152 named orphan directory. If an orphan directory does not exist, an OCFS2
1153 volume cannot be mounted successfully. Fsck has found the orphan direc‐
1154 tory is missing and would like to create it for future use.
1155
1156 Answering yes creates the orphan directory in the system directory.
1157
1158
1159 JOURNAL_FILE_INVALID
1160 OCFS2 uses JDB for journalling and some journal files exist in the sys‐
1161 tem directory. Fsck has found some journal files that are invalid.
1162
1163 Answering yes to this question will regenerate the invalid journal
1164 files.
1165
1166
1167 JOURNAL_UNKNOWN_FEATURE
1168 Fsck has found some journal files with unknown features. Other jour‐
1169 nals on the filesystem have only known features, so this is likely a
1170 corruption. If you think your filesystem may be newer than this ver‐
1171 sion of fsck.ocfs2, say N here and grab the latest version of
1172 fsck.ocfs2.
1173
1174 Answering yes resets the journal features to match other journals.
1175
1176
1177 JOURNAL_MISSING_FEATURE
1178 Fsck has found some journal files have features that are not set on all
1179 journal files. All journals on filesystem should have the same set of
1180 features.
1181
1182 Answering yes will set all journals to the union of set features.
1183
1184
1185 JOURNAL_TOO_SMALL
1186 Fsck has found some journal files are too small.
1187
1188 Answering yes extends these journals.
1189
1190
1191 RECOVER_CLUSTER_INFO
1192 The currently active cluster stack is different than the one the
1193 filesystem is configured for. Thus, fsck.ocfs2 cannot determine
1194 whether the filesystem is mounted on an another node or not. The recom‐
1195 mended solution is to exit and run fsck.ocfs2 on this device from a
1196 node that has the appropriate active cluster stack. However, you can
1197 proceed with the fsck if you are sure that the volume is not in use on
1198 any node.
1199
1200 Answering yes reconfigures the filesystem to use the current cluster
1201 stack. DANGER: YOU MUST BE ABSOLUTELY SURE THAT NO OTHER NODE IS USING
1202 THIS FILESYSTEM BEFORE CONTINUING. OTHERWISE, YOU CAN CORRUPT THE
1203 FILESYSTEM AND LOSE DATA.
1204
1205
1206 INLINE_DATA_FLAG_INVALID
1207 Inline file can only exist in a volume with inline supported, Fsck has
1208 found that a file in a non-inline volume has inline flag set.
1209
1210 Answering yes remove this flag from the file.
1211
1212
1213 INLINE_DATA_COUNT_INVALID
1214 For an inline file, there is a limit for id2.id_data.id_count. Fsck has
1215 found that this value isn't right.
1216
1217 Answering yes change this value to the right number.
1218
1219
1220 XATTR_BLOCK_INVALID
1221 Extended attributes are stored off an extended attribute block refer‐
1222 enced by the inode. This inode references an invalid extended
1223 attribute block.
1224
1225 Answering yes will remove this block.
1226
1227
1228 XATTR_COUNT_INVALID
1229 The count of extended attributes in an inode, block, or bucket does not
1230 match the number of entries found by fsck.
1231
1232 Answering yes will change this to the correct count.
1233
1234
1235 XATTR_ENTRY_INVALID
1236 An extended attribute entry points to already used space.
1237
1238 Answering yes will remove this entry.
1239
1240
1241 XATTR_NAME_OFFSET_INVALID
1242 The name_offset field of an extended attribute entry is not correct.
1243 Without a correct name_offset field, the entry cannot be used.
1244
1245 Answering yes will remove this entry.
1246
1247
1248 XATTR_VALUE_INVALID
1249 The value region of an extended attribute points to already used space.
1250
1251 Answering yes will remove this entry.
1252
1253
1254 XATTR_LOCATION_INVALID
1255 The xe_local field and xe_value_size field of an extended attribute
1256 entry does not match. So the entry cannot be used.
1257
1258 Answering yes will remove this entry.
1259
1260
1261 XATTR_HASH_INVALID
1262 Extended attributes use a hash of their name for lookup purposes. The
1263 name_hash of this extended attribute entry is not correct.
1264
1265 Answering yes will change this to the correct hash.
1266
1267
1268 XATTR_FREE_START_INVALID
1269 Extended attributes use free_start to indicate the offset of the free
1270 space in inode, block, or bucket. The free_start field of this object
1271 is not correct.
1272
1273 Answering yes will change this to the correct offset.
1274
1275
1276 XATTR_VALUE_LEN_INVALID
1277 Extended attributes use name_value_len to store the total length of all
1278 entry's name and value in inode, block or bucket. the name_value_len
1279 filed of this object is not correct.
1280
1281 Answering yes will change this to the correct value.
1282
1283
1284 XATTR_BUCKET_COUNT_INVALID
1285 The count of extended attributes bucket pointed by one extent record
1286 does not match the number of buckets found by fsck.
1287
1288 Answering yes will change this to the correct count.
1289
1290
1291
1292
1293 QMAGIC_INVALID
1294 The magic number in the header of quota file does not match the proper
1295 number.
1296
1297 Answering yes will make fsck use values in the quota file header any‐
1298 way.
1299
1300
1301 QTREE_BLK_INVALID
1302 Block with references to other blocks with quota data is corrupted.
1303
1304 Answering yes will make fsck use references in the block.
1305
1306
1307 DQBLK_INVALID
1308 The structure with quota limits was found in a corrupted block.
1309
1310 Answering yes will use the values of limits for the user / group.
1311
1312
1313 DUP_DQBLK_INVALID
1314 The structure with quota limits was found in a corrupted block and fsck
1315 has already found quota limits for this user / group.
1316
1317 Answering yes will use new values of limits for the user / group.
1318
1319
1320 DUP_DQBLK_VALID
1321 The structure with quota limits was found in a correct block but fsck
1322 has already found quota limits for this user / group.
1323
1324 Answering yes will use new values of limits for the user / group.
1325
1326
1327 IV_DX_TREE
1328 A directory index was found on an inode but that feature is not enabled
1329 on the file system.
1330
1331 Answering yes will truncate the invalid index.
1332
1333
1334 DX_LOOKUP_FAILED
1335 A directory entry is missing an entry in the directory index. The miss‐
1336 ing index entry will cause lookups on this name to fail.
1337
1338 Answering yes will rebuild the directory index, restoring the missing
1339 entry.
1340
1341
1342 NO_HOLES
1343 A metadata structure encountered a hole where it should not. Examples
1344 of such structures are directories, refcount trees, dx_trees etc.
1345
1346 Answering yes will remove the hole by updating the offset to the
1347 expected value.
1348
1349
1350 EXTENT_OVERLAP
1351 The extents of the file overlap, which means there could be two or more
1352 possible data for a particular offset for the file.
1353
1354 Answering yes will serialize the extents.
1355
1356
1357 DX_TREE_CORRUPT
1358 The index tree of the directory is corrupt.
1359
1360 Answering yes will rebuild the directory index, in pass 2.
1361
1362
1363
1364 DX_TREE_MISSING
1365 The index of this directory is missing.
1366
1367 Answering yes will rebuild the directory index.
1368
1369
1370 BAD_CRC32
1371 The metadata block has a bad CRC32, which means either the block or the
1372 crc32 field is corrupted.
1373
1374 Answering yes will recalculate the CRC32.
1375
1376
1378 debugfs.ocfs2(8) fsck.ocfs2(8) mkfs.ocfs2(8) mount.ocfs2(8)
1379 mounted.ocfs2(8) o2cluster(8) o2image(8) o2info(1) tunefs.ocfs2(8)
1380
1381
1383 Oracle Corporation.
1384
1385
1387 Copyright © 2004, 2012 Oracle. All rights reserved.
1388
1389
1390
1391Version 1.8.5 January 2012 fsck.ocfs2.checks(8)