16TiB ext4

Eric Sandeen sandeen at redhat.com
Mon Jan 5 20:41:43 UTC 2009


Curtis Doty wrote:
> 12:16pm Eric Sandeen said:
> 
>> The real limit, IIRC, is (2^32 - 1) blocks, or 4k shy of 16T for 4k blocks.
>>
>> This is a little unfortunate since "lvcreate -L16T" is so handy, but it
>> won't mkfs properly.  (ext3 should have the same limitation).
>>
>> We should probably make mkfs just silently lop off one block if it
>> encounters a boundary condition like this ...
>>
> 
> Ah, thanks Eric! That would be smart.
> 
> I'm trying to workaround, but...
> 
> ----8<----
> # mkfs.ext4 /dev/foo/bar $[2**32-1]
> mke2fs 1.41.3 (12-Oct-2008)
> mkfs.ext4: Size of device /dev/phd/dc1a too big to be expressed in 32 bits
>          using a blocksize of 4096.
> # mkfs.ext4 /dev/foo/bar 42
> # mkfs.ext4
> Usage: mkfs.ext4 [-c|-l filename] [-b block-size] [-f fragment-size]
>          [-i bytes-per-inode] [-I inode-size] [-J journal-options]
>          [-G meta group size] [-N number-of-inodes]
>          [-m reserved-blocks-percentage] [-o creator-os]
>          [-g blocks-per-group] [-L volume-label] [-M last-mounted-directory]
>          [-O feature[,...]] [-r fs-revision] [-E extended-option[,...]]
>          [-T fs-type] [-jnqvFSV] device [blocks-count]
> ----8<----
> 
> It doesn't appear to support the blocks-count option anymore. :-( Or did 
> it ever?

it does, and did... but it's checking the device size and erroring
before it looks at the value you passed in, sigh:

# ls -lh fsfile
-rw-r--r-- 1 root root 16T 2009-01-05 14:30 fsfile

[root at inode test]# mkfs.ext4 -b 4096 fsfile 4294967295
mke2fs 1.41.3 (12-Oct-2008)
fsfile is not a block special device.
Proceed anyway? (y,n) y
mkfs.ext4: Size of device fsfile too big to be expressed in 32 bits
        using a blocksize of 4096.

Unless you specify -n, not that that actually gets you anywhere!

[root at inode test]# mkfs.ext4 -n -b 4096 fsfile 4294967295
mke2fs 1.41.3 (12-Oct-2008)
fsfile is not a block special device.
Proceed anyway? (y,n) y
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
1073741824 inodes, 4294967295 blocks
214748364 blocks (5.00%) reserved for the super user
First data block=0
131072 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632,
2654208,
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
        102400000, 214990848, 512000000, 550731776, 644972544, 1934917632,
        2560000000, 3855122432

and one more block really does fail, though with a less-than-helpful
message:

[root at inode test]# mkfs.ext4 -n -b 4096 fsfile 4294967296
mke2fs 1.41.3 (12-Oct-2008)
mkfs.ext4: invalid blocks count - 4294967296

I'll look into this, it should all be smarter...

-Eric




More information about the Ext3-users mailing list