From time to time some meticulous customer will ask us how come a fresh formatted hard disk or RAID array volume is smaller than the nominal capacity. For example when you format a 1TB hard disk the resulting drive appears to have 931 GB even though the hard disk label claims 1000GB. Where is the “missing” 69GB?
The problem is much more pronounced if someone formats a 16TB RAID volume and instead of the expected 16000 GB they only see 14896GB. This looks like a significant loss: 1104 GB. “We paid for 16000GB!” exclaimed one company controller.
This phenomenon arises because hard-disk manufactures and RAID array controllers count the capacity in a different way than the file system does. The prefixes kilo, mega, giga, and tera are used to state powers of ten. However in computer software the data being handled is typically organized based on powers of 2, so it became customary to call 2**10 a kilobyte, which was really 1024 bytes, not exactly 1000.
Storage hardware is using the base 10 system and software is using the base 2 system. So no storage is actually lost, it is just a question of how the information is represented.
The IEC has created a system of prefixes to differentiate between the base 10 and the base 2 systems. In base 2 the proper terms are kibibyte, mebibyte, gibibyte, and tebibyte. The “-bi-” refers to binary. In short they are KiB, MiB, GiB, TiB. But these are not frequently used.
But we need exact proof and want to know the math behind it.
Hard disk manufacturers assume: Kilo = 10 3 = 1000 (kB)
File system assumes: Kilo = 2 10 = 1024 (KiB)
Let us calculate kB, MB, and GB to KiB, MiB and GiB factors: