mirror of
https://github.com/bobranten/Ext4Fsd.git
synced 2025-10-29 13:18:30 -05:00
177 lines
6.2 KiB
Markdown
177 lines
6.2 KiB
Markdown
|
|
Latest release
|
|
--------------
|
|
|
|
Signed driver for Windows 10 and Windows 11:
|
|
https://www.accum.se/~bosse/ext2fsd/0.71/Ext2Fsd-0.71-setup.exe
|
|
|
|
Updated Ext2Mgr https://www.accum.se/~bosse/ext2fsd/0.71/Ext2Mgr.exe
|
|
that gives more detailed information on the type of filesystems on
|
|
the disk. If an on disk filesystem contains new ext4 features that
|
|
is not supported by the Windows driver it will show a '+' sign after
|
|
the filesystem name, e.g "EXT4+". You can run this application
|
|
together with an already installed driver.
|
|
|
|
|
|
Changes to the source code in git after latest release
|
|
------------------------------------------------------
|
|
|
|
Most users can continue to use the latest release, it contains
|
|
an install program and a signed driver. Below is a list of
|
|
what has been implemented in the source code in git since then.
|
|
If you need any of these features you can compile the driver
|
|
or application yourself.
|
|
|
|
Driver:
|
|
|
|
- Corrected an error that made the debug version of the driver
|
|
crash. A number of calls to Ext2FreePool where misstakenly
|
|
replaced with direct calls to ExFreePool. This error can
|
|
not happen in the release version of the driver.
|
|
|
|
- The existing time fields in the superblock and the inodes
|
|
is using 32-bit values for time in seconds since 1970. They
|
|
will overflow in 2038. The ext4 filesystem has therefore
|
|
been extended with new time fields. In the superblock they
|
|
have names ending in "_hi" containing the high 8-bit of the
|
|
the seconds while the existing time fields contain the lower
|
|
32-bit. In the inodes the new fileds has names ending in
|
|
"_extra". They contain both the high 2-bit of the seconds,
|
|
that is bit 33 and 34 and also the nano seconds encoded as
|
|
(nsec << 2 | epoch) The existing fields contain the low 32-bit
|
|
of the seconds.
|
|
|
|
- The call "query volume information" will read the fields
|
|
s_mkfs_time and s_mkfs_time_hi from the superblock.
|
|
|
|
- The fields s_mtime and s_mtime_hi in the superblock will be
|
|
updated with the current time at mount time.
|
|
|
|
- The fields s_wtime and s_wtime_hi in the superblock will be
|
|
updated with the current time at shutdown.
|
|
|
|
Application:
|
|
|
|
- If an on disk filesystem contains new ext4 features that is
|
|
not supported by the Windows driver a '+' sign will be shown
|
|
after the filesystem name, e.g "EXT4+".
|
|
|
|
- More filesystems are recognized. The main window with
|
|
a list of disks and partitions will now tell the type of
|
|
filesystem for BTRFS, XFS, BSD, LVM and RAID (MD) in
|
|
adidition to EXT
|
|
|
|
- The used size of swap partitions is listed as zero.
|
|
|
|
- The donate dialog box is disabled because the information in
|
|
it is outdated.
|
|
|
|
|
|
About
|
|
-----
|
|
|
|
This is a branch of the Ext2Fsd project by Matt Wu where I try to
|
|
implement support for metadata checksums and jbd2. I have also
|
|
updated the project so it can be compiled with Visual Studio 2019
|
|
and Visual Studio 2022.
|
|
The current status of the development is that all metadata checksums
|
|
is implemented and jbd2 is ported to support 64-bit blocknumbers.
|
|
The driver is now ready to be tested!
|
|
This work is dedicated to my mother Berit Ingegerd Branten.
|
|
Bo Branten <bosse@accum.se>
|
|
|
|
|
|
Test
|
|
----
|
|
|
|
To test this driver run the installation programs:
|
|
Signed driver for Windows 10 and Windows 11:
|
|
https://www.accum.se/~bosse/ext2fsd/0.71/Ext2Fsd-0.71-setup.exe
|
|
Signed driver files for manual install: (even ARM/ARM64)
|
|
https://www.accum.se/~bosse/ext2fsd/0.71/signed/
|
|
Unsigned driver for Windows XP, Windows Vista, Windows 7 and Windows 8:
|
|
https://www.accum.se/~bosse/ext2fsd/0.71/Ext2Fsd-0.71-setup-xp.exe
|
|
|
|
If you compile the driver yourself you only need to run the installation
|
|
program once, then you can copy your driver file over the old in
|
|
\windows\system32\drivers.
|
|
Now you can read and write ext4 filesystems using the new features
|
|
metadata checksums and 64-bit blocknumbers from Windows.
|
|
|
|
|
|
Introduction
|
|
------------
|
|
|
|
Ext4Fsd is an ext2/3/4 file system driver for Windows (XP/Vista/7/8/10/11).
|
|
It's a free and open-source software, everyone can modify or distribute
|
|
under GNU GPLv2.
|
|
|
|
|
|
Active Developers
|
|
-----------------
|
|
|
|
Bo Branten : http://github.com/bobranten
|
|
http://www.accum.se/~bosse
|
|
|
|
Thanks to Olof Lagerkvist https://github.com/LTRData
|
|
for important help to this project!
|
|
|
|
|
|
Previous Developers
|
|
-------------------
|
|
|
|
Matt Wu : http://github.com/matt-wu
|
|
http://blog.dynox.cn
|
|
|
|
KaHo Ng : http://github.com/ngkaho1234
|
|
|
|
|
|
Old Development Website
|
|
-----------------------
|
|
|
|
Matt Wu <mattwu@163.com>
|
|
http://www.ext2fsd.com
|
|
|
|
|
|
Supported Features by Ext4Fsd
|
|
-----------------------------
|
|
|
|
1, flexible inode size: > 128 bytes, up to block size
|
|
2, dir_index: htree directory index
|
|
3, filetype: extra file mode in dentry
|
|
4, large_file: > 4G files supported
|
|
5, sparse_super: super block backup in group descriptor
|
|
6, uninit_bg: fast fsck and group checksum
|
|
7, extent: full support with extending and shrinking.
|
|
8, journal: only support replay for internal journal
|
|
9, flex_bg: first flexible metadata group
|
|
10, symlink and hardlink
|
|
11, mount-as-user: specifed uid/gid by user
|
|
|
|
|
|
Read-only Ext4 Features
|
|
-----------------------
|
|
|
|
If any of the ext4 features below is present on a filesystem
|
|
the Windows driver will automatically mount the fs read-only:
|
|
|
|
1, EXT4_FEATURE_RO_COMPAT_BIGALLOC
|
|
2, EXT4_FEATURE_RO_COMPAT_QUOTA
|
|
3, EXT4_FEATURE_RO_COMPAT_PROJECT
|
|
4, EXT4_FEATURE_RO_COMPAT_VERITY
|
|
5, EXT4_FEATURE_RO_COMPAT_ORPHAN_PRESENT
|
|
|
|
|
|
Unsupported Ext4 Features
|
|
---------------------------
|
|
|
|
If any of the ext4 features below is present on a filesystem
|
|
the Windows driver can not mount the fs at all:
|
|
|
|
1, EXT4_FEATURE_INCOMPAT_EA_INODE (extended attributes)
|
|
2, EXT4_FEATURE_INCOMPAT_MMP (multiple mount protection)
|
|
3, EXT4_FEATURE_INCOMPAT_INLINE_DATA (storing small files in inode)
|
|
4, EXT4_FEATURE_INCOMPAT_ENCRYPT
|
|
5, EXT4_FEATURE_INCOMPAT_CASEFOLD (case insensitive file names (claimed to be used by SteamOS as default))
|
|
6, EXT4_FEATURE_INCOMPAT_LARGEDIR (3-level htree)
|