1fsck.ocfs2.checks(8)          OCFS2 Manual Pages          fsck.ocfs2.checks(8)
2
3
4

NAME

6       fsck.ocfs2.checks  - Consistency checks that fsck.ocfs2(8) performs and
7       its means for fixing inconsistencies.
8

DESCRIPTION

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

CHECKS

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 doesn'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 referring 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 referring 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  referring  to  this
878       tree.   A  tree  was found whose recorded number of files doesn't match
879       the real files referring 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

SEE ALSO

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

AUTHORS

1383       Oracle Corporation.
1384
1385
1387       Copyright © 2004, 2012 Oracle. All rights reserved.
1388
1389
1390
1391Version 1.8.6                    January 2012             fsck.ocfs2.checks(8)
Impressum