Ext2IFS v0.3
Written by John Newbigin jn@it.swin.edu.au
Copyright (C) 2004 John Newbigin
http://uranus.it.swin.edu.au/~jn/linux/ext2ifs.htm

Welcome to EXT2IFS.  Please read this information 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
File System (EXT3).  The driver is read only.


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:
- Windows NT 4.0 Service Pack 6a.
- Windows NT 5.0 Service Pack 3. (Often called Windows 2000)

The driver has not been tested but should work on the following operating
systems:
- Windows NT 5.1 (Often called Windows XP)
- Windows NT 5.2 (Often called Windows .NET)

The driver has not been tested and probably will not work on the following
operating systems:
- Windows NT 3.1
- Windows NT 3.5
- Windows NT 3.51

The driver will NOT work on the following operating systems:
- Windows 95
- Windows 98
- Windows ME
- DOS
- Windows 3.1*
- Win32s*
- Linux
- OS2
- any other operating system you can think of.

(* Strictly speaking these are not a OS)


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:
- Asynchronous IRP completion
- Write anything
- FASTIO
- Notification
- Locking
- OpLocks
- wildcard directory listings
- Use removable media (floppy disks)


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):
- Assign a drive letter to the volume
- Mount the volume on an empty NTFS directory
- Mount the volume on any EXT2 directory (Not Yet Implemented)

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.

In Windows XP, a volume object is not created for linux filesystems.  This means
that you can not use the NT 5.0 methods of drive letter assignment.  The NT 4
method is available but a reboot is required to activate any changes.  This might
be fixed in the future.  Anyone with any info please contact me.


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.



    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    The GNU General Public License is also available from:
    http://www.gnu.org/copyleft/gpl.html

