NTFS
Support for Floppy Disks Copyright © 1997 Mark Russinovich |
|
Last
Updated October 6, 1997
|
|
Introduction | Windows
NT has never supported NTFS floppy disks, because Microsoft claims that
floppy disks are too small for NTFS data structures. NTFSFlp, a
program that will both format and enable NTFS support on floppy disks,
proves this to be wrong. Now you can see for yourself why NTFS on
floppies, while possible, is not a great idea. NTFSFlp works only on NT 4.0 and requires administrative privilege to run. |
Using NTFSFlp | Note: NTFSFlp should be run before
you access your floppy drive for the first time after a reboot of your
machine. If you mount a FAT drive and then run NTFSFlp, the FAT file
system driver will crash the machine when the characteristics of the
floppy drive change out from under it (see How It Works, below, for more
information). The first thing you will want to do is to format an NTFS floppy. Insert a floppy into your a: drive and enter "ntfsflp /f". Once the format is complete you will be able to access and write to the NTFS floppy in the same way as FAT floppies. You will notice is that there is significantly more disk activity, even when simple operations are performed, on the NTFS flopppy than would occur on a FAT floppy. In addition, disk activity will continue for some time after you perform a modification of the data on the floppy. For this reason, I have included ntsync in this package, so that you can flush data onto an NTFS floppy before removing it. NTFS floppy support must be enabled with NTFSFlp before you can access an NTFS floppy disk. Support is automatically enabled when you format an NTFS floppy, but can also be enabled by running NTFSFlp and not specifying any command-line arguments. You would need to do this if you created an NTFS floppy disk, rebooted the system and wished to access the floppy again. NTFSFlp is a demonstration of NTFS floppy-disk support. It is not envisioned that anyone would want automatic NTFS floppy-disk support every time you run NT, so NTFSFlp must be used to manually enable support. |
How NT Prevents NTFS on Floppies | Windows
NT actually goes to some lengths to prevent a user from creating an NTFS
floppy disk. The first line of prevention is in the format
utility. If a user specifies an NTFS format, format checks to
make sure that the media is not a floppy. Then it checks to see if the
medium is large enough to fit "minimum" NTFS on-disk data
structures. Finally, it attempts to make an NTFS log file that is 2MB in
size - an operation that will obviously fail on a 1.44MB floppy. If you manage to get past these hurdles and get NTFS on a floppy, the NTFS driver itself will fail to mount floppy disks. Further, NTFS requires that the device driver for the media it is mounting implement the IOCTL_DISK_GET_PARTITION_INFO device I/O control call, something that floppy disk drivers are not required to do (and generally don't). |
How It Works | Using
SoftICE for Windows NT I was able to trick format into
creating an NTFS floppy disk with a log file that is only 256KB in size.
This is large enough for NTFS to be able to function, and leaves 1MB of
space on the floppy after NTFS structures have been created. To format
an NTFS floppy, NTFSFlp copies the image of the NTFS floppy I
created onto other floppy disks. To trick NTFS into mounting an NTFS floppy, NTFSFlp loads a device driver, flpflt.sys, that changes the characteristics of the floppy disk device so that it does not look like a floppy. Flpflt also intercepts Device I/O Control calls that are directed at the floppy and implements IOCTL_DISK_GET_PARTITION_INFO. Note that flpflt.sys is not a filter driver - it reaches into the floppy0 device object and changes its characteristics, and replaces the IRP_MJ_DEVICE_CONTROL vector in the floppy driver's request handler table to point at its own. This technique is an example of another way to intercept and control requests that are sent to a device, and is in many senses actually more powerful than filtering in the traditional NTFilemon way. |
Is it useful? | NTFS
floppy disks could be useful for storing compressed files on a floppy.
In addition, NT 5.0 NTFS supports encryption, which would make it
possible to have secure floppy disks. If you find some other use for
NTFS floppies, drop me a note. |
|
|