Before you can read the parent note comfortably, you need to own every word and symbol it throws at you. This page builds each one from nothing, in the order they depend on each other.
The number written under a box is its block number — its address. When the parent says "physical block 5000", it means "the 5000th box in this row". That is all a raw disk is: no files, no folders, just numbered boxes.
Why the topic needs this: the whole "128 MiB per group, 80 groups on a 10 GiB disk" arithmetic is just unit conversion. Get the units wrong and every number is wrong.
The key counting fact (used everywhere in the parent): one block of B bytes holds
B×8 bits=8B bits.
So a bitmap that is exactly one block can describe exactly 8B blocks. Hold that number — it is where "blocks per group" comes from. But first: what is a group?
With "group" now meaning something concrete, the arithmetic in the next section — "which group is inode N in?" — is just asking which neighbourhood to walk to.
Read the map below top to bottom: an arrow "X → Y" means "you must understand X before Y makes sense." Start at the four roots with no incoming arrows (units, the block picture, floor/mod, and 1-based vs 0-based). Trace any path downward and you arrive at the same destination — the box labelled ext4 structure, which is the parent topic. The four boxes pointing straight into it are exactly the four questions the parent answers: how big is a group, which group is my inode in, where is the superblock, and how does an inode reach its data.
Test yourself — cover the right side and answer out loud.
What is a block, and what is B?
A fixed-size chunk of disk (one identical box); B is its size in bytes, commonly 4096.
What does N mean in "blocks 0…N−1"?
The total number of blocks on the disk; the last block's number is N−1 because counting starts at 0.
What is a block group?
An equal-sized neighbourhood of the disk bundling a block bitmap, inode bitmap, inode table, and data blocks — a self-contained mini-filesystem.
Why does ext4 use block groups?
To keep a file's bookkeeping near its data (less seek), bound bitmap size, and reduce fragmentation.
How many bits fit in one block of B bytes?
8B bits (8 bits per byte) — the reason a group holds 8B blocks.
What does bit i=1 mean in a block bitmap?
Block i in this group is used (0 = free).
What does ⌊x⌋ do and why use it here?
Rounds down to a whole number; turns a fractional group count into the whole group index.
What does amodm give, and what does it tell us?
The remainder of a÷m; the position within the group.
Why subtract 1 in ⌊(N−1)/I⌋?
Inodes are 1-based but table slots are 0-based; the −1 converts between them.
1MiB=? bytes.
10242=1,048,576 bytes.
What is 0xEF53 and where does it live?
The ext magic number (a fingerprint) stored in the superblock to confirm the filesystem type.
Where (byte offset) is the primary superblock, and why not offset 0?
Offset 1024; the first 1024 bytes are reserved for a boot sector.
What is an extent and why is it better than pointers?
One record mapping a contiguous run of logical blocks to physical blocks; far fewer records than one-pointer-per-block.
Where is a file's name stored — inode or directory?
The directory entry (name → inode number); never the inode.
Recall One-line summary
A disk is N numbered boxes; units measure them, ext4 chops them into block groups, a bitmap tracks which are free (8B per block), floor/mod with a −1 locate an inode's group, a hex magic number at offset 1024 identifies the filesystem, and extents map file blocks to physical boxes — that's the whole vocabulary of ext4.