Opened 8 years ago

Closed 8 years ago

Last modified 8 years ago

#7079 closed bug (fixed)

[ext4] could not initialize block allocator, going read-only!

Reported by: diver Owned by: korli
Priority: normal Milestone: R1
Component: File Systems/ext2 Version: R1/Development
Keywords: Cc:
Blocked By: Blocking:
Has a Patch: no Platform: All

Description

This is hrev40175, gcc4hybrid.

ext4 volume always mounts in read-only mode. The following text is printed to syslog on every mount:

KERN: ext2: Inode::EnableFileCache(): Failed to create file cache
KERN: ext2: AllocationBlockGroup(2269,73924621)::Initialize(): Mismatch between counted free blocks (520/30350) and what is set on the group descriptor (541)
KERN: ext2: could not initialize block allocator, going read-only!

I tried to run fsck in Ubuntu by running touch /forcefsck and rebooting. That didn't help, exactly the same text is printed to the syslog.

Attachments (1)

dumpe2fs_dev_sda1 (1.3 MB) - added by diver 8 years ago.
dumpe2fs /dev/sda1 full output

Download all attachments as: .zip

Change History (11)

comment:1 Changed 8 years ago by korli

Status: newin-progress

Diver, could you check which block size this volume has?

Could you please dump the bitmap block using the following command line? 4k is the block size, change it if needed.

dd if=/path/to/your/volume skip=73924621 count=1 bs=4k | od -x > dump.txt

Thanks for you help.

comment:2 Changed 8 years ago by diver

dd if=/dev/sda1 skip=73924621 count=1 bs=4k | od -x

0000000 ffff ffff ffff ffff ffff ffff ffff ffff
*
0002740 ffff ffff ffff ffff 3fff 0000 ffff 3fff
0002760 ffff 0007 ffff 007f ffff ffff 03ff 0000
0003000 ffff ffff ffff ffff ffff ffff ffff ffff
*
0007120 ffff ffff ffff ffff ffff ffff ffff 0001
0007140 0000 0000 0000 0000 0000 0000 0000 0000
*
0007200 ffff ffff ffff ffff ffff ffff ffff ffff
0007220 ffff ffff ffff ffff ffff 003f ffff 00ff
0007240 ffff 0003 ffff 007f ffff ffff 7fff 0000
0007260 ffff ffff 7fff 0000 0000 0000 0000 0000
0007300 0000 ffff ffff 0001 ffff ffff 0001 0000
0007320 ff07 ffff ffff ffff ffff ffff ffff ffff
0007340 ffff ffff ffff ffff ffff ffff ffff ffff
*
0010000

comment:3 Changed 8 years ago by diver

e2freefrag /dev/sda1

Device: /dev/sda1
Blocksize: 4096 bytes
Total blocks: 74380942
Free blocks: 54169063 (72.8%)

Min. free extent: 4 KB
Max. free extent: 2064256 KB
Avg. free extent: 8636 KB

HISTOGRAM OF FREE EXTENT SIZES:
Extent Size Range :  Free extents   Free Blocks  Percent
    4K...    8K-  :          6183          6183    0.01%
    8K...   16K-  :          4254          9797    0.02%
   16K...   32K-  :          5677         26334    0.05%
   32K...   64K-  :          3023         33166    0.06%
   64K...  128K-  :          1914         43373    0.08%
  128K...  256K-  :          1069         47982    0.09%
  256K...  512K-  :           826         73663    0.14%
  512K... 1024K-  :           557         98482    0.18%
    1M...    2M-  :           656        241808    0.45%
    2M...    4M-  :           427        302783    0.56%
    4M...    8M-  :           254        386745    0.71%
    8M...   16M-  :            64        166974    0.31%
   16M...   32M-  :            17         98324    0.18%
   32M...   64M-  :            13        165661    0.31%
   64M...  128M-  :            41        948498    1.75%
  128M...  256M-  :             1         37897    0.07%
  256M...  512M-  :             1         75690    0.14%
  512M... 1024M-  :             5       1130844    2.09%
    1G...    2G-  :           100      50275895   92.81%

comment:4 Changed 8 years ago by diver

dumpe2fs /dev/sda1

dumpe2fs 1.41.11 (14-Mar-2010)
Filesystem volume name:   Ubuntu
Last mounted on:          <not available>
Filesystem UUID:          6e599830-74b1-41fe-a8c1-9636830844e2
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash
Default mount options:    (none)
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              640848
Block count:              2560359
Reserved block count:     128017
Free blocks:              2481731
Free inodes:              640837
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      625
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8112
Inode blocks per group:   507
Flex block group size:    16
Filesystem created:       Thu Jan  6 12:52:02 2011
Last mount time:          n/a
Last write time:          Sun Jan  9 17:27:36 2011
Mount count:              0
Maximum mount count:      29
Last checked:             Thu Jan  6 12:52:02 2011
Check interval:           15552000 (6 months)
Next check after:         Tue Jul  5 13:52:02 2011
Lifetime writes:          287 MB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:               256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
Default directory hash:   half_md4
Directory Hash Seed:      81484093-0928-4a0d-a662-3af146dcb8ed
Journal backup:           inode blocks
dumpe2fs: A block group is missing an inode table while reading journal inode
...
skipped
Last edited 8 years ago by diver (previous) (diff)

Changed 8 years ago by diver

Attachment: dumpe2fs_dev_sda1 added

dumpe2fs /dev/sda1 full output

comment:5 Changed 8 years ago by korli

Thanks for providing all information. That's useful.

Please check hrev40182. The volume seems to not be aligned on 32 bits at the end. It's a corner case I really didn't check before, sorry.

comment:6 Changed 8 years ago by korli

Please check also with hrev40183 which factorizes the FindNext code. Thanks.

comment:7 Changed 8 years ago by diver

With hrev40183 I can finally mount my ext4 partition read/write, thanks!
The only thing that is still printed to the syslog is this line:

KERN: ext2: Inode::EnableFileCache(): Failed to create file cache

comment:8 Changed 8 years ago by korli

Resolution: fixed
Status: in-progressclosed

I think that one is "normal": the journal inode can't have a file cache as it's not published in the vfs.

comment:9 Changed 8 years ago by diver

What the downsides of running without file cache? Is there a way to fix it?

comment:10 Changed 8 years ago by korli

The journal inode is not a mapped file visible by the kernel or the user, so there is no need to have a file cache for it.

Note: See TracTickets for help on using tickets.