This is the home page for my file system driver for NT which can read the Linux Second Extended File System (EXT2). Project Status Here it is. 3 Years in the making. Version 0.1 of EXT2IFS.
Things which do not work yet
Bugs. What would a 0.1 release be without bugs?
I have fixed a lot of the memory leaks and implemented cleanup and close support. I think all the issues with explorer and reading files are now taken care of. 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 not EXT2). This might mean you can put fancy smancy features into NTFS but is the complexity really worth it? I don't think so. Project Licence My goal is to develop a driver which is available under the GPL. I was tempted for a while to retain copyright over all the code so I could release it myself under a different licence as well as GPL. In the prospective buyer was not interested and there is no reason to do that anymore so I will release the code as is, crediting the respective authors where appropriate. This driver is built against the GPL version of ntifs.h Download and Testing Download from here ext2ifs-0.1real.zip. This contains the driver, installation tool and source code. You can use the driver under a standard NT 4 Service Pack 6 system. You can use DebugView from http://www.sysinternals.com/ntw2k/freeware/debugview.shtml to watch the debug output from the driver. This will not help you if you bluescreen but that is not going to happen anyway (fingers crossed :). I have not tested this driver under any OS other than NT4SP6. Be warned, bad things might happen if you try to use this under Windows 2000 or XP. (Bad things means bluescreen. Make sure if you install the driver that you can uninstall it). You have been warned. I have the Windows 2000 DDK and a checked build of 2000, all I need to do now is find enough free disk space to install it. Hopefully there will be a 2000 driver ready in a few weeks. Other Resources
I Want to Help Although I know about EXT2, I know very little about NT Internals (Well, I know a lot more than most people, but not enough to write IFS drivers). There are still parts of the driver which work but I don't know why or what they do. Finding people who do know is also very difficult but if you know what is going on and want to help, I would love to hear from you. If you just want to learn for your self, you can play with the code. You will need Visual C++, the Windows DDK (free download from MS) and lots of patients but the experience will be worth it. There are so many more ways to crash windows that I can not even dream of. Kernel Dubugger and Checked Build Although you can run the driver under a normal NT installation, if something goes wrong you get a blue-screen and the joy of rebooting. If you want to be able to view the debug output you will need to set up NT kernel debugging. This means you need a second machine running NT and a serial cable to connect them together. You need kd.exe from either the DDK or the MS debugger set. You may also want a checked build of NT. This is a build with all the runtime checks and debug in place. If you don't have a checked build, you can get a dummy version by installing a checked service pack onto a free install. To do this you have to first extract the checked kernel out of the service pack and replace your current kernel with it. Then after you reboot you can install the checked service pack. It goes without saying that you are not going to do this on a machine which you are remotely interested in using for any other purposes. If all of this seems like too much, don't worry. My install program will allow you to install the driver and not load it during boot. This means that you can safely use it on a normal NT machine and if something goes wrong during the boot procedure, you are not stranded with an NT machine that will not boot. Last modified 20031008 |