Skip to main content

The Storage Guide

The File System

If you purchase a new harddisk it is physically pre-formatted . This means that the cylinder, track and sector information is already written onto the disk. You now have to partition the disk to prepare it for the logical formatting and writing the partition information and boot sector to the disk. You don't have to use (or you aren't able!) the whole harddisk with one partition. You can divide it in several partitions. Depending on the operating system there are several file systems option. Famous file systems are FAT (DOS, Windows), NTFS (Windows NT) and HPFS (OS/2).

FAT12/16

DOS, including DOS 7.0 of Windows95 uses the FAT (File Allocation Table) filesystem to store data to floppies- and harddisks. The FAT organizes several sectors into clusters and uses 12 or 16 bit cluster address numbers. The 16 bit FAT is able to address up to 65526 clusters (some are used for special purposes). A cluster can be as big as 32 kBytes, which translates into a maximum partition size of 2 GBytes. The side effect is that every file takes up at least 32 kBytes, even if it is only one kByte in size. That is the reason why power users like us divide a harddisk into slightly less then 512 MBytes per partition - then 'only' 8 kBytes per cluster are used and you don't waste to much of your limited space on the harddisk. You can check your cluster size with chkdsk.exe at the DOS-prompt. Partition magic is a utility that lets you change partition size without loosing the data on your harddisk.

Overview of partition size and correspondending cluster size
Partition sizeCluster size
2 GByte32 kByte
<1 GByte16 kByte
<512 MByte8 kByte
<256 MByte4 kByte
<128 MByte2 kByte

Some more info about FAT32 can be found at Windows 95 OSR2 FAQ .

The Windows95 OEM service Realease 2 (Version 4.00.1111, DOS 7.1, shows as version 950b) now ships with a FAT size of 32 Bits. 4 Bits are reserved, hence 228 clusters can be addressed. This allows for partitons of up to 8 GBytes with clusters of only 4 kBytes in size. The maximum size of a partition is 2 TByte (2048 GByte). Compared to FAT16, FAT32 doesn't have a fixed size for the root entries, so you can now store as many directories and files you want in the root of your drive. Without changes, DOS applications can only access files which aren't bigger than 2 GBytes, and Win32 applications can work with files up to 4 GBytes. Wow! you think, that's great. Yes, I got really excited about these features, but don't stop reading here!

FAT32 partitions are only accessible from this new Windows95 and the included DOS 7.1. No other operating system can access any data, including the really new Windows NT 4.0. All disk utilities that aren't written for FAT32 wont work correctly with the new file system. If you are lucky, your disk utilities just wont work. If you aren't lucky, they will destroy your data.

The ever changing LINUX now supports FAT32 partitions and there is a utility called MTOOLS which supports FAT32 for UNIX systems. (Thanks flies to David C Niemi)

Just today the release version of WinImage is released. This nice utility lets you use FAT32 partitions with Windows NT! (Thanks flies to Gilles Vollant)

Eventually third party vendors offer FAT32 drivers for Windows NT 4.0 and Windows 2000 will have native FAT32 support.

Windows95 OSR 2 ships with new versions of FDisk, Format, Scandisk and Defrag that can work with FAT32 partitions. However, the included DriveSpace3 doesn't! You can't use DriveSpace3 with FAT32 partitions! But that's not all: There are existing API's that don't work with FAT32 partitions, so some of your programs might not work as well. MS-DOS block device drivers like the often needed ASPIDISK.SYS for SCSI drives have to be revised to work with FAT32 drives! You now know how excited I was after I discovered that I can't access my SCSI harddisk in DOS 7.1 anymore, because I use it without BIOS support, only via a device driver.

But that's not all! There is a noticeable decrease in performance with FAT32 drives compared to FAT16 drives! I first noticed this when I defraged my harddisk - the operation took much longer than usual. I wanted to be sure, so I tested the harddisk with Winbench. The DiskWinmark96 for an EIDE harddisk decreased by about 3% with Windows95 build 1111 FAT32 vs. FAT16. Under Windows95 build 1111 with FAT32 compared to Windows95 build 950a with a FAT16-drive of same size, the DiskWinmark96 decreased about 6%. The accessing of many small files was recognizably slower. Not only FAT32 is slower (which is due to the larger amount of clusters), the new build of Windows95 is slower with harddisk access in general! This doesn't mean that FAT32 is necessarily slower, this means that Microsoft did something with harddisk access in their new Windows95 OSR 2 that decreases harddisk performance in some way. It is not the EIDE driver; I also measured and saw performance decrease with other EIDE-drivers.

The application benchmark Winstone96 wasn't affected very much by this behavior. I always measured lower values with the newer build and also with FAT32, but that could have been from measuring errors. The difference was too small to say it is affected. Unfortunately, the BAPCo doesn't run on the new build of Windows95, but I guess it also won't show much difference in performance. That is due to the very small impact of the harddisk on these benchmarks. It would play a greater role if you only had 8 MB RAM.

Conclusion

If you can, use build 950 (version 950a) of Windows95 and use partitions close to 512 MBytes with 8 kByte clusters. If you have build 1111 (version 950b) of Windows95 you can also use FAT32 drives with 4 kByte clusters to save space, especially with bigger partitions. Or to get rid of all these problems use another operating system which uses a different file system ;)

The OSR2 DOS command 'FORMAT' has an undocumented switch '/Z:n' where n * 512 Bytes = cluster size, so you can set your own cluster size! The default cluster size is 4096 Bytes = 4 kByte. But be careful, smaller cluster size means millions of clusters, hence the management of them consumes more time.

Of course, there is a performance hit (look above!), which is measurable with benchmarks, but hardly recognizable by human. But it's getting really worse if you SCANDISK or DEFRAG (DISKDOCTOR or SPEEDDISK with Norton Utilities) your disk.

I formatted a 2.5G EIDE disk with clusters of 1024 Bytes size. (512 Bytes is not possible). Yes, I dare nothing! ;) Now the 2.5G HDD has 2,480,338 (yes, nearly two and a half million) clusters of 1024 Bytes. Even the FORMAT command warned me that this cluster size is very small and may result in a performance impact! Nice, but who trusts programs?

I put back about 1.2 GByte of data and programs and was first impressed about the larger amount of free space. Then I run SPEEDDISK ... it is ridiculous! I am not a programmer and have no insight of how disk utilities works, but it seems that they hold the whole FAT and some more stuff in memory. The size of SPEEDDISK in memory swallowed up to 50 MBytes while optimizing the disk! Currently my poor PC only have 32 MB of RAM. So Windows started to swap around.

Similar problems with SCANDISK and DISKDOCTOR: They work for ages messing around with the millions of clusters. You better run these programs alone with nothing else loaded and don't disturb them in any way!

The DOS version of SCANDISK and DISKDOCTOR are running endless while checking the allocation table. DISKDOCTOR for DOS eventually ended up with a low memory error. Hmm, I wonder why the heck it wants to store everything in memory? Now I turned off the automatically check of the harddisks at bootup after a Windows95 crash. As stated before, the Windows version of these programs are slower now, but that's nothing compared to the DOS versions!

So what? All I want to say is: Use the /Z switch of the FORMAT command with care and use partitions! Microsoft better had build NTFS into Windows95. I've never seen such problems with NTFS. (I guess all Linux freaks are laughing now! ;)