All of lore.kernel.org
 help / color / mirror / Atom feed
* Beginner questions about ext4
@ 2013-06-12 12:20 Felipe Monteiro de Carvalho
  2013-06-23  6:29 ` Felipe Monteiro de Carvalho
  0 siblings, 1 reply; 18+ messages in thread
From: Felipe Monteiro de Carvalho @ 2013-06-12 12:20 UTC (permalink / raw)
  To: linux-ext4

Hello,

I am starting with ext4 development, so I have lot's of questions =)

1> About ext4 feature FLEX_BG, I see that it merges multiple
groups in 1 group, but I wonder how this makes sense...
In ext3 did each block group contain always 1 block? 
If not, then how many?
And if not, how does that differ from FLEX_BG?

2> I see that the number of groups inside a flexible group is
given by 2^sb.s_log_groups_per_flex but:
a> Every single group is a flexible group or some are and some now?
b> This number is the same for all flexible groups?

3> Could anyone be kind enough to post the full path which is done
to find data in a given file?
I already found inode.i_block .... wonder what are the other links between 
things, like for example between a group and inodes, etc...

thanks,

Felipe Monteiro de Carvalho

PS: I need to restrict each line to 80 chars because of gmane,
sorry for that =(


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Beginner questions about ext4
  2013-06-12 12:20 Beginner questions about ext4 Felipe Monteiro de Carvalho
@ 2013-06-23  6:29 ` Felipe Monteiro de Carvalho
  2013-06-23 11:59   ` Theodore Ts'o
  0 siblings, 1 reply; 18+ messages in thread
From: Felipe Monteiro de Carvalho @ 2013-06-23  6:29 UTC (permalink / raw)
  To: linux-ext4

Hello,

I can now already answer some of my questions, thought others not:

> In ext3 did each block group contain always 1 block? 
> If not, then how many?

This information is in ext4_super_block.s_blocks_per_group

> 2> I see that the number of groups inside a flexible group is
> given by 2^sb.s_log_groups_per_flex but:
> a> Every single group is a flexible group or some are and some now?

I am still very much interesting in knowing this! Are all groups flexible 
groups when FLEX_BG feature is activated?

I found this image for how things relate to one another without flex_bg:

http://origin-ars.els-cdn.com/content/image/1-s2.0-S1742287612000357-gr1.jpg

Does anyone know if there is a simular image with flex_bg???

thanks,

Felipe Monteiro de Carvalho



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Beginner questions about ext4
  2013-06-23  6:29 ` Felipe Monteiro de Carvalho
@ 2013-06-23 11:59   ` Theodore Ts'o
  2013-07-01 15:23     ` Felipe Monteiro de Carvalho
  2013-07-15 10:20     ` Felipe Monteiro de Carvalho
  0 siblings, 2 replies; 18+ messages in thread
From: Theodore Ts'o @ 2013-06-23 11:59 UTC (permalink / raw)
  To: Felipe Monteiro de Carvalho; +Cc: linux-ext4

On Sun, Jun 23, 2013 at 06:29:18AM +0000, Felipe Monteiro de Carvalho wrote:
> 
> I am still very much interesting in knowing this! Are all groups flexible 
> groups when FLEX_BG feature is activated?
> 
> I found this image for how things relate to one another without flex_bg:
> 
> http://origin-ars.els-cdn.com/content/image/1-s2.0-S1742287612000357-gr1.jpg
> 
> Does anyone know if there is a simular image with flex_bg???

Historically, before flex_bg, the allocation bitmaps and inode tables
for a particular block group had to be located within that block
group, per the image that you've referenced above.

This had two difficulties.  The first is that every 128MB (assuming a
4k blocksize and the default/maximum number of blocks per block
group), there would be file system metadata, thus breaking up the
maximum contiguous free space available for data blocks.  The second
is that if e2fsck or resize2fs needed to relocate a metadata block, it
reduced the flexibility of where the new location of that metadata
block might be.

So the flex_bg feature relaxes this constraint.  So if we can put the
metadata blocks anywhere, where do we put them?  That's where
s_log_flex_bg_size in the superblock comes in.  This is a default
policy used by mke2fs and for online resizing where we try to put the
allocation bitmaps and inode table blocks at the beginning of a flex
group, where flex group N is defined as blocks falling within the
range (N * flex_bg_size) through (((N + 1) * flex_bg_size) - 1).

Note though that this is not a mandatory layout; there may be times
where e2fsck or resize2fs may need to change where these blocks end up
living.

The other thing which we do with this flex_bg layout is that it
influences ext4's inode and block allocation hueristcs.  For example,
ext4 will try to bias its allocation of directory blocks to try to
keep them within the first block group, and it will bias the
allocation of data blocks away from the first block group in a flex_bg
group.

Regards,

						- Ted

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Beginner questions about ext4
  2013-06-23 11:59   ` Theodore Ts'o
@ 2013-07-01 15:23     ` Felipe Monteiro de Carvalho
  2013-07-01 16:55       ` Theodore Ts'o
  2013-07-15 10:20     ` Felipe Monteiro de Carvalho
  1 sibling, 1 reply; 18+ messages in thread
From: Felipe Monteiro de Carvalho @ 2013-07-01 15:23 UTC (permalink / raw)
  To: Theodore Ts'o; +Cc: linux-ext4

On Sun, Jun 23, 2013 at 1:59 PM, Theodore Ts'o <tytso@mit.edu> wrote:
> Historically, before flex_bg, the allocation bitmaps and inode tables
> for a particular block group had to be located within that block
> group, per the image that you've referenced above.

Thanks, but I'm still not sure: Are all groups flexible groups when
FLEX_BG feature is activated?

If not, I wonder how a reader will recognize which groups were merged ...

thanks,
-- 
Felipe Monteiro de Carvalho

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Beginner questions about ext4
  2013-07-01 15:23     ` Felipe Monteiro de Carvalho
@ 2013-07-01 16:55       ` Theodore Ts'o
  2013-07-10 16:13         ` Felipe Monteiro de Carvalho
  0 siblings, 1 reply; 18+ messages in thread
From: Theodore Ts'o @ 2013-07-01 16:55 UTC (permalink / raw)
  To: Felipe Monteiro de Carvalho; +Cc: linux-ext4

On Mon, Jul 01, 2013 at 05:23:13PM +0200, Felipe Monteiro de Carvalho wrote:
> On Sun, Jun 23, 2013 at 1:59 PM, Theodore Ts'o <tytso@mit.edu> wrote:
> > Historically, before flex_bg, the allocation bitmaps and inode tables
> > for a particular block group had to be located within that block
> > group, per the image that you've referenced above.
> 
> Thanks, but I'm still not sure: Are all groups flexible groups when
> FLEX_BG feature is activated?

I'm not sure whant you mean by "flexible groups".  There is no such
concept.

> If not, I wonder how a reader will recognize which groups were merged ...

And block groups don't get merged.

You should think of a flex block group as a collection of block
groups.  (Just as a number of provinces make up country, or a
collection of towns make up a county, and a number of counties make up
a province.)

	       	    	      		- Ted

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Beginner questions about ext4
  2013-07-01 16:55       ` Theodore Ts'o
@ 2013-07-10 16:13         ` Felipe Monteiro de Carvalho
  2013-07-10 17:24           ` Theodore Ts'o
  0 siblings, 1 reply; 18+ messages in thread
From: Felipe Monteiro de Carvalho @ 2013-07-10 16:13 UTC (permalink / raw)
  To: Theodore Ts'o; +Cc: linux-ext4

On Mon, Jul 1, 2013 at 6:55 PM, Theodore Ts'o <tytso@mit.edu> wrote:
> I'm not sure whant you mean by "flexible groups".  There is no such
> concept.

This wiki says that flex_bg stands for "Flexible Block Groups":

https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout#Flexible_Block_Groups

>> If not, I wonder how a reader will recognize which groups were merged ...
>
> And block groups don't get merged.
>
> You should think of a flex block group as a collection of block
> groups.  (Just as a number of provinces make up country, or a
> collection of towns make up a county, and a number of counties make up
> a province.)

I'll try to be more specific.

When I am reading a ext4 file system and I find that there exists an
inode /etc/ with groupnr 32 and nodenr 260099, will this group 32 be
in the same position (distance in bytes from the beginning of the
disk) as in ext3? Or will the flex_bg make the first 16 groups fit
into the size that previously 1 group utilized? So group 32 in ext 4
would be in the physical position of group 2 in ext3.

If I have s_log_groups_per_flex=4 (seams the be the most popular
value), then each and every set of 16 groups will be groups into
flex_bgs or only some are grouped into flex_bgs?

Basically I have a reader for ext3 and I added EXTENT support and it
works now fine for the group 0, but for higher groups it is not
working and I'm trying to find out what I need to change ... I'm
trying to find what physically changed here... but it is a hard
battle. Much harder than EXTENT support was.

thanks,
-- 
Felipe Monteiro de Carvalho

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Beginner questions about ext4
  2013-07-10 16:13         ` Felipe Monteiro de Carvalho
@ 2013-07-10 17:24           ` Theodore Ts'o
  2013-07-11  7:37             ` Felipe Monteiro de Carvalho
  0 siblings, 1 reply; 18+ messages in thread
From: Theodore Ts'o @ 2013-07-10 17:24 UTC (permalink / raw)
  To: Felipe Monteiro de Carvalho; +Cc: linux-ext4

On Wed, Jul 10, 2013 at 06:13:08PM +0200, Felipe Monteiro de Carvalho wrote:
> 
> When I am reading a ext4 file system and I find that there exists an
> inode /etc/ with groupnr 32 and nodenr 260099, will this group 32 be
> in the same position (distance in bytes from the beginning of the
> disk) as in ext3? Or will the flex_bg make the first 16 groups fit
> into the size that previously 1 group utilized? So group 32 in ext 4
> would be in the physical position of group 2 in ext3.
> 
> If I have s_log_groups_per_flex=4 (seams the be the most popular
> value), then each and every set of 16 groups will be groups into
> flex_bgs or only some are grouped into flex_bgs?
> 
> Basically I have a reader for ext3 and I added EXTENT support and it
> works now fine for the group 0, but for higher groups it is not
> working and I'm trying to find out what I need to change ... I'm
> trying to find what physically changed here... but it is a hard
> battle. Much harder than EXTENT support was.

Your reader shouldn't care about the flex_bg feature.  From a reader's
perspective, flex_bg's don't matter.  Just ignore it.  Just think in
terms of block groups, and you'll be find.  The Flex_bg feature
matters for how our block allocation strategy works, and it influences
how online resizing works, and it tells e2fsck that it's ok for the
inode table for a particular block group to be located outside of its
own block group (which is where the "flexible" came from).

But from a read-only client is concerned, it doesn't matter.  Just use
the block group descriptors to find the location of the inode table,
and just expunge the concept of flex_bg's from your mind entirely.  Or
better yet, just use the libext2fs library, and don't try to reinvent
the wheel.....

					- Ted

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Beginner questions about ext4
  2013-07-10 17:24           ` Theodore Ts'o
@ 2013-07-11  7:37             ` Felipe Monteiro de Carvalho
  2013-07-11 15:23               ` Theodore Ts'o
  0 siblings, 1 reply; 18+ messages in thread
From: Felipe Monteiro de Carvalho @ 2013-07-11  7:37 UTC (permalink / raw)
  To: Theodore Ts'o; +Cc: linux-ext4

Hello,

That would be great, but then how to explain that
EXT4_FEATURE_INCOMPAT_FLEX_BG is present in
superblock^.s_feature_incompat

Which indicates that knowledge of this feature is necessary in the reader

-- 
Felipe Monteiro de Carvalho

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Beginner questions about ext4
  2013-07-11  7:37             ` Felipe Monteiro de Carvalho
@ 2013-07-11 15:23               ` Theodore Ts'o
  0 siblings, 0 replies; 18+ messages in thread
From: Theodore Ts'o @ 2013-07-11 15:23 UTC (permalink / raw)
  To: Felipe Monteiro de Carvalho; +Cc: linux-ext4

On Thu, Jul 11, 2013 at 09:37:05AM +0200, Felipe Monteiro de Carvalho wrote:
> Hello,
> 
> That would be great, but then how to explain that
> EXT4_FEATURE_INCOMPAT_FLEX_BG is present in
> superblock^.s_feature_incompat
> 
> Which indicates that knowledge of this feature is necessary in the reader

That was because originally the Linux kernel implementation would
check to make sure the inode table and allocation bitmaps for block
group N were in fact located in block group N.  If they were not, the
kernel would issue a lot of very scary warnings and mark the file
system as being corrupt when you tried to mount it.

But from a read-only implementation's perspective, the only thing you
need to know about the flex_bg feature is that inode table and
allocation bitmaps now have the __flexibility__ (hence the naming of
the file system feature "flex_bg") to be located outside of the block
group that they belong to.

The exact layout of how mke2fs and resize2fs will try to position the
inode tables is what is controlled by the flex_bg "size", where if the
flex_bg size is 16 block groups, we will try to locate the bg metadata
(i.e., inode tables plus allocation bitmaps) for blockgroups 0..15 in
bg 0, and the bg metadata for blockgroups 16..31 in bg 16, etc.  This
is a "best efforts" sort of thing, and there cases where this may not
be tree (for example, off-line resizing, in particular an off-line
shrink may change this).  So in the spirit of "be liberal in what you
accept, and conservative in what you receive", an implementation
should be prepared to deal with the inode table block and allocation
bitmaps being located anywhere in the file system.  It is _likely_
that the metadata block for a flex_bg will be located in a flex_bg,
but it is not guaranteed.

As used in the last sentence above, the term "flex_bg" is also
shorthand to refer to the collection of block groups 0 through 15 as a
"flex_bg" and blockgroups "15..31" as a flex_bg.  Yes, this is
confusing, although it's usually obvious from context whether
"flex_bg" is referring to the file system feature, or to a collection
of block groups.

The latter case is where where the allocation policy comes in, where
inodes which are located in the inode table corresponding to a flex_bg
consisting of block groups 0 through 15 will try to start allocating
directory blocks and extent tree blocks in block group 0, and data
blocks starting in block groups 1 and moving on through block group
15, and only then will we try to find another flex_bg to allocate the
data blocks.

The block allocation decisions and the layout of the inode table
blocks and allocation bitmaps only only matter if you are implementing
a read/write implementation of ext4, and they aren't even mandatory.
You could in theory create a read/write implementation that understood
the flex_bg feature, but used the layout and allocation algorithms
corresponding with ext3.  This will result in a much less performant
implementation, and cause greater file system fragmentation, but it
would be valid in terms of e2fsck passing judgement on whether the
file system is consistent.  Remember, the key word in "flex_bg" is
__flexibility__; it is what allows for more intelligent block
allocation algorithms and file system layouts.

Finally, can you please tell us what you are trying to do.  From what
I can tell, you are implementing some kind of propetiary read-only
library to read ext4 file systems?  Is this right?  If so, can I
pursuade you not to make it be proprietary, so you can use the
libext2fs library?  I've given you a lot of free advice and tutorials
in doing this, so it would be nice if you could reciprocate by telling
us what you are up to.  Maybe we can help you with more targetted
advice if we knew what you were doing.

Thanks, regards,

						- Ted

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Beginner questions about ext4
  2013-06-23 11:59   ` Theodore Ts'o
  2013-07-01 15:23     ` Felipe Monteiro de Carvalho
@ 2013-07-15 10:20     ` Felipe Monteiro de Carvalho
  2013-07-15 13:43       ` Theodore Ts'o
  1 sibling, 1 reply; 18+ messages in thread
From: Felipe Monteiro de Carvalho @ 2013-07-15 10:20 UTC (permalink / raw)
  To: Theodore Ts'o; +Cc: linux-ext4

On Sun, Jun 23, 2013 at 1:59 PM, Theodore Ts'o <tytso@mit.edu> wrote:
> This had two difficulties.  The first is that every 128MB (assuming a
> 4k blocksize and the default/maximum number of blocks per block
> group), there would be file system metadata, thus breaking up the
> maximum contiguous free space available for data blocks.

But the break up of contiguous free space still occurs, because each
group has a group descriptor in it's beginning, right?

-- 
Felipe Monteiro de Carvalho

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Beginner questions about ext4
  2013-07-15 10:20     ` Felipe Monteiro de Carvalho
@ 2013-07-15 13:43       ` Theodore Ts'o
  2013-07-15 16:09         ` Felipe Monteiro de Carvalho
  0 siblings, 1 reply; 18+ messages in thread
From: Theodore Ts'o @ 2013-07-15 13:43 UTC (permalink / raw)
  To: Felipe Monteiro de Carvalho; +Cc: linux-ext4

On Mon, Jul 15, 2013 at 12:20:01PM +0200, Felipe Monteiro de Carvalho wrote:
> On Sun, Jun 23, 2013 at 1:59 PM, Theodore Ts'o <tytso@mit.edu> wrote:
> > This had two difficulties.  The first is that every 128MB (assuming a
> > 4k blocksize and the default/maximum number of blocks per block
> > group), there would be file system metadata, thus breaking up the
> > maximum contiguous free space available for data blocks.
> 
> But the break up of contiguous free space still occurs, because each
> group has a group descriptor in it's beginning, right?

The sparse_super feature restricts the number of group descriptors to
those block groups which are multiples of the nth root of 3, 5, or 7.

So a 4T file system, only has 22 superblocks and group descriptors out
of 32768 blok groups (at block groups: 1, 3, 5, 7, 9, 25, 27, 49, 81,
125, 243, 343, 625, 729, 2187, 2401, 3125, 6561, 15625, 16807, and
19683).

There is also the meta_bg feature, which defines yet another concept,
a meta_bg group, which is the set of block groups which can fit in a
single block group descriptor block.  So for a 64-bit file system with
64-byte block group descriptors, you can fit 64 descriptors in a 4k
block.  So the size of a meta_bg group is 64 block groups.  (For a
file system w/o the 64-bit feature, the size of a meta_bg group is 128
block groups for file systems with 4k blocks.)  With a file system
with a meta_bg feature enabled, starting with the nth s_first_meta_bg
(i.e., block group s_first_meta_bg * bg_per_meta_bg), the block groups
are located at the first, second, and last block groups in a meta_bg
group.

The reason for the meta_bg feature is the resize_inode uses indirect
blocks, which only works for 32-bit block numbers.  So when we are
doing an online resize, once we expand the file system to the point
where we've run out of reserved bg descriptor blocks, or when we
expand beyond the 32-bit block number boundary, we enable the meta_bg
feature.  The advantage of the meta_bg feature is that it's no longer
required to reserved bg descriptor blocks, or to move the inode table
when doing off-line resizes.  The disadvantage of the meta_bg feature
is that the primary block groups are no longer contiguous, so it slows
down the time to mount a file system with a large number of bg
descriptor blocks which are laid out using the meta_bg feature.

Regards,

						- Ted

P.S.  And all of this is automatically handled by the ext2fs library.  :-P

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Beginner questions about ext4
  2013-07-15 13:43       ` Theodore Ts'o
@ 2013-07-15 16:09         ` Felipe Monteiro de Carvalho
  2013-07-15 16:37           ` Theodore Ts'o
  0 siblings, 1 reply; 18+ messages in thread
From: Felipe Monteiro de Carvalho @ 2013-07-15 16:09 UTC (permalink / raw)
  To: Theodore Ts'o; +Cc: linux-ext4

Hello,

Thanks. Now I think that I am getting closer to something more concrete.

My superblock says:

superblock^.s_blocks_per_group = 32768
superblock^.s_inodes_per_group = 8080
superblock^.s_log_block_size = 2 -> so each block has 4k bytes

And when reading the root "/"  I obtain the following information for
the directory /bin/ : inode=8081

So I calculate that it should have:
groupnr=1 (because it is above 8080 inodes per group)
offset for groupnr 1 --> 4k * 32768 = 0x8000000

But I have utilized a hex editor (oh boy, it was hard to find one that
would read files over 4GB....) And the directory listing of /bin/ is
located in aprox. near 0x21B0000

As if each block group would have a size of 0x2000000 .... but this
size would be valid I would expect if
superblock^.s_blocks_per_group=8192 ...

Any idea what I missed here that the calculations went wrong?

thanks,
-- 
Felipe Monteiro de Carvalho

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Beginner questions about ext4
  2013-07-15 16:09         ` Felipe Monteiro de Carvalho
@ 2013-07-15 16:37           ` Theodore Ts'o
  2013-07-15 17:55             ` Felipe Monteiro de Carvalho
  0 siblings, 1 reply; 18+ messages in thread
From: Theodore Ts'o @ 2013-07-15 16:37 UTC (permalink / raw)
  To: Felipe Monteiro de Carvalho; +Cc: linux-ext4

On Mon, Jul 15, 2013 at 06:09:03PM +0200, Felipe Monteiro de Carvalho wrote:
> Hello,
> 
> Thanks. Now I think that I am getting closer to something more concrete.
> 
> My superblock says:
> 
> superblock^.s_blocks_per_group = 32768
> superblock^.s_inodes_per_group = 8080
> superblock^.s_log_block_size = 2 -> so each block has 4k bytes
> 
> And when reading the root "/"  I obtain the following information for
> the directory /bin/ : inode=8081
> 
> So I calculate that it should have:
> groupnr=1 (because it is above 8080 inodes per group)
> offset for groupnr 1 --> 4k * 32768 = 0x8000000
> 
> But I have utilized a hex editor (oh boy, it was hard to find one that
> would read files over 4GB....) And the directory listing of /bin/ is
> located in aprox. near 0x21B0000
> 
> As if each block group would have a size of 0x2000000 .... but this
> size would be valid I would expect if
> superblock^.s_blocks_per_group=8192 ...
> 
> Any idea what I missed here that the calculations went wrong?

You're forgetting to read the inode structure.  So take the inode
number, determine that it's in the inode table fragment which belongs
to block group #1, then look up in the block group descriptors the
starting block of the inode table for bg #1, then look up the inode
size in the superblock, to determine the block number and offset to
read the inode structure.

Then you need to look at the inode structure to map logical block #0,
to the physical block number where the directory entries are located.

I suggest you RTFS in libext2fs....

					- Ted

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Beginner questions about ext4
  2013-07-15 16:37           ` Theodore Ts'o
@ 2013-07-15 17:55             ` Felipe Monteiro de Carvalho
  2013-07-15 18:10               ` Theodore Ts'o
  0 siblings, 1 reply; 18+ messages in thread
From: Felipe Monteiro de Carvalho @ 2013-07-15 17:55 UTC (permalink / raw)
  To: Theodore Ts'o; +Cc: linux-ext4

Hello,

Sorry for my dumb questions, but please, just 1 more =D

In another separate case, and a different partition being read too, I have:

/usr/ directory with information:
inode = 261837

superblock^.s_blocks_per_group = 32768
superblock^.s_inodes_per_group = 8128
superblock^.s_log_block_size = 2 -> so each block has 4k bytes
superblock^.s_inodes_per_group = 8128
number of block groups = (superblock^.s_blocks_count +
superblock^.s_blocks_per_group-1) div superblock^.s_blocks_per_group =
63

So I calculate (inodenr-1)/(inodes per group)=32 -> so the group nr
for inode /usr/ is 32

So next I decide to attempt to read the group descriptor for group 32

But my table of group descriptors read from group nr 0 is all correct
between group nr 0 and 31, but group nr 32 to 63 are filled with
zeroes.

>From what I had understood, the group descriptor in group zero should
contain all group descriptors from all groups, and subsequent
occurences of the group descriptor table would be backups.

Clearly it is not like that ... so I suppose that in group nr 32 I'll
find a table of group descriptors for groups between 32 and 63 or
something like that ... or maybe they did not fill in that block and
are somewhere else in group 0 .... any ideas?

full table of group descriptors read from group 0:

memoDebugOut
Group Descriptor Nr=0 bg_block_bitmap_lo=501 bg_inode_bitmap_lo=517
bg_inode_table_lo=533 bg_free_blocks_count_lo=21463
bg_free_inodes_count_lo=0 bg_used_dirs_count_lo=1232 bg_flags=4
Group Descriptor Nr=1 bg_block_bitmap_lo=503 bg_inode_bitmap_lo=519
bg_inode_table_lo=1549 bg_free_blocks_count_lo=47
bg_free_inodes_count_lo=23 bg_used_dirs_count_lo=633 bg_flags=4
Group Descriptor Nr=2 bg_block_bitmap_lo=505 bg_inode_bitmap_lo=521
bg_inode_table_lo=2565 bg_free_blocks_count_lo=2
bg_free_inodes_count_lo=8128 bg_used_dirs_count_lo=0 bg_flags=5
Group Descriptor Nr=3 bg_block_bitmap_lo=507 bg_inode_bitmap_lo=523
bg_inode_table_lo=3581 bg_free_blocks_count_lo=3410
bg_free_inodes_count_lo=8128 bg_used_dirs_count_lo=0 bg_flags=5
Group Descriptor Nr=4 bg_block_bitmap_lo=509 bg_inode_bitmap_lo=525
bg_inode_table_lo=4597 bg_free_blocks_count_lo=0
bg_free_inodes_count_lo=8128 bg_used_dirs_count_lo=0 bg_flags=5
Group Descriptor Nr=5 bg_block_bitmap_lo=511 bg_inode_bitmap_lo=527
bg_inode_table_lo=5613 bg_free_blocks_count_lo=16
bg_free_inodes_count_lo=8128 bg_used_dirs_count_lo=0 bg_flags=5
Group Descriptor Nr=6 bg_block_bitmap_lo=513 bg_inode_bitmap_lo=529
bg_inode_table_lo=6629 bg_free_blocks_count_lo=26803
bg_free_inodes_count_lo=8128 bg_used_dirs_count_lo=0 bg_flags=5
Group Descriptor Nr=7 bg_block_bitmap_lo=515 bg_inode_bitmap_lo=531
bg_inode_table_lo=7645 bg_free_blocks_count_lo=27542
bg_free_inodes_count_lo=8128 bg_used_dirs_count_lo=0 bg_flags=5
Group Descriptor Nr=8 bg_block_bitmap_lo=524288
bg_inode_bitmap_lo=524304 bg_inode_table_lo=524320
bg_free_blocks_count_lo=20867 bg_free_inodes_count_lo=0
bg_used_dirs_count_lo=573 bg_flags=4
Group Descriptor Nr=9 bg_block_bitmap_lo=524290
bg_inode_bitmap_lo=524306 bg_inode_table_lo=525336
bg_free_blocks_count_lo=171 bg_free_inodes_count_lo=0
bg_used_dirs_count_lo=423 bg_flags=4
Group Descriptor Nr=10 bg_block_bitmap_lo=524292
bg_inode_bitmap_lo=524308 bg_inode_table_lo=526352
bg_free_blocks_count_lo=0 bg_free_inodes_count_lo=499
bg_used_dirs_count_lo=1666 bg_flags=4
Group Descriptor Nr=11 bg_block_bitmap_lo=524294
bg_inode_bitmap_lo=524310 bg_inode_table_lo=527368
bg_free_blocks_count_lo=32243 bg_free_inodes_count_lo=8128
bg_used_dirs_count_lo=0 bg_flags=5
Group Descriptor Nr=12 bg_block_bitmap_lo=524296
bg_inode_bitmap_lo=524312 bg_inode_table_lo=528384
bg_free_blocks_count_lo=32768 bg_free_inodes_count_lo=8128
bg_used_dirs_count_lo=0 bg_flags=7
Group Descriptor Nr=13 bg_block_bitmap_lo=524298
bg_inode_bitmap_lo=524314 bg_inode_table_lo=529400
bg_free_blocks_count_lo=32768 bg_free_inodes_count_lo=8128
bg_used_dirs_count_lo=0 bg_flags=7
Group Descriptor Nr=14 bg_block_bitmap_lo=524300
bg_inode_bitmap_lo=524316 bg_inode_table_lo=530416
bg_free_blocks_count_lo=32768 bg_free_inodes_count_lo=8128
bg_used_dirs_count_lo=0 bg_flags=7
Group Descriptor Nr=15 bg_block_bitmap_lo=524302
bg_inode_bitmap_lo=524318 bg_inode_table_lo=531432
bg_free_blocks_count_lo=32768 bg_free_inodes_count_lo=8128
bg_used_dirs_count_lo=0 bg_flags=7
Group Descriptor Nr=16 bg_block_bitmap_lo=1048576
bg_inode_bitmap_lo=1048592 bg_inode_table_lo=1048608
bg_free_blocks_count_lo=20418 bg_free_inodes_count_lo=0
bg_used_dirs_count_lo=654 bg_flags=4
Group Descriptor Nr=17 bg_block_bitmap_lo=1048578
bg_inode_bitmap_lo=1048594 bg_inode_table_lo=1049624
bg_free_blocks_count_lo=12 bg_free_inodes_count_lo=0
bg_used_dirs_count_lo=2256 bg_flags=4
Group Descriptor Nr=18 bg_block_bitmap_lo=1048580
bg_inode_bitmap_lo=1048596 bg_inode_table_lo=1050640
bg_free_blocks_count_lo=0 bg_free_inodes_count_lo=8128
bg_used_dirs_count_lo=0 bg_flags=5
Group Descriptor Nr=19 bg_block_bitmap_lo=1048582
bg_inode_bitmap_lo=1048598 bg_inode_table_lo=1051656
bg_free_blocks_count_lo=0 bg_free_inodes_count_lo=8128
bg_used_dirs_count_lo=0 bg_flags=5
Group Descriptor Nr=20 bg_block_bitmap_lo=1048584
bg_inode_bitmap_lo=1048600 bg_inode_table_lo=1052672
bg_free_blocks_count_lo=17447 bg_free_inodes_count_lo=8128
bg_used_dirs_count_lo=0 bg_flags=5
Group Descriptor Nr=21 bg_block_bitmap_lo=1048586
bg_inode_bitmap_lo=1048602 bg_inode_table_lo=1053688
bg_free_blocks_count_lo=7625 bg_free_inodes_count_lo=8128
bg_used_dirs_count_lo=0 bg_flags=5
Group Descriptor Nr=22 bg_block_bitmap_lo=1048588
bg_inode_bitmap_lo=1048604 bg_inode_table_lo=1054704
bg_free_blocks_count_lo=32768 bg_free_inodes_count_lo=8128
bg_used_dirs_count_lo=0 bg_flags=7
Group Descriptor Nr=23 bg_block_bitmap_lo=1048590
bg_inode_bitmap_lo=1048606 bg_inode_table_lo=1055720
bg_free_blocks_count_lo=32768 bg_free_inodes_count_lo=8128
bg_used_dirs_count_lo=0 bg_flags=7
Group Descriptor Nr=24 bg_block_bitmap_lo=1572864
bg_inode_bitmap_lo=1572880 bg_inode_table_lo=1572896
bg_free_blocks_count_lo=20845 bg_free_inodes_count_lo=1
bg_used_dirs_count_lo=790 bg_flags=4
Group Descriptor Nr=25 bg_block_bitmap_lo=1572866
bg_inode_bitmap_lo=1572882 bg_inode_table_lo=1573912
bg_free_blocks_count_lo=0 bg_free_inodes_count_lo=0
bg_used_dirs_count_lo=188 bg_flags=4
Group Descriptor Nr=26 bg_block_bitmap_lo=1572868
bg_inode_bitmap_lo=1572884 bg_inode_table_lo=1574928
bg_free_blocks_count_lo=118 bg_free_inodes_count_lo=0
bg_used_dirs_count_lo=1314 bg_flags=4
Group Descriptor Nr=27 bg_block_bitmap_lo=1572870
bg_inode_bitmap_lo=1572886 bg_inode_table_lo=1575944
bg_free_blocks_count_lo=30412 bg_free_inodes_count_lo=8128
bg_used_dirs_count_lo=0 bg_flags=5
Group Descriptor Nr=28 bg_block_bitmap_lo=1572872
bg_inode_bitmap_lo=1572888 bg_inode_table_lo=1576960
bg_free_blocks_count_lo=32768 bg_free_inodes_count_lo=8128
bg_used_dirs_count_lo=0 bg_flags=7
Group Descriptor Nr=29 bg_block_bitmap_lo=1572874
bg_inode_bitmap_lo=1572890 bg_inode_table_lo=1577976
bg_free_blocks_count_lo=32768 bg_free_inodes_count_lo=8128
bg_used_dirs_count_lo=0 bg_flags=7
Group Descriptor Nr=30 bg_block_bitmap_lo=1572876
bg_inode_bitmap_lo=1572892 bg_inode_table_lo=1578992
bg_free_blocks_count_lo=32768 bg_free_inodes_count_lo=8128
bg_used_dirs_count_lo=0 bg_flags=7
Group Descriptor Nr=31 bg_block_bitmap_lo=1572878
bg_inode_bitmap_lo=1572894 bg_inode_table_lo=1580008
bg_free_blocks_count_lo=14655 bg_free_inodes_count_lo=8128
bg_used_dirs_count_lo=0 bg_flags=5
Group Descriptor Nr=32 bg_block_bitmap_lo=0 bg_inode_bitmap_lo=0
bg_inode_table_lo=0 bg_free_blocks_count_lo=0
bg_free_inodes_count_lo=0 bg_used_dirs_count_lo=0 bg_flags=0
Group Descriptor Nr=33 bg_block_bitmap_lo=0 bg_inode_bitmap_lo=0
bg_inode_table_lo=0 bg_free_blocks_count_lo=0
bg_free_inodes_count_lo=0 bg_used_dirs_count_lo=0 bg_flags=0
Group Descriptor Nr=34 bg_block_bitmap_lo=0 bg_inode_bitmap_lo=0
bg_inode_table_lo=0 bg_free_blocks_count_lo=0
bg_free_inodes_count_lo=0 bg_used_dirs_count_lo=0 bg_flags=0
Group Descriptor Nr=35 bg_block_bitmap_lo=0 bg_inode_bitmap_lo=0
bg_inode_table_lo=0 bg_free_blocks_count_lo=0
bg_free_inodes_count_lo=0 bg_used_dirs_count_lo=0 bg_flags=0
Group Descriptor Nr=36 bg_block_bitmap_lo=0 bg_inode_bitmap_lo=0
bg_inode_table_lo=0 bg_free_blocks_count_lo=0
bg_free_inodes_count_lo=0 bg_used_dirs_count_lo=0 bg_flags=0
Group Descriptor Nr=37 bg_block_bitmap_lo=0 bg_inode_bitmap_lo=0
bg_inode_table_lo=0 bg_free_blocks_count_lo=0
bg_free_inodes_count_lo=0 bg_used_dirs_count_lo=0 bg_flags=0
Group Descriptor Nr=38 bg_block_bitmap_lo=0 bg_inode_bitmap_lo=0
bg_inode_table_lo=0 bg_free_blocks_count_lo=0
bg_free_inodes_count_lo=0 bg_used_dirs_count_lo=0 bg_flags=0
Group Descriptor Nr=39 bg_block_bitmap_lo=0 bg_inode_bitmap_lo=0
bg_inode_table_lo=0 bg_free_blocks_count_lo=0
bg_free_inodes_count_lo=0 bg_used_dirs_count_lo=0 bg_flags=0
Group Descriptor Nr=40 bg_block_bitmap_lo=0 bg_inode_bitmap_lo=0
bg_inode_table_lo=0 bg_free_blocks_count_lo=0
bg_free_inodes_count_lo=0 bg_used_dirs_count_lo=0 bg_flags=0
Group Descriptor Nr=41 bg_block_bitmap_lo=0 bg_inode_bitmap_lo=0
bg_inode_table_lo=0 bg_free_blocks_count_lo=0
bg_free_inodes_count_lo=0 bg_used_dirs_count_lo=0 bg_flags=0
Group Descriptor Nr=42 bg_block_bitmap_lo=0 bg_inode_bitmap_lo=0
bg_inode_table_lo=0 bg_free_blocks_count_lo=0
bg_free_inodes_count_lo=0 bg_used_dirs_count_lo=0 bg_flags=0
Group Descriptor Nr=43 bg_block_bitmap_lo=0 bg_inode_bitmap_lo=0
bg_inode_table_lo=0 bg_free_blocks_count_lo=0
bg_free_inodes_count_lo=0 bg_used_dirs_count_lo=0 bg_flags=0
Group Descriptor Nr=44 bg_block_bitmap_lo=0 bg_inode_bitmap_lo=0
bg_inode_table_lo=0 bg_free_blocks_count_lo=0
bg_free_inodes_count_lo=0 bg_used_dirs_count_lo=0 bg_flags=0
Group Descriptor Nr=45 bg_block_bitmap_lo=0 bg_inode_bitmap_lo=0
bg_inode_table_lo=0 bg_free_blocks_count_lo=0
bg_free_inodes_count_lo=0 bg_used_dirs_count_lo=0 bg_flags=0
Group Descriptor Nr=46 bg_block_bitmap_lo=0 bg_inode_bitmap_lo=0
bg_inode_table_lo=0 bg_free_blocks_count_lo=0
bg_free_inodes_count_lo=0 bg_used_dirs_count_lo=0 bg_flags=0
Group Descriptor Nr=47 bg_block_bitmap_lo=0 bg_inode_bitmap_lo=0
bg_inode_table_lo=0 bg_free_blocks_count_lo=0
bg_free_inodes_count_lo=0 bg_used_dirs_count_lo=0 bg_flags=0
Group Descriptor Nr=48 bg_block_bitmap_lo=0 bg_inode_bitmap_lo=0
bg_inode_table_lo=0 bg_free_blocks_count_lo=0
bg_free_inodes_count_lo=0 bg_used_dirs_count_lo=0 bg_flags=0
Group Descriptor Nr=49 bg_block_bitmap_lo=0 bg_inode_bitmap_lo=0
bg_inode_table_lo=0 bg_free_blocks_count_lo=0
bg_free_inodes_count_lo=0 bg_used_dirs_count_lo=0 bg_flags=0
Group Descriptor Nr=50 bg_block_bitmap_lo=0 bg_inode_bitmap_lo=0
bg_inode_table_lo=0 bg_free_blocks_count_lo=0
bg_free_inodes_count_lo=0 bg_used_dirs_count_lo=0 bg_flags=0
Group Descriptor Nr=51 bg_block_bitmap_lo=0 bg_inode_bitmap_lo=0
bg_inode_table_lo=0 bg_free_blocks_count_lo=0
bg_free_inodes_count_lo=0 bg_used_dirs_count_lo=0 bg_flags=0
Group Descriptor Nr=52 bg_block_bitmap_lo=0 bg_inode_bitmap_lo=0
bg_inode_table_lo=0 bg_free_blocks_count_lo=0
bg_free_inodes_count_lo=0 bg_used_dirs_count_lo=0 bg_flags=0
Group Descriptor Nr=53 bg_block_bitmap_lo=0 bg_inode_bitmap_lo=0
bg_inode_table_lo=0 bg_free_blocks_count_lo=0
bg_free_inodes_count_lo=0 bg_used_dirs_count_lo=0 bg_flags=0
Group Descriptor Nr=54 bg_block_bitmap_lo=0 bg_inode_bitmap_lo=0
bg_inode_table_lo=0 bg_free_blocks_count_lo=0
bg_free_inodes_count_lo=0 bg_used_dirs_count_lo=0 bg_flags=0
Group Descriptor Nr=55 bg_block_bitmap_lo=0 bg_inode_bitmap_lo=0
bg_inode_table_lo=0 bg_free_blocks_count_lo=0
bg_free_inodes_count_lo=0 bg_used_dirs_count_lo=0 bg_flags=0
Group Descriptor Nr=56 bg_block_bitmap_lo=0 bg_inode_bitmap_lo=0
bg_inode_table_lo=0 bg_free_blocks_count_lo=0
bg_free_inodes_count_lo=0 bg_used_dirs_count_lo=0 bg_flags=0
Group Descriptor Nr=57 bg_block_bitmap_lo=0 bg_inode_bitmap_lo=0
bg_inode_table_lo=0 bg_free_blocks_count_lo=0
bg_free_inodes_count_lo=0 bg_used_dirs_count_lo=0 bg_flags=0
Group Descriptor Nr=58 bg_block_bitmap_lo=0 bg_inode_bitmap_lo=0
bg_inode_table_lo=0 bg_free_blocks_count_lo=0
bg_free_inodes_count_lo=0 bg_used_dirs_count_lo=0 bg_flags=0
Group Descriptor Nr=59 bg_block_bitmap_lo=0 bg_inode_bitmap_lo=0
bg_inode_table_lo=0 bg_free_blocks_count_lo=0
bg_free_inodes_count_lo=0 bg_used_dirs_count_lo=0 bg_flags=0
Group Descriptor Nr=60 bg_block_bitmap_lo=0 bg_inode_bitmap_lo=0
bg_inode_table_lo=0 bg_free_blocks_count_lo=0
bg_free_inodes_count_lo=0 bg_used_dirs_count_lo=0 bg_flags=0
Group Descriptor Nr=61 bg_block_bitmap_lo=0 bg_inode_bitmap_lo=0
bg_inode_table_lo=0 bg_free_blocks_count_lo=0
bg_free_inodes_count_lo=0 bg_used_dirs_count_lo=0 bg_flags=0
Group Descriptor Nr=62 bg_block_bitmap_lo=0 bg_inode_bitmap_lo=0
bg_inode_table_lo=0 bg_free_blocks_count_lo=0
bg_free_inodes_count_lo=0 bg_used_dirs_count_lo=0 bg_flags=0


thank you very much,
-- 
Felipe Monteiro de Carvalho

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Beginner questions about ext4
  2013-07-15 17:55             ` Felipe Monteiro de Carvalho
@ 2013-07-15 18:10               ` Theodore Ts'o
  2013-07-15 18:18                 ` Felipe Monteiro de Carvalho
  0 siblings, 1 reply; 18+ messages in thread
From: Theodore Ts'o @ 2013-07-15 18:10 UTC (permalink / raw)
  To: Felipe Monteiro de Carvalho; +Cc: linux-ext4

Can you please run dumpe2fs on the file system in question?

That should answer your questions.  If not, then send me the output.
The output of dumpe2fs is also much easier for me to parse than your
ad-hoc data dumps....

					- Ted

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Beginner questions about ext4
  2013-07-15 18:10               ` Theodore Ts'o
@ 2013-07-15 18:18                 ` Felipe Monteiro de Carvalho
  2013-07-15 18:59                   ` Theodore Ts'o
  0 siblings, 1 reply; 18+ messages in thread
From: Felipe Monteiro de Carvalho @ 2013-07-15 18:18 UTC (permalink / raw)
  To: Theodore Ts'o; +Cc: linux-ext4

[-- Attachment #1: Type: text/plain, Size: 175 bytes --]

wow, that's a pretty amazing tool, didn't know about it.

Thought I still don't see an answer to this particular last question there.

thanks,
-- 
Felipe Monteiro de Carvalho

[-- Attachment #2: dumpe2fs_vm_sda1.txt --]
[-- Type: text/plain, Size: 28894 bytes --]

Filesystem volume name:   <none>
Last mounted on:          /
Filesystem UUID:          a274bdb1-9c84-46d2-b453-520a6e780f85
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery 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:              512064
Block count:              2046271
Reserved block count:     102313
Free blocks:              1015232
Free inodes:              364535
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      499
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8128
Inode blocks per group:   508
Flex block group size:    16
Filesystem created:       Tue Nov  1 11:15:50 2011
Last mount time:          Tue Aug 21 08:21:55 2012
Last write time:          Tue Nov  1 11:15:55 2011
Mount count:              11
Maximum mount count:      -1
Last checked:             Tue Nov  1 11:15:50 2011
Check interval:           0 (<none>)
Lifetime writes:          2404 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
First orphan inode:       20960
Default directory hash:   half_md4
Directory Hash Seed:      8fc0466b-291e-4171-b6de-0e1962877fa5
Journal backup:           inode blocks
Journal features:         journal_incompat_revoke
Journal size:             128M
Journal length:           32768
Journal sequence:         0x00002c6d
Journal start:            9


Group 0: (Blocks 0-32767) [ITABLE_ZEROED]
  Checksum 0xa146, unused inodes 0
  Primary superblock at 0, Group descriptors at 1-1
  Reserved GDT blocks at 2-500
  Block bitmap at 501 (+501), Inode bitmap at 517 (+517)
  Inode table at 533-1040 (+533)
  21463 free blocks, 0 free inodes, 1232 directories
  Free blocks: 10739, 10744-10763, 10792-10811, 10814-10847, 10854-11061, 11064-12543, 12546-12547, 13065-13066, 13072-32767
  Free inodes: 
Group 1: (Blocks 32768-65535) [ITABLE_ZEROED]
  Checksum 0x5587, unused inodes 0
  Backup superblock at 32768, Group descriptors at 32769-32769
  Reserved GDT blocks at 32770-33268
  Block bitmap at 502 (bg #0 + 502), Inode bitmap at 518 (bg #0 + 518)
  Inode table at 1041-1548 (bg #0 + 1041)
  1139 free blocks, 0 free inodes, 474 directories
  Free blocks: 41100-41103, 41151-41239, 41264-41267, 41524-41525, 41528-41534, 41536-41727, 41763-41772, 41774-41775, 41854-41855, 41864-41866, 41868-41869, 42307-42309, 43664-43678, 43788-43807, 44192-44199, 44206-44216, 44250-44251, 44696-44697, 44758-44776, 44784-44791, 44972-44978, 45018-45020, 50995-51467, 51472-51486, 51632-51647, 57839-57855, 57887-57891, 57893, 57896-57901, 57904-57949, 57951-57952, 57954, 57956-57994, 58000-58047, 58157-58175, 58204-58209, 58614-58615, 58708-58735
  Free inodes: 
Group 2: (Blocks 65536-98303) [ITABLE_ZEROED]
  Checksum 0x2af9, unused inodes 0
  Block bitmap at 503 (bg #0 + 503), Inode bitmap at 519 (bg #0 + 519)
  Inode table at 1549-2056 (bg #0 + 1549)
  47 free blocks, 23 free inodes, 633 directories
  Free blocks: 93865-93894, 94160-94176
  Free inodes: 20901, 20906, 20911, 20918, 20949, 20961, 20986-20987, 20989, 20994, 20996, 21064-21069, 21074, 21076, 21090-21091, 21095, 21141
Group 3: (Blocks 98304-131071) [ITABLE_ZEROED]
  Checksum 0xdb53, unused inodes 2267
  Backup superblock at 98304, Group descriptors at 98305-98305
  Reserved GDT blocks at 98306-98804
  Block bitmap at 504 (bg #0 + 504), Inode bitmap at 520 (bg #0 + 520)
  Inode table at 2057-2564 (bg #0 + 2057)
  237 free blocks, 2325 free inodes, 223 directories, 2267 unused inodes
  Free blocks: 114512-114546, 114888-114905, 115683-115691, 116029-116045, 116832-116865, 117120-117135, 117948-117964, 118594-118614, 118790-118792, 118826-118842, 119425-119457, 119627-119643
  Free inodes: 25743, 25780-25782, 26955, 30057-30060, 30161-30167, 30169-30173, 30182, 30200-30227, 30233, 30239-32512
Group 4: (Blocks 131072-163839) [INODE_UNINIT, ITABLE_ZEROED]
  Checksum 0xc221, unused inodes 8128
  Block bitmap at 505 (bg #0 + 505), Inode bitmap at 521 (bg #0 + 521)
  Inode table at 2565-3072 (bg #0 + 2565)
  2 free blocks, 8128 free inodes, 0 directories, 8128 unused inodes
  Free blocks: 133633-133634
  Free inodes: 32513-40640
Group 5: (Blocks 163840-196607) [INODE_UNINIT, ITABLE_ZEROED]
  Checksum 0xa068, unused inodes 8128
  Backup superblock at 163840, Group descriptors at 163841-163841
  Reserved GDT blocks at 163842-164340
  Block bitmap at 506 (bg #0 + 506), Inode bitmap at 522 (bg #0 + 522)
  Inode table at 3073-3580 (bg #0 + 3073)
  2283 free blocks, 8128 free inodes, 0 directories, 8128 unused inodes
  Free blocks: 173442-173457, 173464-173468, 173533, 173740-173745, 173758-173759, 173762-173763, 173768-173769, 173782-173783, 173966-173967, 173982-173983, 179983-180095, 180143-180159, 180175-180191, 180197-180199, 180206, 180208-180219, 189816-189818, 189915, 189934, 189944-189950, 189984-189985, 189987, 189992-189995, 190024, 190026, 190028, 190031, 190038-190039, 190412, 190414, 190464-190820, 190892-190895, 190976, 190979, 190983-190984, 190986-190989, 190991, 190999-191003, 191032-191033, 191042, 191049, 191051-191052, 191055-191056, 191058-191059, 191061-191063, 191083, 192567, 194560-194579, 194581-194789, 194791-194859, 194867-194875, 194880-194881, 194883-194885, 194890, 194894-194895, 194898-194910, 194913, 194915-195071, 195073-195074, 195079-195080, 195082-195092, 195095-195097, 195099-195103, 195128, 195130, 195138, 195157-195202, 195205-195228, 195230-195232, 195237-195240, 195243-195252, 195259, 195276-195281, 195284-195289, 195292-195300, 195305, 195308, 195333-195334, 195337-195343, 195347-195356, 195358-195360, 195370-195381, 195385-195388, 195390, 195393-195715, 195728-195759, 195840-196096, 196099-196102, 196104-196109, 196116-196118, 196120, 196125-196148, 196150, 196152-196153, 196184-196207, 196210-196219, 196231-196236, 196271, 196278-196303, 196308-196309, 196320-196339, 196341-196342, 196344-196359, 196361, 196364-196407, 196410-196545, 196548-196607
  Free inodes: 40641-48768
Group 6: (Blocks 196608-229375) [INODE_UNINIT, ITABLE_ZEROED]
  Checksum 0x9f54, unused inodes 8128
  Block bitmap at 507 (bg #0 + 507), Inode bitmap at 523 (bg #0 + 523)
  Inode table at 3581-4088 (bg #0 + 3581)
  3410 free blocks, 8128 free inodes, 0 directories, 8128 unused inodes
  Free blocks: 197295-197430, 198188-198198, 198234-198243, 198272-198282, 198312-198326, 206848-208895, 208979-209919, 210219-210412, 210447-210460, 215223, 215584, 221184-221211
  Free inodes: 48769-56896
Group 7: (Blocks 229376-262143) [INODE_UNINIT, ITABLE_ZEROED]
  Checksum 0x5a74, unused inodes 8128
  Backup superblock at 229376, Group descriptors at 229377-229377
  Reserved GDT blocks at 229378-229876
  Block bitmap at 508 (bg #0 + 508), Inode bitmap at 524 (bg #0 + 524)
  Inode table at 4089-4596 (bg #0 + 4089)
  215 free blocks, 8128 free inodes, 0 directories, 8128 unused inodes
  Free blocks: 231136-231167, 231234-231235, 231763-231767, 231776-231814, 231925-231926, 259896-260030
  Free inodes: 56897-65024
Group 8: (Blocks 262144-294911) [INODE_UNINIT, ITABLE_ZEROED]
  Checksum 0x7836, unused inodes 8128
  Block bitmap at 509 (bg #0 + 509), Inode bitmap at 525 (bg #0 + 525)
  Inode table at 4597-5104 (bg #0 + 4597)
  0 free blocks, 8128 free inodes, 0 directories, 8128 unused inodes
  Free blocks: 
  Free inodes: 65025-73152
Group 9: (Blocks 294912-327679) [INODE_UNINIT, ITABLE_ZEROED]
  Checksum 0x41e8, unused inodes 8128
  Backup superblock at 294912, Group descriptors at 294913-294913
  Reserved GDT blocks at 294914-295412
  Block bitmap at 510 (bg #0 + 510), Inode bitmap at 526 (bg #0 + 526)
  Inode table at 5105-5612 (bg #0 + 5105)
  7 free blocks, 8128 free inodes, 0 directories, 8128 unused inodes
  Free blocks: 325092-325098
  Free inodes: 73153-81280
Group 10: (Blocks 327680-360447) [INODE_UNINIT, ITABLE_ZEROED]
  Checksum 0x171f, unused inodes 8128
  Block bitmap at 511 (bg #0 + 511), Inode bitmap at 527 (bg #0 + 527)
  Inode table at 5613-6120 (bg #0 + 5613)
  16 free blocks, 8128 free inodes, 0 directories, 8128 unused inodes
  Free blocks: 328678, 329252, 329298-329311
  Free inodes: 81281-89408
Group 11: (Blocks 360448-393215) [INODE_UNINIT, ITABLE_ZEROED]
  Checksum 0x2978, unused inodes 8128
  Block bitmap at 512 (bg #0 + 512), Inode bitmap at 528 (bg #0 + 528)
  Inode table at 6121-6628 (bg #0 + 6121)
  2455 free blocks, 8128 free inodes, 0 directories, 8128 unused inodes
  Free blocks: 363520-363621, 363650-363651, 363904-363953, 376622-376641, 385024-385110, 385113-385165, 385167-385616, 385619-385624, 385627, 385629-385673, 385675-385749, 385751-385780, 385782-385816, 385818-385887, 385889-385903, 385905-385934, 385936-385991, 385993-386017, 386019-386062, 386064-386580, 386582-386960, 386962-387324
  Free inodes: 89409-97536
Group 12: (Blocks 393216-425983) [INODE_UNINIT, ITABLE_ZEROED]
  Checksum 0x8b90, unused inodes 8128
  Block bitmap at 513 (bg #0 + 513), Inode bitmap at 529 (bg #0 + 529)
  Inode table at 6629-7136 (bg #0 + 6629)
  26803 free blocks, 8128 free inodes, 0 directories, 8128 unused inodes
  Free blocks: 394728-395109, 395250-395263, 398542-398796, 399420-399866, 400274-400948, 400951-400978, 400981-401146, 401148-425983
  Free inodes: 97537-105664
Group 13: (Blocks 425984-458751) [INODE_UNINIT, ITABLE_ZEROED]
  Checksum 0xa3ac, unused inodes 8128
  Block bitmap at 514 (bg #0 + 514), Inode bitmap at 530 (bg #0 + 530)
  Inode table at 7137-7644 (bg #0 + 7137)
  28640 free blocks, 8128 free inodes, 0 directories, 8128 unused inodes
  Free blocks: 425984-428383, 428416-454655
  Free inodes: 105665-113792
Group 14: (Blocks 458752-491519) [INODE_UNINIT, ITABLE_ZEROED]
  Checksum 0xcc74, unused inodes 8128
  Block bitmap at 515 (bg #0 + 515), Inode bitmap at 531 (bg #0 + 531)
  Inode table at 7645-8152 (bg #0 + 7645)
  27542 free blocks, 8128 free inodes, 0 directories, 8128 unused inodes
  Free blocks: 459968-459989, 460010-460031, 460087-460095, 460144-463231, 463312-463320, 463341-463355, 463358-463362, 463376-466943, 467437-468991, 469960-473087, 475399-491519
  Free inodes: 113793-121920
Group 15: (Blocks 491520-524287) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0x18f3, unused inodes 8128
  Block bitmap at 516 (bg #0 + 516), Inode bitmap at 532 (bg #0 + 532)
  Inode table at 8153-8660 (bg #0 + 8153)
  32768 free blocks, 8128 free inodes, 0 directories, 8128 unused inodes
  Free blocks: 491520-524287
  Free inodes: 121921-130048
Group 16: (Blocks 524288-557055) [ITABLE_ZEROED]
  Checksum 0xaf90, unused inodes 0
  Block bitmap at 524288 (+0), Inode bitmap at 524304 (+16)
  Inode table at 524320-524827 (+32)
  20867 free blocks, 0 free inodes, 573 directories
  Free blocks: 533250-533252, 533256-533257, 536194-557055
  Free inodes: 
Group 17: (Blocks 557056-589823) [ITABLE_ZEROED]
  Checksum 0x1777, unused inodes 0
  Block bitmap at 524289 (bg #16 + 1), Inode bitmap at 524305 (bg #16 + 17)
  Inode table at 524828-525335 (bg #16 + 540)
  0 free blocks, 0 free inodes, 586 directories
  Free blocks: 
  Free inodes: 139252
Group 18: (Blocks 589824-622591) [ITABLE_ZEROED]
  Checksum 0x6fe4, unused inodes 0
  Block bitmap at 524290 (bg #16 + 2), Inode bitmap at 524306 (bg #16 + 18)
  Inode table at 525336-525843 (bg #16 + 1048)
  171 free blocks, 0 free inodes, 423 directories
  Free blocks: 608560-608563, 608566-608567, 608720-608723, 608766-608767, 608776-608779, 608784-608787, 608792-608795, 608800-608803, 608812-608819, 608831, 608848-608895, 608923-608967, 608969-608972, 608975, 608980-608988, 608990-609023
  Free inodes: 
Group 19: (Blocks 622592-655359) [ITABLE_ZEROED]
  Checksum 0x6599, unused inodes 0
  Block bitmap at 524291 (bg #16 + 3), Inode bitmap at 524307 (bg #16 + 19)
  Inode table at 525844-526351 (bg #16 + 1556)
  0 free blocks, 0 free inodes, 412 directories
  Free blocks: 
  Free inodes: 
Group 20: (Blocks 655360-688127) [ITABLE_ZEROED]
  Checksum 0x7892, unused inodes 474
  Block bitmap at 524292 (bg #16 + 4), Inode bitmap at 524308 (bg #16 + 20)
  Inode table at 526352-526859 (bg #16 + 2064)
  0 free blocks, 499 free inodes, 1666 directories, 474 unused inodes
  Free blocks: 
  Free inodes: 169962, 170049-170050, 170054-170057, 170061, 170144, 170172, 170189, 170199, 170202-170206, 170208-170688
Group 21: (Blocks 688128-720895) [INODE_UNINIT, ITABLE_ZEROED]
  Checksum 0x31b8, unused inodes 8128
  Block bitmap at 524293 (bg #16 + 5), Inode bitmap at 524309 (bg #16 + 21)
  Inode table at 526860-527367 (bg #16 + 2572)
  806 free blocks, 8128 free inodes, 0 directories, 8128 unused inodes
  Free blocks: 707696-707699, 707702-707711, 710572-710575, 710578-710586, 710588-710591, 710593, 710600, 711835, 711891-711894, 711896-712191, 712227-712242, 712244-712252, 712254-712452, 712455-712471, 712473-712703
  Free inodes: 170689-178816
Group 22: (Blocks 720896-753663) [INODE_UNINIT, ITABLE_ZEROED]
  Checksum 0xeffa, unused inodes 8128
  Block bitmap at 524294 (bg #16 + 6), Inode bitmap at 524310 (bg #16 + 22)
  Inode table at 527368-527875 (bg #16 + 3080)
  32243 free blocks, 8128 free inodes, 0 directories, 8128 unused inodes
  Free blocks: 721420-722460, 722462-753663
  Free inodes: 178817-186944
Group 23: (Blocks 753664-786431) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0x0a07, unused inodes 8128
  Block bitmap at 524295 (bg #16 + 7), Inode bitmap at 524311 (bg #16 + 23)
  Inode table at 527876-528383 (bg #16 + 3588)
  32768 free blocks, 8128 free inodes, 0 directories, 8128 unused inodes
  Free blocks: 753664-786431
  Free inodes: 186945-195072
Group 24: (Blocks 786432-819199) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0x5d92, unused inodes 8128
  Block bitmap at 524296 (bg #16 + 8), Inode bitmap at 524312 (bg #16 + 24)
  Inode table at 528384-528891 (bg #16 + 4096)
  32768 free blocks, 8128 free inodes, 0 directories, 8128 unused inodes
  Free blocks: 786432-819199
  Free inodes: 195073-203200
Group 25: (Blocks 819200-851967) [INODE_UNINIT, ITABLE_ZEROED]
  Checksum 0x61e2, unused inodes 8128
  Backup superblock at 819200, Group descriptors at 819201-819201
  Reserved GDT blocks at 819202-819700
  Block bitmap at 524297 (bg #16 + 9), Inode bitmap at 524313 (bg #16 + 25)
  Inode table at 528892-529399 (bg #16 + 4604)
  32267 free blocks, 8128 free inodes, 0 directories, 8128 unused inodes
  Free blocks: 819701-851967
  Free inodes: 203201-211328
Group 26: (Blocks 851968-884735) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0x0627, unused inodes 8128
  Block bitmap at 524298 (bg #16 + 10), Inode bitmap at 524314 (bg #16 + 26)
  Inode table at 529400-529907 (bg #16 + 5112)
  32768 free blocks, 8128 free inodes, 0 directories, 8128 unused inodes
  Free blocks: 851968-884735
  Free inodes: 211329-219456
Group 27: (Blocks 884736-917503) [INODE_UNINIT, ITABLE_ZEROED]
  Checksum 0xc6de, unused inodes 8128
  Backup superblock at 884736, Group descriptors at 884737-884737
  Reserved GDT blocks at 884738-885236
  Block bitmap at 524299 (bg #16 + 11), Inode bitmap at 524315 (bg #16 + 27)
  Inode table at 529908-530415 (bg #16 + 5620)
  32267 free blocks, 8128 free inodes, 0 directories, 8128 unused inodes
  Free blocks: 885237-917503
  Free inodes: 219457-227584
Group 28: (Blocks 917504-950271) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0xeaf8, unused inodes 8128
  Block bitmap at 524300 (bg #16 + 12), Inode bitmap at 524316 (bg #16 + 28)
  Inode table at 530416-530923 (bg #16 + 6128)
  32768 free blocks, 8128 free inodes, 0 directories, 8128 unused inodes
  Free blocks: 917504-950271
  Free inodes: 227585-235712
Group 29: (Blocks 950272-983039) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0xde32, unused inodes 8128
  Block bitmap at 524301 (bg #16 + 13), Inode bitmap at 524317 (bg #16 + 29)
  Inode table at 530924-531431 (bg #16 + 6636)
  32768 free blocks, 8128 free inodes, 0 directories, 8128 unused inodes
  Free blocks: 950272-983039
  Free inodes: 235713-243840
Group 30: (Blocks 983040-1015807) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0x085c, unused inodes 8128
  Block bitmap at 524302 (bg #16 + 14), Inode bitmap at 524318 (bg #16 + 30)
  Inode table at 531432-531939 (bg #16 + 7144)
  32768 free blocks, 8128 free inodes, 0 directories, 8128 unused inodes
  Free blocks: 983040-1015807
  Free inodes: 243841-251968
Group 31: (Blocks 1015808-1048575) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0x790e, unused inodes 8128
  Block bitmap at 524303 (bg #16 + 15), Inode bitmap at 524319 (bg #16 + 31)
  Inode table at 531940-532447 (bg #16 + 7652)
  32768 free blocks, 8128 free inodes, 0 directories, 8128 unused inodes
  Free blocks: 1015808-1048575
  Free inodes: 251969-260096
Group 32: (Blocks 1048576-1081343) [ITABLE_ZEROED]
  Checksum 0xc735, unused inodes 0
  Block bitmap at 1048576 (+0), Inode bitmap at 1048592 (+16)
  Inode table at 1048608-1049115 (+32)
  20418 free blocks, 0 free inodes, 654 directories
  Free blocks: 1060542-1060543, 1060928-1081343
  Free inodes: 
Group 33: (Blocks 1081344-1114111) [ITABLE_ZEROED]
  Checksum 0x1837, unused inodes 0
  Block bitmap at 1048577 (bg #32 + 1), Inode bitmap at 1048593 (bg #32 + 17)
  Inode table at 1049116-1049623 (bg #32 + 540)
  16 free blocks, 2 free inodes, 692 directories
  Free blocks: 1086210-1086223, 1086225-1086226
  Free inodes: 271697, 271699
Group 34: (Blocks 1114112-1146879) [ITABLE_ZEROED]
  Checksum 0x1327, unused inodes 0
  Block bitmap at 1048578 (bg #32 + 2), Inode bitmap at 1048594 (bg #32 + 18)
  Inode table at 1049624-1050131 (bg #32 + 1048)
  12 free blocks, 0 free inodes, 2256 directories
  Free blocks: 1120152, 1122190-1122191, 1130908-1130910, 1130951-1130956
  Free inodes: 
Group 35: (Blocks 1146880-1179647) [ITABLE_ZEROED]
  Checksum 0x460d, unused inodes 1787
  Block bitmap at 1048579 (bg #32 + 3), Inode bitmap at 1048595 (bg #32 + 19)
  Inode table at 1050132-1050639 (bg #32 + 1556)
  0 free blocks, 3562 free inodes, 498 directories, 1787 unused inodes
  Free blocks: 
  Free inodes: 285359, 285366-285367, 285448, 285463-287228, 289433-289436, 289449, 290822-292608
Group 36: (Blocks 1179648-1212415) [INODE_UNINIT, ITABLE_ZEROED]
  Checksum 0xef9f, unused inodes 8128
  Block bitmap at 1048580 (bg #32 + 4), Inode bitmap at 1048596 (bg #32 + 20)
  Inode table at 1050640-1051147 (bg #32 + 2064)
  0 free blocks, 8128 free inodes, 0 directories, 8128 unused inodes
  Free blocks: 
  Free inodes: 292609-300736
Group 37: (Blocks 1212416-1245183) [INODE_UNINIT, ITABLE_ZEROED]
  Checksum 0x9acc, unused inodes 8128
  Block bitmap at 1048581 (bg #32 + 5), Inode bitmap at 1048597 (bg #32 + 21)
  Inode table at 1051148-1051655 (bg #32 + 2572)
  786 free blocks, 8128 free inodes, 0 directories, 8128 unused inodes
  Free blocks: 1217504-1218047, 1218087-1218303, 1218388-1218389, 1218422-1218423, 1218448-1218458, 1218484-1218490, 1218700-1218702
  Free inodes: 300737-308864
Group 38: (Blocks 1245184-1277951) [INODE_UNINIT, ITABLE_ZEROED]
  Checksum 0x45b2, unused inodes 8128
  Block bitmap at 1048582 (bg #32 + 6), Inode bitmap at 1048598 (bg #32 + 22)
  Inode table at 1051656-1052163 (bg #32 + 3080)
  0 free blocks, 8128 free inodes, 0 directories, 8128 unused inodes
  Free blocks: 
  Free inodes: 308865-316992
Group 39: (Blocks 1277952-1310719) [INODE_UNINIT, ITABLE_ZEROED]
  Checksum 0x71f1, unused inodes 8128
  Block bitmap at 1048583 (bg #32 + 7), Inode bitmap at 1048599 (bg #32 + 23)
  Inode table at 1052164-1052671 (bg #32 + 3588)
  187 free blocks, 8128 free inodes, 0 directories, 8128 unused inodes
  Free blocks: 1291260-1291265, 1291273, 1291295-1291375, 1305641-1305643, 1305656, 1307838, 1308000-1308001, 1308323-1308324, 1309171, 1309350, 1309525-1309526, 1309532, 1309572, 1309756, 1309758-1309759, 1309817-1309819, 1310150-1310227
  Free inodes: 316993-325120
Group 40: (Blocks 1310720-1343487) [INODE_UNINIT, ITABLE_ZEROED]
  Checksum 0x4df9, unused inodes 8128
  Block bitmap at 1048584 (bg #32 + 8), Inode bitmap at 1048600 (bg #32 + 24)
  Inode table at 1052672-1053179 (bg #32 + 4096)
  17447 free blocks, 8128 free inodes, 0 directories, 8128 unused inodes
  Free blocks: 1318211-1318219, 1318232, 1318237, 1318912-1327103, 1331923, 1331940-1331959, 1332281, 1332591, 1332707, 1333966-1333967, 1334006-1334007, 1334272-1343487
  Free inodes: 325121-333248
Group 41: (Blocks 1343488-1376255) [INODE_UNINIT, ITABLE_ZEROED]
  Checksum 0x8b07, unused inodes 8128
  Block bitmap at 1048585 (bg #32 + 9), Inode bitmap at 1048601 (bg #32 + 25)
  Inode table at 1053180-1053687 (bg #32 + 4604)
  14299 free blocks, 8128 free inodes, 0 directories, 8128 unused inodes
  Free blocks: 1343488-1351679, 1359872-1365763, 1365768-1365784, 1375766, 1376028-1376224
  Free inodes: 333249-341376
Group 42: (Blocks 1376256-1409023) [INODE_UNINIT, ITABLE_ZEROED]
  Checksum 0x48f3, unused inodes 8128
  Block bitmap at 1048586 (bg #32 + 10), Inode bitmap at 1048602 (bg #32 + 26)
  Inode table at 1053688-1054195 (bg #32 + 5112)
  7625 free blocks, 8128 free inodes, 0 directories, 8128 unused inodes
  Free blocks: 1378532-1378551, 1396575, 1396598-1396735, 1401558-1409023
  Free inodes: 341377-349504
Group 43: (Blocks 1409024-1441791) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0xe24f, unused inodes 8128
  Block bitmap at 1048587 (bg #32 + 11), Inode bitmap at 1048603 (bg #32 + 27)
  Inode table at 1054196-1054703 (bg #32 + 5620)
  32768 free blocks, 8128 free inodes, 0 directories, 8128 unused inodes
  Free blocks: 1409024-1441791
  Free inodes: 349505-357632
Group 44: (Blocks 1441792-1474559) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0x7fc2, unused inodes 8128
  Block bitmap at 1048588 (bg #32 + 12), Inode bitmap at 1048604 (bg #32 + 28)
  Inode table at 1054704-1055211 (bg #32 + 6128)
  32768 free blocks, 8128 free inodes, 0 directories, 8128 unused inodes
  Free blocks: 1441792-1474559
  Free inodes: 357633-365760
Group 45: (Blocks 1474560-1507327) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0x4b08, unused inodes 8128
  Block bitmap at 1048589 (bg #32 + 13), Inode bitmap at 1048605 (bg #32 + 29)
  Inode table at 1055212-1055719 (bg #32 + 6636)
  32768 free blocks, 8128 free inodes, 0 directories, 8128 unused inodes
  Free blocks: 1474560-1507327
  Free inodes: 365761-373888
Group 46: (Blocks 1507328-1540095) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0x9d66, unused inodes 8128
  Block bitmap at 1048590 (bg #32 + 14), Inode bitmap at 1048606 (bg #32 + 30)
  Inode table at 1055720-1056227 (bg #32 + 7144)
  32768 free blocks, 8128 free inodes, 0 directories, 8128 unused inodes
  Free blocks: 1507328-1540095
  Free inodes: 373889-382016
Group 47: (Blocks 1540096-1572863) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0xec34, unused inodes 8128
  Block bitmap at 1048591 (bg #32 + 15), Inode bitmap at 1048607 (bg #32 + 31)
  Inode table at 1056228-1056735 (bg #32 + 7652)
  32768 free blocks, 8128 free inodes, 0 directories, 8128 unused inodes
  Free blocks: 1540096-1572863
  Free inodes: 382017-390144
Group 48: (Blocks 1572864-1605631) [ITABLE_ZEROED]
  Checksum 0x6e01, unused inodes 0
  Block bitmap at 1572864 (+0), Inode bitmap at 1572880 (+16)
  Inode table at 1572896-1573403 (+32)
  20845 free blocks, 1 free inodes, 790 directories
  Free blocks: 1584787-1605631
  Free inodes: 391824
Group 49: (Blocks 1605632-1638399) [ITABLE_ZEROED]
  Checksum 0x9f5c, unused inodes 0
  Backup superblock at 1605632, Group descriptors at 1605633-1605633
  Reserved GDT blocks at 1605634-1606132
  Block bitmap at 1572865 (bg #48 + 1), Inode bitmap at 1572881 (bg #48 + 17)
  Inode table at 1573404-1573911 (bg #48 + 540)
  54 free blocks, 0 free inodes, 674 directories
  Free blocks: 1612280-1612331, 1627152-1627153
  Free inodes: 
Group 50: (Blocks 1638400-1671167) [ITABLE_ZEROED]
  Checksum 0x1781, unused inodes 0
  Block bitmap at 1572866 (bg #48 + 2), Inode bitmap at 1572882 (bg #48 + 18)
  Inode table at 1573912-1574419 (bg #48 + 1048)
  0 free blocks, 0 free inodes, 188 directories
  Free blocks: 
  Free inodes: 
Group 51: (Blocks 1671168-1703935) [ITABLE_ZEROED]
  Checksum 0xcada, unused inodes 0
  Block bitmap at 1572867 (bg #48 + 3), Inode bitmap at 1572883 (bg #48 + 19)
  Inode table at 1574420-1574927 (bg #48 + 1556)
  8 free blocks, 0 free inodes, 628 directories
  Free blocks: 1673266-1673271, 1674456, 1674572
  Free inodes: 
Group 52: (Blocks 1703936-1736703) [ITABLE_ZEROED]
  Checksum 0xbabe, unused inodes 0
  Block bitmap at 1572868 (bg #48 + 4), Inode bitmap at 1572884 (bg #48 + 20)
  Inode table at 1574928-1575435 (bg #48 + 2064)
  118 free blocks, 0 free inodes, 1314 directories
  Free blocks: 1720714-1720831
  Free inodes: 
Group 53: (Blocks 1736704-1769471) [ITABLE_ZEROED]
  Checksum 0xf5a7, unused inodes 440
  Block bitmap at 1572869 (bg #48 + 5), Inode bitmap at 1572885 (bg #48 + 21)
  Inode table at 1575436-1575943 (bg #48 + 2572)
  86 free blocks, 441 free inodes, 505 directories, 440 unused inodes
  Free blocks: 1745643-1745725, 1751620-1751622
  Free inodes: 437342, 438473-438912
Group 54: (Blocks 1769472-1802239) [INODE_UNINIT, ITABLE_ZEROED]
  Checksum 0x239d, unused inodes 8128
  Block bitmap at 1572870 (bg #48 + 6), Inode bitmap at 1572886 (bg #48 + 22)
  Inode table at 1575944-1576451 (bg #48 + 3080)
  30412 free blocks, 8128 free inodes, 0 directories, 8128 unused inodes
  Free blocks: 1771828-1802239
  Free inodes: 438913-447040
Group 55: (Blocks 1802240-1835007) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0xec2b, unused inodes 8128
  Block bitmap at 1572871 (bg #48 + 7), Inode bitmap at 1572887 (bg #48 + 23)
  Inode table at 1576452-1576959 (bg #48 + 3588)
  32768 free blocks, 8128 free inodes, 0 directories, 8128 unused inodes
  Free blocks: 1802240-1835007
  Free inodes: 447041-455168
Group 56: (Blocks 1835008-1867775) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0xbbbe, unused inodes 8128
  Block bitmap at 1572872 (bg #48 + 8), Inode bitmap at 1572888 (bg #48 + 24)
  Inode table at 1576960-1577467 (bg #48 + 4096)
  32768 free blocks, 8128 free inodes, 0 directories, 8128 unused inodes
  Free blocks: 1835008-1867775
  Free inodes: 455169-463296
Group 57: (Blocks 1867776-1900543) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0x3665, unused inodes 8128
  Block bitmap at 1572873 (bg #48 + 9), Inode bitmap at 1572889 (bg #48 + 25)
  Inode table at 1577468-1577975 (bg #48 + 4604)
  32768 free blocks, 8128 free inodes, 0 directories, 8128 unused inodes
  Free blocks: 1867776-1900543
  Free inodes: 463297-471424
Group 58: (Blocks 1900544-1933311) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0xe00b, unused inodes 8128
  Block bitmap at 1572874 (bg #48 + 10), Inode bitmap at 1572890 (bg #48 + 26)
  Inode table at 1577976-1578483 (bg #48 + 5112)
  32768 free blocks, 8128 free inodes, 0 directories, 8128 unused inodes
  Free blocks: 1900544-1933311
  Free inodes: 471425-479552
Group 59: (Blocks 1933312-1966079) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0x9159, unused inodes 8128
  Block bitmap at 1572875 (bg #48 + 11), Inode bitmap at 1572891 (bg #48 + 27)
  Inode table at 1578484-1578991 (bg #48 + 5620)
  32768 free blocks, 8128 free inodes, 0 directories, 8128 unused inodes
  Free blocks: 1933312-1966079
  Free inodes: 479553-487680
Group 60: (Blocks 1966080-1998847) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0x0cd4, unused inodes 8128
  Block bitmap at 1572876 (bg #48 + 12), Inode bitmap at 1572892 (bg #48 + 28)
  Inode table at 1578992-1579499 (bg #48 + 6128)
  32768 free blocks, 8128 free inodes, 0 directories, 8128 unused inodes
  Free blocks: 1966080-1998847
  Free inodes: 487681-495808
Group 61: (Blocks 1998848-2031615) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0x381e, unused inodes 8128
  Block bitmap at 1572877 (bg #48 + 13), Inode bitmap at 1572893 (bg #48 + 29)
  Inode table at 1579500-1580007 (bg #48 + 6636)
  32768 free blocks, 8128 free inodes, 0 directories, 8128 unused inodes
  Free blocks: 1998848-2031615
  Free inodes: 495809-503936
Group 62: (Blocks 2031616-2046270) [INODE_UNINIT, ITABLE_ZEROED]
  Checksum 0x8416, unused inodes 8128
  Block bitmap at 1572878 (bg #48 + 14), Inode bitmap at 1572894 (bg #48 + 30)
  Inode table at 1580008-1580515 (bg #48 + 7144)
  14655 free blocks, 8128 free inodes, 0 directories, 8128 unused inodes
  Free blocks: 2031616-2046270
  Free inodes: 503937-512064

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Beginner questions about ext4
  2013-07-15 18:18                 ` Felipe Monteiro de Carvalho
@ 2013-07-15 18:59                   ` Theodore Ts'o
  2013-07-16  6:14                     ` Felipe Monteiro de Carvalho
  0 siblings, 1 reply; 18+ messages in thread
From: Theodore Ts'o @ 2013-07-15 18:59 UTC (permalink / raw)
  To: Felipe Monteiro de Carvalho; +Cc: linux-ext4

On Mon, Jul 15, 2013 at 08:18:16PM +0200, Felipe Monteiro de Carvalho wrote:
> wow, that's a pretty amazing tool, didn't know about it.

Are you familiar with debugfs?  I'd also strongly suggest that you try
using that program to try to understand the file system layout.

>But my table of group descriptors read from group nr 0 is all correct
>between group nr 0 and 31, but group nr 32 to 63 are filled with
>zeroes.

> Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize

The file system does not have the 64-bit feature set.  Hence, the
layout of the block grup descriptor is struct ext2_group_desc, and not
struct ext4_group_desc.

I'm guessing that you were using the ext4_group_desc structure (which
is 64 bytes) instead of the ext2_group_desc structure (which is 32
bytes).

I would suggest that you match up the contents of your in-program data
structures, and compare it to the outputs of debugfs and dumpe2fs.

						- Ted

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Beginner questions about ext4
  2013-07-15 18:59                   ` Theodore Ts'o
@ 2013-07-16  6:14                     ` Felipe Monteiro de Carvalho
  0 siblings, 0 replies; 18+ messages in thread
From: Felipe Monteiro de Carvalho @ 2013-07-16  6:14 UTC (permalink / raw)
  To: Theodore Ts'o; +Cc: linux-ext4

wow, that was a genial catch, thank you very much =)

With this tip I managed to find what was wrong in the code and then
fixed some other stuff and now it seams that my ext4 reader is fully
working correctly =D

It did come to my mind the size of group descriptors many days ago,
but I had supposed that the _hi elements would be filled with zeroes,
not that they would be completely removed.

Also good to know about debugfs and dumpe2fs

thanks again for all the help and sorry for any disturbance, =)
-- 
Felipe Monteiro de Carvalho

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2013-07-16  6:14 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-06-12 12:20 Beginner questions about ext4 Felipe Monteiro de Carvalho
2013-06-23  6:29 ` Felipe Monteiro de Carvalho
2013-06-23 11:59   ` Theodore Ts'o
2013-07-01 15:23     ` Felipe Monteiro de Carvalho
2013-07-01 16:55       ` Theodore Ts'o
2013-07-10 16:13         ` Felipe Monteiro de Carvalho
2013-07-10 17:24           ` Theodore Ts'o
2013-07-11  7:37             ` Felipe Monteiro de Carvalho
2013-07-11 15:23               ` Theodore Ts'o
2013-07-15 10:20     ` Felipe Monteiro de Carvalho
2013-07-15 13:43       ` Theodore Ts'o
2013-07-15 16:09         ` Felipe Monteiro de Carvalho
2013-07-15 16:37           ` Theodore Ts'o
2013-07-15 17:55             ` Felipe Monteiro de Carvalho
2013-07-15 18:10               ` Theodore Ts'o
2013-07-15 18:18                 ` Felipe Monteiro de Carvalho
2013-07-15 18:59                   ` Theodore Ts'o
2013-07-16  6:14                     ` Felipe Monteiro de Carvalho

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.