This is the home page for my file system driver for NT which can read the Linux Second Extended File System (EXT2) and Third Extended File System (EXT3).
Version 0.3 has fixed a long standing bug with large disks. Under Windows 2000 the driver should be quite stable and can be considered beta quality. NT4 testing has been left behind and so the NT4 driver should be considered alpha quality.
This version probably does not work under XP SP2. I have started to test this and I hope to update the driver soon to properly support XP.
Please read the information on this page carefully. There is important information that you need to be aware of before you try to use this driver.
What is EXT2IFS?
EXT2IFS is an Installable File System Driver (IFS) for Microsoft Windows NT 4.0, Microsoft Windows 2000 (NT 5.0) and Microsoft Windows XP (NT 5.1).
The driver can read the Second Extended File System (EXT2) and Third Extended
Why would I want EXT2IFS?
If you have a PC which can dual boot both Linux and NT then this driver may be of some use. By installing the driver you will be able to read files off your Linux filesystems using all the standard methods you use to access NTFS and FAT filesystems. That means you can use Explorer, cmd.exe and any other application to copy and read the files.
On what systems does EXT2IFS work?
EXT2IFS has been specifically written to run on the following operating systems:
The driver has not been tested but should work on the following operating systems:
The driver has not been tested and probably will not work on the following operating systems:
The driver will NOT work on the following operating systems:
(* Strictly speaking this are not
What can EXT2IFS do?
EXT2IFS is a read only driver. It provides access similar to other read only media like CDs. You can view directory listings and read files. You can not write files, add files, delete files etc.
You can share your ext filesystems so they can be read over the network. This has not been fully tested but I don't know of any reason why it should not work.
What can't EXT2IFS do?
There are many things which are not yet implemented in EXT2IFS. Some of these are just because I haven't got round to them and others are not required until write support is added:
It still shits me that there are so many ways in which things as simple as a directory listing can be done under NT. I have implemented all the ways which seem to be used at the moment. Another stupid thing is that wildcard matching in directory listings is handled by the FS driver. This is fine for 8.3 FAT filesystems but UNIX/Linux users expect the power and flexibility of regular expressions. This is clearly a feature which belongs in user space. Under NT, every filesystem has to re-implement it (NTFS, FAT, CDFS(ISO9660) and EXT2). This might mean you can put fancy smancy features into NTFS but is the complexity really worth it? I don't think so.
What things are not tested in EXT2IFS?
I am sure there are many things which will not work to some degree. Memory Mapping does not seem to be working under NT4 but does under NT5
Who wrote EXT2IFS?
The majority of the code has been written by Me, John Newbigin. The code however uses a lot of ideas from Rajeev Nagar's book and Bo Branten's RomFS driver. It is my belief that all the code in the driver is covered by the GPL. Although the majority of the code is my work and therefore copyrighted by me, some of it is no doubt Bo's and I do use some header file's from the Linux kernel which states that is was written by Remy Card but is copyright Linus Torvalds. The driver is compiled against the GNU ntifs.h which is maintained by Bo Branten.
How do I install the driver?
I have written a custom install application which can install and configure the driver. Although there are in theory other ways of installing the driver I recommend that you use this install application for all installation, configuration and un-installation.
How do the drive letters work?
Under NT 4.0, there is a F*&!ed up way of assigning drive letters to partitions based on some stupid method which dates back to the days of DOS. Lucky for us, this magic only occurs for the filesystems that Microsoft know about and so we get to assign our own drive letters. There are some magic registry keys which are created which tell the Win32 subsystem to create some extra drive letters.
These are pointed to the NT object which represents the partition which contains your EXT2 filesystem. The object manager then eventually asks the IFS if it can mount the partition which hopefully it does and from then on, your drive letter should work.
In NT 5.0, much of the drive letter assigning has been changed. You can still use the NT 4.0 method but there are newer, more useful methods available. At last Microsoft are getting rid of drive letters and you can mount filesystems on a directory like you do under Linux. This is far from perfect but you can now use any of these three methods for accessing your EXT2 filesystems (called volumes by NT):
The first two methods are standard NT 5.0 methods and can be configured by the Disk Management Console plugin (diskmgmt.msc) or the install application. The third is EXT2 specific at this point in time and can only be configured with the install application.
Unfortunately, Windows XP does not create volume objects for Linux filesystems which means the new way does not work. Until I work out how to make the volumes, use the NT4 method. This means you will have to reboot to apply the changes.
Do I need a File System Recogniser?
No. EXT2IFS can recognise EXT2 and EXT3 filesystems without the help of a recogniser. You can use one if you want but I don't see the point. Given that you are installing this driver you have EXT filesystems and this driver will end up being loaded so why add another driver which does not do anything?
What about debug information?
The driver will spew out heaps of debug info. If you do not have a kernel debugger you could try your luck with DebugView from www.sysinternals.com. If you do not want to see the debug output, you can just ignore it.
Checked or Free?
This is a checked build of the driver. It works under a Free build of NT. Unless you are actively developing the driver, there is probably no need to use a checked build of NT.
What about EXT3?
EXT3 uses the same on disk structure as EXT2. This driver can read it. If there are entries in the journal which have not been written to disk then you might not have an accurate view of some data but apart from that it should not be a problem.
What about ReiserFS?
ReiserFS has nothing to do with EXT2 and is totally not supported by EXT2IFS. You might want to try these tools instead (all untested by me):
Binary only. For people who want to use the driver under NT4, Windows 2000 or Windows XP
Source code. For people who are crazy enough to want to know how the driver works. Also includes the (Delphi) source code to the install program and some test programs I use.
Download the .zip file. Extract all the files into a directory like c:\apps\ext2ifs. Run service.exe. Read the introduction carefully so you know what you are getting yourself into. Click on "Step 1". Click on "Install", Click on "Step 2". Create some drive letters (double click to open the appropriate dialog), Click on "Step 3" and click start.
(Note: If you use large fonts you might not be able to see the "Step 1", "Step 2" etc. tabs. If you can't see the tabs, try adjusting your windows font size)
On step 1 Click uninstall. This will stop Windows from being able to load the driver. After this is done it is safe to delete ext2fs.sys from %SYSTEMROOT%\system32\drivers but I recommend that you leave it there. (It will not do any harm).
On step 2 delete any assignments you have made. This is not strictly necessary but unless you have another ext2 driver then they will not be much good. To remove a drive letter assignment, assign None. To remove a path assignment, leave the folder blank, check Replace existing mount locations and click OK.
And you are done. The driver will still be loaded until your next reboot but after that it will be gone.
Using the source code
To build the source code, you need a number of tools.
Some other optional things
Some Other Drivers
Frequent Asked Questions
This is just a mini FAQ. Please look here before emailing me.
Why do some directories appear as files?
This bug should be fixed in version 0.3. The problem was when a block number was translated to a 64 bit disk address, the result was being truncated to 32 bits.
Why can't I see my drives under Windows XP?
Use step 2b to assign drive letters. You will have to reboot to activate them.
Why can't I see my ext3 drives?
ext3 is the same as ext2. Your problem is not related to ext3. Are you running windows XP (see previous answer).