Ext2Fsd.sys fails with ext4 filesystem flavor: "unknown feature"

All development related issues welcome

Moderator: Moderator Team

Post Reply
Torsten
Posts: 8
Joined: Wed Feb 21, 2018 10:26 am

Ext2Fsd.sys fails with ext4 filesystem flavor: "unknown feature"

Post by Torsten »

Hi all,

the Ext2Fsd ext2/3/4 file system driver by Matt Wu is part of ReactOS
distributions since several years.

I have used Ext2Fsd on several systems, and Matt's driver successfully
opened ext2 as well as ext4 volumes. (The latter were formatted with
the mkfs.ext4 releases included in Ubuntu 14.04 and/ or GRML 2013.11).

With an ext4 formatted volume created by a current Opensuse Tumbleweed
build, Ext2Fsd however fails, i.e. the filesystem is not recognized.

Further investigation with the tools included in Matt's original
distribution from
https://netcologne.dl.sourceforge.net/p ... d-0.69.exe
reveals an "unknown incompatible feature flag" in the journal's superblock.

According to Matt's release notes, 64-bit mode, log-based journal
operations, external journals and extended attributes as well as ACLs
are currently unsupported. I doubt wether either of these apply to the
Tumbleweed-formatted volume.

The ext2fsd.sys driver in ReactOS 0.4.12 has a different build date
and is bigger than Matt's original (1314816 bytes, built Sep 20 2019
11:48:56 vs. 728952 bytes, Nov 2 2017 13:51:18). The driver's version
number "0.69" is however identical in both builds.

Has the driver's code been reworked by ReactOS developers, or are the
differences merely related to the employed build environments?

Matt hasn't released any newer version since 2017. He used to do so
regularily (he may have abandoned his project).

The log output from ext2/3/4 filesystem tools is attached. I used
Matt's PE binaries binaries here. They require that the ext4 volume -
although unreadable - has a drive letter assigned (here "L:" for
"Linux"), e.g. with his mount.exe utility.

Further information welcome.

Best regards, Torsten

-----------------------------------------------------------------------
[Logged console output:]
R:\>e2fsck.exe -n l:
e2fsck 1.42.13 (17-May-2015)
Journal superblock has an unknown incompatible feature flag set.
Abort? no

Journal superblock is corrupt.
Fix? no

e2fsck: The ext2 superblock is corrupt while checking ext3 journal for IBMHD40G_ext4

IBMHD40G_ext4: ********** WARNING: Filesystem still has errors **********

R:\>debugfs -c l:
debugfs 1.42.13 (17-May-2015)
l:: catastrophic mode - not reading inode or group bitmaps
debugfs: stats -h
Filesystem volume name: IBMHD40G_ext4
Last mounted on: /
Filesystem UUID: c88e3a8f-c49b-4a0e-944e-918151d0c315
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype extent 64bit flex_bg sparse_super large_file huge_file dir_nlink extra_isize metadata_csum
Filesystem flags: signed_directory_hash
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 1888656
Block count: 7541092
Reserved block count: 377054
Free blocks: 5217984
Free inodes: 1751188
First block: 0
Block size: 4096
Fragment size: 4096
Group descriptor size: 64
Reserved GDT blocks: 1024
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8176
Inode blocks per group: 511
Flex block group size: 16
Filesystem created: Sat Nov 9 02:20:43 2019
Last mount time: Fri Dec 6 10:58:08 2019
Last write time: Fri Dec 6 11:58:01 2019
Mount count: 65
Maximum mount count: -1
Last checked: Sat Nov 9 02:20:43 2019
Check interval: 0 (<none>)
Lifetime writes: 32 GB
Reserved blocks uid: 0 (user unknown)
Reserved blocks gid: 0 (group unknown)
First inode: 11
Inode size: 256
Required extra isize: 32
Desired extra isize: 32
Journal inode: 8
Default directory hash: half_md4
Directory Hash Seed: d41b23e1-45ce-48d7-a0b8-a16c85431faf
Journal backup: inode blocks
Checksum: 0x0e5d39bd
Directories: 10375
debugfs: ls -l
2 40755 (2) 0 0 4096 6-Dec-2019 11:01 .
2 40755 (2) 0 0 4096 6-Dec-2019 11:01 ..
261633 40700 (2) 0 0 4096 7-Nov-2019 13:07 lost+found
915713 40755 (2) 0 0 4096 10-Nov-2019 05:14 bin
1438977 40755 (2) 0 0 4096 10-Nov-2019 05:12 boot
392449 40755 (2) 0 0 4096 7-Nov-2019 13:06 dev
1308161 40755 (2) 0 0 12288 20-Nov-2019 11:38 etc
1569793 40755 (2) 0 0 4096 26-Sep-2019 19:51 home
1046529 40755 (2) 0 0 4096 10-Nov-2019 05:11 lib
523265 40755 (2) 0 0 4096 26-Sep-2019 19:51 mnt
1700609 40755 (2) 0 0 4096 7-Nov-2019 13:02 proc
784897 40700 (2) 0 0 4096 6-Dec-2019 11:01 root
130818 40755 (2) 0 0 4096 10-Nov-2019 23:52 run
915846 40755 (2) 0 0 12288 10-Nov-2019 16:53 sbin
1700610 40755 (2) 0 0 4096 10-Nov-2019 15:48 srv
261634 40755 (2) 0 0 4096 7-Nov-2019 13:02 sys
654085 41777 (2) 0 0 4096 6-Dec-2019 11:01 tmp
261635 40755 (2) 0 0 4096 26-Sep-2019 19:51 usr
1439006 40755 (2) 0 0 4096 11-Nov-2019 00:01 var
0 0 (222) 0 0 0

debugfs: q

R:\>

karlexceed
Posts: 513
Joined: Thu Jan 10, 2013 6:17 pm
Contact:

Re: Ext2Fsd.sys fails with ext4 filesystem flavor: "unknown feature"

Post by karlexceed »

Torsten wrote:
Tue Dec 10, 2019 4:27 pm
According to Matt's release notes, 64-bit mode ... currently unsupported.
Torsten wrote:
Tue Dec 10, 2019 4:27 pm
Filesystem features: has_journal ext_attr resize_inode dir_index filetype extent 64bit flex_bg sparse_super large_file huge_file dir_nlink extra_isize metadata_csum
I bolded the 64bit feature flag, in case it doesn't stand out in the quote.

Torsten
Posts: 8
Joined: Wed Feb 21, 2018 10:26 am

Re: Ext2Fsd.sys fails with ext4 filesystem flavor: "unknown feature"

Post by Torsten »

Hi Karl and others,

only a couple of minutes ago, I realized myself that the volume in fact
uses 64-bit mode. As I'm explicitly running Tumbleweed's 32-bit version
(the Intel Centrino CPU in my Thinkpad T43 doesn't handle 64-bit code)
on a quite small harddisk, I didn't expect that the installer's
formatter would set this feature anyway ...

According to his release notes, Matt had no plans to implement this
feature. I'll probably backup the volume and reformat it to 32-bit mode
ext4. Or can such features be disabled in an existing filesystem (as
long as their're not used)? I remember that at least their journals
can be detached and then reattached (with different properties, e.g.
smaller journal size than the defaults, on backup media which aren't
permanently written - I use to do so with NTFS-formatted USB sticks too
to gain a little more space). Backups are always a good idea, anyway.

Regards Torsten
Last edited by Torsten on Wed Dec 11, 2019 7:42 am, edited 1 time in total.

Torsten
Posts: 8
Joined: Wed Feb 21, 2018 10:26 am

Re: Ext2Fsd.sys fails with ext4 filesystem flavor: "unknown feature"

Post by Torsten »

Hi again,

just to give a report - I assume that mainly Ext2Fsd users may be affected by
the mentioned issue (Ext2 IFS by Stefan Schreiber has no ext4 support yet, and
pure Linux users commonly won't bother about a present ext4 64-bit feature) -
disabeling the feature flag is possible, without reformatting an ext4 volume.
(There are old tune2fs man pages on the web which not yet mention this option.)

It's just a matter of executing tune2fs with the "-O ^64bit" switch on the
respective volume. In my case (Linux resides on the third extended partition):

thinkpad:/ # tune2fs -O ^64bit /dev/sda7


tune2fs then gives precise instructions on two operations to perform
subsequently, it even indicates the partition on which to execute them:

thinkpad:/ # e2fsck -f /dev/sda7

thinkpad:/ # resize2fs -s /dev/sda7

The last step takes a little longer and finally reports that the
filesystem had been converted to 32-bit mode.
Gladly, the geometry or the position of the boot loader's files isn't
altered in any way, so the OS Loader's local copy of the Linux partition's
boot block remains valid (i.e. Linux will still start from the Bootmanager).

Yes, the Linux volume is finally mountable with Ext2Fsd (no wonder).
Besides his Mount.exe utility, Matt's GUI app Ext2 Volume Manager
Ext2Mgr.exe may be a choice. It provides a structured overview of
drives and their partitions. I avoid however to assign the Linux volume
permanentely to a drive letter to prevent unintended write operations
on it (mounting in read-only mode won't harm, I hope).
So far on that.

Regards, Torsten

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest