README Ext2 Installable File System for Windows 1.10c

Release Notes of Ext2 IFS version 1.10c

You can use hibernate (suspend to disk) in Windows only if you resume Windows subsequently. Furthermore, you can use hibernate (suspend to disk) in Linux only if you attempt to resume Linux subsequently. It means that you should shutdown Windows before booting Linux and vice-versa. You cannot mix the two operating systems.

It is not possible to access or create files and directories if their name ends on a dot character ".".
When the Windows Explorer specifies a file name with a trailing dot, Window's Win32 subsystem removes that dot and the file system driver gets a create/open request with a wrong file name. (It mimics some obscure DOS behavior.)

Currently there is one issue you have to note when you are using external USB hard disk drives (USB memory sticks are not affected):
After you have connected an USB drive to the computer and have created a drive letter with the "IFS Drives" item of the control panel, you may remove that USB drive in two different ways: either with the "Safely Remove Hardware" icon on your taskbar or (not recommended, but possible) simply by unplugging the USB plug.
Even the Ext2fs.sys file system driver will dismount Ext2 volumes correctly. The "IFS Drives" component of the Ext2 IFS software will not realize the removal of an USB drive as a Plug and Play event, and hence it will not remove any drive letter.
Please remove the appropriate drive letters of Ext2 volumes manually by using the "IFS Drives" of the control panel before you attempt to remove a USB drive.
If you have not manually removed any drive letters, but already have unplugged the USB drive, you can only remove these drive letters by inconvenient means:
Double-click on the "IFS Drives" item of the control panel, so that its window appears. Please close that window now (you need not to do anything else here). Reboot your computer and all the drive letters of removed USB drives will be gone.
Note that there is another workaround for the mentioned USB drive issue: you may modify the type of any Ext2/Ext3 partition on your USB drives. Linux Ext2/Ext3 partitions usually have as type 83 (hex). You may set the type of them to 7 (hex) for example with the Linux fdisk tool (using its t-command). The partition type of 7 (hex) - usually used on NTFS partitions - causes Windows to create and remove drive letters for a plugged or an unplugged USB drive itself.
Since Windows doesn't check the type of a partition while determining the file system, everything works well.
Linux does not check the types of partitions either.

You may run into similar problems as described above when you remove an internal fixed disk out of your computer but have not manually removed its drive letters before: there are drive letters left you can not delete in a straightforward manner. Do the same here as mentioned above: double-click on the "IFS Drives" item of the control panel, so its window appears. Please close that window now (you need not do anything else here). Reboot your computer.

When you create drive letters with "IFS Drives" on Windows XP/2003, you will realize that those drive letters disappear after logging out and logging in as another user. But everything will work as you expect after the next reboot. (Windows NT4 and Windows 2000 are not affected.)

There is an issue with directories which you share over the network on Windows XP/2003. (Windows NT4 and Windows 2000 are not affected.)
When you have just created a drive letter for an Ext2/Ext3 volume in "IFS Drives" of the control panel and tried to share a folder on that volume, you will get an error message "An error occurred while trying to share ... The device or directory does not exist."
But if you reboot your computer after creating a drive letter, sharing the folder of that volume will work.

FAQ

Table of Contents

1. Supported Features
2. Nonsupported Features
3. Configuring Drive Letters for Ext2 Volumes
4. Accessing Ext3 Volumes
5. Limitations When Access Rights Are Not Maintained
6. Ext2-Revisions and Feature Bits Supported by the Driver
7. Enabling the Large File Feature
8. Files Installed by the Ext2 IFS for Windows 1.10c Software Package
9. Deinstalling the Ext2 IFS for Windows 1.10c Software

1. Supported Features

•	Complete reading and writing access to files and directories of volumes with the Ext2 or Ext3 file system.
•	Supports features which are specific to the I/O-system of Windows: Byte Range Locks, Directory Notfication (so the Explorer updates the view of a directory on changes within that directory), Oplocks (so SMB clients are able to cache the content of files).
•	Allows Windows to run with paging files on Ext2 volumes.

2. Nonsupported Features

•	Access rights are not maintained. All users can access all the directories and files of an Ext2 volume. If a new file or directory is created, it inherits all the permissions, the GID and the UID from the directory where it has been created. With version 1.10a of the software there is one exception to this rule: a file (but not a directory) the driver has created always has cleared "x" permissions, it inherits the "r" and the "w" permissions only. See also section "5. Limitations When Access Rights Are Not Maintained".
•	The driver treats files which have got a file name beginning with a dot "." character like other files, but not as hidden files.
•	The driver does not allow accessing special files at Ext2 volumes, the access will be always denied. (Special files are sockets, soft links, block devices, character devices and pipes.)
•	Neither different code pages nor UTF-8 encoded file names are supported. The driver always uses the current code page of Windows.
•	Alternate 8.3-DOS names are not supported (just because there is no place to store them in an Ext2 file system). This can prevent legacy DOS applications, executed by the NTVDM of Windows, from accessing some files or directories.
•	Currently the driver does not implement defragging support. So defragmentation applications will neither show fragmentation information nor defragment any Ext2 volume.
•	This software does not achieve booting a Windows operating system from an Ext2 volume.
•	LVM volumes are not supported, so it is not possible to access them.

3. Configuring Drive Letters 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.
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.

4. Accessing Ext3 Volumes

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.

5. Limitations When Access Rights Are Not Maintained

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.

6. Ext2-Revisions and Feature Bits Supported by the Driver

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.10c) supports the following feature bits of the Ext2 file system:

+==============+==============================================+
| mke2fs -O    | description                                  |
+==============+==============================================+
| EXT2_FEATURE_INCOMPAT_FILETYPE                              |
+--------------+----------------------------------------------+
| filetype     | File type information is stored in directory |
|              | entries, too.                                |
|              | (Improves performance on querying the        |
|              | content  of a directory.)                    |
+==============+==============================================+
| EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER                         |
+--------------+----------------------------------------------+
| sparse_super | File system with fewer super block backup    |
|              | copies. (Saves space on large file systems.) |
+==============+==============================================+
| EXT2_FEATURE_RO_COMPAT_LARGE_FILE                           |
+--------------+----------------------------------------------+
| -            | Files larger than 4 GBytes are currently     |
|              | stored in the file system.                   |
|              | See note#1.                                  |
+==============+==============================================+
| EXT2_FEATURE_COMPAT_DIR_PREALLOC                            |
+--------------+----------------------------------------------+
| -            | 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 4 GBytes. See next section "7. Enabling the Large File Feature"

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.)

7. Enabling the Large File Feature

Linux kernels version higher than 2.2 allow storing files larger than 4 GBytes on Ext2 volumes: They set a feature bit
EXT2_FEATURE_RO_COMPAT_LARGE_FILE
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
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Ext2fs\Parameters
by the registry value
TriggerLargeFileFeature
If that (DWORD-) value exists and is not equal to 0x0000 the large file feature is enabled. (Changes will take effect on next reboot.)

8. Files Installed by the Ext2 IFS for Windows 1.10c Software Package

+============+================================================+
| version    | description                                    |
+============+================================================+
| ext2fs.sys                                                  |
+------------+------------------------------------------------+
| 1.10c      | File system driver (kernel mode) for the Ext2  |
| See note#1 | file system.                                   |
+============+================================================+
| IfsDrives.sys                                               |
+------------+------------------------------------------------+
| 1.00       | Drive mounter driver (kernel mode). Creates    |
| See note#1 | drive letters for volumes in an early phase of |
|            | booting Windows.                               |
+============+================================================+
| IfsDrives.dll                                               |
+------------+------------------------------------------------+
|  1.00a     | ActiveX control, which configures the drive    |
|            | mounter driver IfsDrives.sys.                  |
+============+================================================+
| IfsDrives.cpl                                               |
+------------+------------------------------------------------+
|  1.00      | Control panel item "IFS Drives", which         |
|            | actually hosts the ActiveX control of          |
|            | IfsDrives.dll.                                 |
+------------+------------------------------------------------+

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

9. Deinstalling the Ext2 IFS for Windows 1.10c Software

Please use the "Add/Remove Programs" item on the control panel to deinstall the "Ext2 IFS 1.10c for Windows" software. 
Note: Deinstallation will require a reboot.