“Setting filesystem feature ‘metadata_csum’ not supported” when trying to enable ext4 checksums

Linux kernel version 3.5 added support for ext4 checksums. It should be possible to enable it with the following command:

# tune2fs -O metadata_csum /dev/sda1
tune2fs 1.42 (29-Nov-2011)
Setting filesystem feature 'metadata_csum' not supported.

However, as you see, it may well fail for you.

e2fsprogs too old? Tried the latest version (at the time of writing), and it still fails:


# wget http://kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/v1.42.4/e2fsprogs-1.42.4.tar.xz
# tar xpf e2fsprogs-1.42.4.tar.xz
# cd e2fsprogs-1.42.4
# ./configure
# make progs
# misc/tune2fs -O metadata_csum /dev/sda1
tune2fs 1.42.4 (12-June-2012)
Setting filesystem feature 'metadata_csum' not supported.

Maybe the bleeding edge from git?


# git clone git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git
# cd e2fsprogs
# ./configure && make progs
# misc/tune2fs -O metadata_csum /dev/sda1
tune2fs 1.42.4 (12-June-2012)
Setting filesystem feature 'metadata_csum' not supported.

Still no go.

Filesystem needs to be unmounted? Nope, tried doing the above when booted from a USB-stick and it’s not that either.
So, how to enable ext4 checksums with Linux 3.5?

Here is a dump of superblock information:

# dumpe2fs -h /dev/sda1
dumpe2fs 1.42.4 (12-June-2012)
Filesystem volume name:
Last mounted on: /
Filesystem UUID: db7f48f1-3d54-41b2-b0b0-bdc0031b78a2
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: 7561216
Block count: 30231808
Reserved block count: 1511590
Free blocks: 13460502
Free inodes: 6943838
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 1016
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
Flex block group size: 16
Filesystem created: Mon Oct 24 23:35:25 2011
Last mount time: Sun Jul 22 13:58:43 2012
Last write time: Sun Jul 22 13:58:28 2012
Mount count: 1
Maximum mount count: 32
Last checked: Sun Jul 22 13:58:28 2012
Check interval: 15552000 (6 months)
Next check after: Fri Jan 18 13:58:28 2013
Lifetime writes: 1292 GB
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: 787272
Default directory hash: half_md4
Directory Hash Seed: d2fc8d60-8aa9-4663-8f72-10b6ade10693
Journal backup: inode blocks
Journal features: journal_incompat_revoke
Journal size: 128M
Journal length: 32768
Journal sequence: 0x0035f480
Journal start: 1

 

2 Comments

  1. Nick says:

    You need the “pu” branch of e2fsprogs in git.

  2. admin says:

    Unfortunately “pu” branch didn’t work either:

    root s9:/usr/src/e2fsprogs# misc/tune2fs -O metadata_csum /dev/sda1
    tune2fs 1.42.3 (14-May-2012)
    rewrite_directory: Unknown code kJe 176 while rewriting directories

Leave a Reply