Why files may take up more disk space on Windows
If you check a folder's properties on Windows, values for the data's size and the data's size on disk are displayed to you.
These values may differ slightly or a lot, depending on the file system used and the type of files stored on the drive.
It can happen that you see a Gigabyte or more of a difference between the two values.
You can test this by right-clicking any folder or drive letter in Windows Explorer and selecting the properties option from the context menu.
It may take a while before the final values are displayed which depends largely on the files stored under the structure.
As you can see on the screenshot below, the values differ by 0.2 Gigabyte which is not much if you take the size into account. There are however situations where the difference may be much larger.
So why do the sizes differ?
The answer comes in the form of file systems and cluster sizes. Without going into too many details, each file system that Windows supports, e.g. NTFS or FAT32, uses so-called clusters.
A cluster is the smallest amount of disk space that can be used by a file.Â Microsoft notes on the topic:
Cluster size represents the smallest amount of disk space that can be used to hold a file. When file sizes do not come out to an even multiple of the cluster size,Â additional space must be used to hold the file (up to the next multiple of the cluster size).
Typical default cluster sizes:
- NTFS 2 GB - 16 TB drives - 4 KB
- FAT16 1 GB - 2 GB drives - 32 KB
- FAT16 2 GB - 4 GB drives - 64 KB
- FAT32 256 MB - 8 GB drives - 4 KB
Imagine this scenario: You have a 1 Gigabyte FAT16 drive connected to your PC. Stored on it is a folder that contains 1000 files that have a size of 1 Kilobyte each.
The size value in the properties dialog would display as 1,000 Kilobyte, while the size on disk value would display as 32,000 Kilobyte (1000x32KB) instead, a difference of 31,000 Kilobyte.
While each file has a size of 1 Kilobyte, each wastes 31 Kilobyte in addition as the cluster size of the drive is 32 Kilobyte.
This has become less of an issue under Fat32 or NTFS file systems as the cluster size is 4 Kilobyte by default on those systems. Some USB Flash Drives or old computer systems may however use FAT16 as the file system.
With increasing storage sizes, it is becoming an issue again. The cluster size of a 64 TB NTFS volume for instance is 32 Kilobyte.
Determine the cluster size of a hard disk
- Tap on the Windows-key on the keyboard and type cmd.
- Right-click cmd.exe and select run as administrator from the context menu.
- Run the command chkdsk drive letter (e.g. chkdsk d:) and wait for it to finish.
- Check the "bytes in each allocation unit" output. It is in bytes, if you want it in Kilobytes, divide the number by 1024. If you take the example above, 4096 bytes become 4 Kilobyte (4096 / 1024 = 4).
What can you do about it?
Depending on how the storage is used, you may be able to reduce the cluster size:
- Use Fat32 or NTFS instead of FAT16. This may not always be possible, for instance if the file system needs to be FAT16. If there is no such requirement, you may be able to free up lots of space on disk this way by changing the file system. You can use the command line tool CONVERT for this. To change the file system of drive d: to ntfs, you would run the command CONVERT d: /fs:ntfs on an elevated command prompt. There won't be any data loss.
- Partition the drive. If you reduce the size of each partition, you may be able to reduce the cluster size as well. A 512 MB FAT16 partition has a default cluster size of 16 KB for example, while a 1 GB partition one of 32 KB