Ext2 Installable File System For Windows


Table of contents

What features are supported?

What features are *not* supported?

How are drive letters configured for Ext2 volumes?

Creating, modifying and removing of drive letters is very simple. Please use the "IFS Drives" item, which has been installed on the system's control panel.

icon screenshot

It shows a partition scheme and enables you to administrate drive letters for all non-Windows partitions, including all the Ext2 volumes. (That partition scheme is shown by the setup application of this software package, too.) You must have administrator rights.

Drive letters may also be configured with the Windows mountvol utility. See also section "Can drive letters also be configured from scripts?".

Can drive letters also be configured from scripts?

With version 1.11 of the Ext2 IFS software, drive letters can be configured with the Windows mountvol utility (except on Windows NT 4.0). This is useful if you want to control them from a script.

The mountvol utility is used just as if the drive letters would correspond to native Windows volumes, regardless of whether the volumes are native Windows volumes or Ext2/Ext3 ones.

First create a drive letter, for example X:, for a given Ext2/Ext3 volume with the "IFS Drives" item in the control panel in order to conveniently identify it in the following steps:

Use the Windows mountvol utility in order to identify the persistent volume name of the volume (replace X: with the actual drive letter):
mountvol X:\ /L

Now mountvol will report the persistent volume name (example):

The persistent volume name of a native volume of Windows remains valid unless Windows is reinstalled again. The persistent volume name of a volume that is managed by Ext2 IFS remains valid as long as the Ext2 IFS software remains installed.

You can use a known persistent volume name for a specific volume in order to create a new drive letter:
mountvol X:\ \\?\Volume{241c8cc6-c4e4-11db-8168-c5932447ec37}

You can delete a drive letter with
mountvol X:\ /D

Does the Ext2 driver access Ext3 volumes, too?

The Ext3 file system is the Ext2 file system which has been extended by journaling. Ext3 is backward-compatible to Ext2 - an Ext3 volume can be mounted and used as an Ext2 volume. Just as older Linux Kernels which do not know the Ext3 file system can mount Ext3 volumes (as Ext2 volumes), the Ext2 file system driver ext2fs.sys for Windows incorporated in this software package can do it without any problems, too. Of course you do not take advantage of the journaling of the Ext3 file system if you mount it as an Ext2 file system.

If you mount an Ext3 file system as an Ext2 file system and the file system is not cleanly dismounted, (e.g. due to a system crash), you have to run the e2fsck tool. (Linux does it automatically.) Running e2fsck can take several hours on large volumes. You do not benefit from journaling the Ext3 file system, because you have to run e2fsck.

If you mount an Ext3 file system as an Ext3 file system (journaling) and the file system is not cleanly dismounted due to a system crash, things are much better: When the volume is mounted next time as an Ext3 file system, a replay of the journal will be done, after which the file system will be consistent. You need not run e2fsck. (If you run e2fsck nevertheless, it won't find any errors of the Ext3 file system, because there will not be any errors after replaying the journal.)

If a volume is mounted as Ext3 file system, any new data is first completely written into the journal, and then into the file system. This is also called a transaction. Finally, the data is removed from the journal. So a journal only contains data when you are writing to the file system. After a clean dismount of the Ext3 file system, the journal is empty.

When the Linux kernel mounts an Ext3 file system, it first checks whether the journal contains complete transactions (not written yet due to a prior crash). If there are any, it does the already mentioned replay of the journal, which means that all data of the journal is written to the file system, and any data will be removed from it. So a replay always repairs any damage caused by a prior crash.

With the described way of writing the journal and the file system's data and with a replay of the journal after a crash, consistency of the file system is always achieved. Thus, e2fsck will not find any error.

The Ext2 file system driver of the Ext2 IFS software will refuse mounting an Ext3 file system which contains data in its journal, just like older Linux kernels which have no Ext3 support. In this way data loss and damaging the file system is avoided when the journal is subsequently replayed. So you can access only those Ext3 volumes with the Ext2 IFS software which have been cleanly dismounted beforehand.

What limitations arise from not maintaining access rights?

The current version of the Ext2 file system driver does not maintain access rights. All users can access all the Ext2 volumes that a drive letter is created for. For example, if a drive letter has been created for an Ext2 volume, which is the root volume of a Linux installation, you can simply read and modify files such as /etc/passwd and /etc/shadow. User names are readable and passwords of these users can be quite easily cracked and modified!

Therefore the current Ext2 file system driver does not fit for installations which require restrictive rights policies. It should be sufficient for your computer at home, which is used by one or a few users only. Furthermore, you should create drive letters for a root volume of a Linux installation only if you know exactly what you are doing.

What Ext2 revisions and Ext2 feature bits does the Ext2 driver support?

Revision 0 (Linux Kernel 2.2 and prior) and revision 1 (dynamic revision, Linux Kernels higher than 2.2) are supported.

Revision 1 (dynamic revision) implements feature bits as a kind of version control. These feature bits indicate whether an Ext2 file system residing on a disk has particular feature properties. Almost all feature bits are determined at the time when the Ext2 file system is created. Therefore most of the possible feature bits correspond to the -O switch of the mke2fs tool of Linux. (mke2fs is the "formatting tool" for Ext2 file system and creates such a file system. There is also a tune2fs tool for modifying feature bits of an Ext2 file system.)

The current version of the Ext2 file system driver (ext2fs.sys version 1.11) supports the following feature bits of the Ext2 file system:

mke2fs -O description
filetype File type information is stored in directory entries, too. (Improves performance on querying the content of a directory.)
sparse_super File system with fewer super block backup copies. (Saves space on large file systems.)
dir_index Htree directories. A directory may contain an additional index in order to speed up lookups in large directories.
- Files larger than 2 GBytes are currently stored in the file system. See note#1.
- When a directory grows, more blocks than are actually needed are allocated. (Reduces fragmentation of the file system.) See note#2.

Note#1: The EXT2_FEATURE_RO_COMPAT_LARGE_FILE is always disabled when creating an Ext2 file system. It is set on first storing a file larger than 2 GBytes. See next section "What is the Large File Feature and how it is configured?"

Note#2: Surprisingly, neither the current mke2fs nor the tune2fs tool (from the e2fsprogs 1.35 package) supports this feature bit. If you want to enable it, you have to use an appropriate disk editor tool. (Do it only if you know exactly what you are doing.)

What is the Large File Feature and how it is configured?

Linux kernels version higher than 2.2 allow storing files larger than 2 GBytes on Ext2 volumes: They set a feature bit
the first time such a large file is stored.

But this set feature bit causes old Linux Kernels, which do not support large files (version 2.2 or prior), mounting the Ext2 volume as a read-only volume. If that volume is the root volume of an old Linux installation, its Linux Kernel will become inoperable (it will enter the maintenance mode on booting).

The Ext2 file system driver ext2fs.sys for Windows has to behave exactly like Linux kernels to become compatibile with the Linux file system Ext2. But the behavior of old and new Linux Kernels regarding to large files excludes each other, so the Ext2 file system driver ext2fs.sys for Windows is configurable whether it behaves like an old Linux Kernel (2.2 or prior) or a new Linux Kernel (higher than 2.2).

The setup wizard of this software asks the user whether the large file feature should be enabled and configures the file system driver ext2fs.sys for Windows according to the choice made by the user. If you have a recent Linux distribution, you should enable the large file feature.

If you want to check or modify whether the large file feature of ext2fs.sys is enabled, it is configured at the registry key
by the registry value

If that (DWORD-) value exists and is not equal to 0x0000 the large file feature is enabled. (Changes will take effect on next reboot.)

What files does the setup program install?

version description
1.11a See note#1 File system driver (kernel mode) for the Ext2 file system.
1.00a See note#1 IFS Mount Manager driver (kernel mode). Creates and deletes drive letters for any volume.
1.11a ActiveX control. Configures the IFS Mount Manager driver ifsmount.sys.
ifsdrives.cpl (all Windows versions except Vista/2008)
1.11 Control panel item "IFS Drives", which actually hosts the ActiveX control of ifsdrives.dll.
ifsdrives.exe (Windows Vista/2008 only)
1.11 Control panel item "IFS Drives", which actually hosts the ActiveX control of ifsdrives.dll.
ifsdrives_tasks.xml (Windows Vista/2008 only)
- Tasks file that defines tasks for the "IFS Drives" item in the control panel.

Note#1: There are separate versions of the drivers ext2fs.sys and ifsmount.sys for each of the supported Windows platforms (Windows NT4.0/2000/XP/2003/Vista/2008). The setup application of this software package installs the right drivers corresponding to the Windows platform it runs at.

How do I uninstall the Ext2 IFS software?

Use the "Add/Remove Programs" item in the control panel to uninstall the "Ext2 IFS 1.11a for Windows" software.

Note: Uninstallation will require a reboot.

Valid XHTML 1.0! Valid CSS!