Why is my hard drive smaller than the advertised capacity?

UICompE02

SCSI Master
Joined
Jul 16, 2001
Messages
866
We've had many questions regarding why hard drive capacities are always smaller than the amount they are advertised to contain.

The difference in capacities is due to two different methods for defining what exactly the prefixes mega, giga, tera mean. In the computer world, these prefixes have different meanings depending on what exactly you are talking about. Hard drive manufacturers report the size of hard drives using the decimal definition of these terms (10^6, 10^9, 10^12 resepctively), whereas operating systems and other software use the binary definition of these terms (2^20, 2^30, 2^40).

As you can calculate, these values are close, but not exactly the same. 10^6 is 1,000,000, but 2^20 is 1,048,576. Once we get to larger hard drive sizes, the difference really becomes noticeable.

One gigabyte in binary is 1,073,741,824 bytes (2^30), but in decimal it’s only 1,000,000,000 bytes (10^9), which is a difference of 73,741,824 bytes (~70MB). So, when we're talking about storage size in gigabytes a hard drive's capacity as reported by the OS will be about 7% less than what is advertised by the hard drive manufacturer.

One solution to this is to talk about computer storage using Binary Prefixes so that there is no confusion about the exact amounts being talked about. In that system, a Gibibyte (GiB) is always 2^30 exactly. But, I wouldn't expect storage device manufacturers to adopt this method any time soon.
 
I wish they would adopt this method of reading,if it would give us more space.
 
Last edited:
40GB = 37GiB
80GB = 74GiB
100GB = 93GiB
120GB = 111GiB
160GB = 148GiB
200GB = 186GiB
250GB = 232GiB
300GB = 279GiB
320GB = 297GiB
400GB = 372GiB
500GB = 465GiB
750GB = 697GiB
1000GB = 930GiB

This table helps me all the time.
 
Lol I have always though its just the way its formatted from the company.
I think on the box for the device it wil actually say the correct size.

Everyone like to Round up you guys know that.
signature_gtx285.jpg

Too bad my work didn't do that with my paychecks.
Nearest thousandth please :)
 
Great post! I get this question from people all the time as well. The general rule I use to make it easy to remember is that:

1 Kilobyte is NOT 1 thousand bytes (1000), its 1024 bytes
1 Megabyte is NOT 1 milllion bytes (1000*1000), it's ~1.048 million bytes (1024*1024)
1 Gigabyte is NOT 1 billion bytes (1000*1000*1000), its ~1.073 billion bytes (1024*1024*1024)

and so on...

So for example, what we're buying is not a 500 Gigabyte hard drive, but rather a ~500 billion byte drive. A true 500 GB hard drive would be ~536.87 billion bytes.
 
Just goooooooooo figure that businesses would choose to give us the "it's-smaller-than-you-think" labeling, and not the other way around. (you know, why couldn't they make the HDD's a little BIGGER than it says on the box? Instant brand-loyalty.)

Doesn't this give each company's PR a massive setback, with all the people who see their drives smaller than it says on the box... and yet they're still doing this? Might as well put a sticker on each box that says, "Comes with a $5 restocking fee, just for buying."
 
So for example, what we're buying is not a 500 Gigabyte hard drive, but rather a ~500 billion byte drive. A true 500 GB hard drive would be ~536.87 billion bytes.

Unfortunately, the storage manufacturers are right. They're using the correct SI prefixes, whereas operating systems are not. Operating systems should either re-label the storage units to the binary prefixes, or start reporting the actual storage space (which I think Apple started doing with Snow Leopard).
 
well i have a similar question... the hdd i bought was advertised as a 1TB drive, but when i open the properties of my c: drive, its only 128GB. whats up with that?
 
well i have a similar question... the hdd i bought was advertised as a 1TB drive, but when i open the properties of my c: drive, its only 128GB. whats up with that?

Your motherboard/storage controller needs to support 48-bit logical block addressing.
 
Maybe I'm just too old-school -- I always think about storage in binary. When I need to make a 8 GB partition I'll create it as 8192 MB. :p
 
I really suck hardcore at math, but isn't there a simple equation to figure out how much space a HDD will appear to the OS as?

For example, if I have a HDD that is advertised as 640GB, what would the equation be to convert that to what the OS would see?
 
One thing I always forget is how much space the filesystem its self will take up. Just throwing that out there..
 
You know i remember wondering why also,eventualy i just stopped noticing.
 
If you are running Snow Leopard it displays disks as their advertised size.
 
Updating cyr0n_k0r's post:

40GB = 37GiB
80GB = 74GiB
100GB = 93GiB
120GB = 111GiB
160GB = 148GiB
200GB = 186GiB
250GB = 232GiB
300GB = 279GiB
320GB = 297GiB
400GB = 372GiB
500GB = 465GiB
750GB = 697GiB
1TB = 930GiB = 0.91TiB
1.5TB = 1,397GiB = 1.36TiB
2TB = 1,863GiB = 1.82TiB
3TB = 2,794GiB = 2.73TiB
1PB = 0.888PiB
(planning for tomorrow)

Windows is not even consistent in its notation when it comes to terabytes: A 3TB disk is shown as 2,795GiB in Disk Management, but as 2.72TiB in Windows Explorer. Both numbers are correct, except Windows Explorer does not round it, it just adds another layer of confusion.
And of course the manufacturers don't have disks that are exactly 3 trillion bytes, more like 3,000,582,139,904 bytes, hence the extra GiB in Disk Management. ;)

Plus there's these SSDs that reserve a bit (a bite, a byte?) of the NAND memory for their controller's usage, so you sometimes see lower usable capacities for what are really 64 or 128GB disks, such as 50 or 100GB, but at least they advertise the usable capacity, not the total capacities of the chips.

That went well, I think...
 
I never understood why vendors give deceiving numbers. Why can't they just make a true 1TB drive or 2TB drive. Is that extra couple GB really that hard to fit on the platters?

I also noticed in Linux the numbers arn't consistent. Ex: fdisk vs df. fdisk shows the "wrong" number while df (and du I think) show the correct one:

Code:
[root@borg ~]# fdisk -l 2>/dev/null| grep /dev/md0
Disk /dev/md0: 2000.4 GB, 2000404348928 bytes
[root@borg ~]# df -hl 2>/dev/null| grep /dev/md0
/dev/md0              1.8T  1.6T  181G  90% /raid1
[root@borg ~]#

And yeah I know, I'm cutting it close, but hey, at least I still have more space left then the SAN at work! Guess it depends on the person's interpretation of KB, MB, GB, TB etc. Normally kilo means 1000, but when talking about space in computers, it's 1024. Some vendors/software coders still go by kilo meaning 1000.
 
In fdisk GB is the correct unit. 2000 GB is about 1863 GiB

Linux uses GiB when talking about 1024 based storage.

Windows incorrectly calls GiB, GB in disk manager and explorer.

As for inconsistent between fdisk and df. There is a paramater that controls what K, G, and T mean. The default is KiB, GiB, TiB.

-H, --si
likewise, but use powers of 1000 not 1024
 
Unfortunately, the storage manufacturers are right. They're using the correct SI prefixes, whereas operating systems are not. Operating systems should either re-label the storage units to the binary prefixes, or start reporting the actual storage space (which I think Apple started doing with Snow Leopard).

What you fail to mention is that this was not the case until the IEC under strong lobbying from drive manufacturers adopted formal definitions of Gigabyte, etc in the ten base system in 1994.

Overnight sleazy hardware manufacturers switched their labeling in order to cheat consumers and be able to charge more money for the same drive sizes. Noone really complained much in those days, as the average drive sizes were pretty small, so it didn't have a huge impact.

Today with drives expressed in TB, the difference between the two methods is 10%! Thats 200GB on a 2TB drive.

It's disgusting and sleazy.
 
It's disgusting and sleazy.

This has been common practice in other pc components as well. I mean tape drives that you are lucky to get 1.5 to 1 compression but the manufacturer claims 2.0 to 1. And then there are manufactures that decided 2.0 to 1 was not enough. Our drives do 2.61 to 1 or 3 to 1 ridiculous! That assumes that you have no already compressed data at all to backup or a great percentage of your data is plain text files.

At the same time monitor manufacturers moved from measuring the diagonal as what you see to the outer dimension size of the tube which could be almost 2 inches larger than the visible display..
 
Last edited:
Let's keep the sticky threads strictly on topic, or the reference information will be lost in the middle of the discussions.
 
What I do which is the fastest way to figure out when I'm in a store or whatnot is take the advertised capacity (ie 500GB) and multiply by 0.93 on my phone (or in my head if I can do it :p). It gives me a rough estimate of what the true capacity will be so in this example:
500GB * 0.93 = 465GB
1TB * 0.93 = 930GB
and so on. That's another way than memorizing a big table, or trying to look up a table when you're not at a comp. Just memorize 0.93 :)
 
What I do which is the fastest way to figure out when I'm in a store or whatnot is take the advertised capacity (ie 500GB) and multiply by 0.93 on my phone (or in my head if I can do it :p). It gives me a rough estimate of what the true capacity will be so in this example:
500GB * 0.93 = 465GB
1TB * 0.93 = 930GB
and so on. That's another way than memorizing a big table, or trying to look up a table when you're not at a comp. Just memorize 0.93 :)

Almost correct.

Every time you increase your units one order of magnitude from kilo to mega to giga to tera, etc, the issue is compounded.

So:

KB: Multiply by 0.977
MB: Multiply by 0.954
GB: Multiply by 0.931
TB: Multiply by 0.909
etc.

So, using your analogy:

500GB * 0.931 = 465.5GB
1TB * 0.909 = 0.909TB = 931GB
 
Zarathustra[H];1036527573 said:
Almost correct.

Every time you increase your units one order of magnitude from kilo to mega to giga to tera, etc, the issue is compounded.

So:

KB: Multiply by 0.977
MB: Multiply by 0.954
GB: Multiply by 0.931
TB: Multiply by 0.909
etc.

So, using your analogy:

500GB * 0.931 = 465.5GB
1TB * 0.909 = 0.909TB = 931GB

Like I said, its a rough estimate. As long as you maintain units, youre OK. It's not meant to be an exact, it's just something I calculated over the years and it works for a quick calculation. But I will note that when we get into larger drives and TBs are as common as GBs now, I will use 0.9 instead of 0.93 :)
 
80g drive = 80,000,000,000,000 bytes (i think)
take 80,000,000,000,000 / 1024 / 1024 / 1024 / 1024 = 72.7 (what you get in gigs when you buy an 80g drive)
its a wierdass equation but thats what I always use to figure it out lol. IMHO its criminal to let HD manufacturers get away with marketing like that. FALSE ADVERTISING!
 
As annoying as it is, it's not false advertisement and it shouldn't be illegal. Hard drive manufacturers are using SI/metric prefixes, while operating system designers are using the binary equivalents.
 
But everybody knows that when it comes to bytes they are not measured entirely the same way as with SI/metric and it's 1024 and not 1000, so IMO yes, this has to change and should be illegal. They are selling a 72.7GB drive and saying it's an 80GB drive, which is false advertising. This gets worse as drives grow bigger. A 2TB drive is actually 1.8TB. You are gipped of 200GB of space! When you buy or sell hosting the space is advertised correctly in real MB, GB etc, so why should it be different when buying storage hardware?
 
They're not stealing anything from you because you KNOW that 1 GB != 1 GiB. The only people at fault are the ones who decided early in OS development that 1 KB ~= 1 KiB, and stuck with it as it's easier to code.
 
As annoying as it is, it's not false advertisement and it shouldn't be illegal. Hard drive manufacturers are using SI/metric prefixes, while operating system designers are using the binary equivalents.

What you neglect is that until a few years back these SI standards did not exist. ALL data was measured by the power of two format. They lobbied the international standards organization to change it so that they could mislead and screw over their customers.

THAT is unethical, and ought to have been illegal.
 
They're not stealing anything from you because you KNOW that 1 GB != 1 GiB. The only people at fault are the ones who decided early in OS development that 1 KB ~= 1 KiB, and stuck with it as it's easier to code.

Wrong. The 1024 bytes to the KB long predates the ISO standard and is the true standard for data measurement. The ISO standard that drive manufacturers use these days was just made up in the mid to late 90s solely to screw end users over. There was massive lobbying by memory and drive manufacturers to accomplish this.
 
Zarathustra[H];1036857106 said:
What you neglect is that until a few years back these SI standards did not exist. ALL data was measured by the power of two format. They lobbied the international standards organization to change it so that they could mislead and screw over their customers.

THAT is unethical, and ought to have been illegal.

That's not entirely true. The SI system existed long before this was an issue. Then memory started getting measured with powers of 2. It later became an issue as having different definitions for a prefix led to confusion.
This was dealt with in 1995 when the IEC decided that SI prefixes should follow the original powers of 10 definition, and a new set of binary prefixes would follow the powers of 2 definition.
Also, everything except for memory follows the powers of 10 measurements. This includes clock cycles, transfer speeds, and data storage.
 
Last edited:
hah, I wasnt as pissed as my post made it sound :p I know the equation and it really isnt that big of a deal to you or I, but how many calls a day do you think they get with something like "OMG my hard drive sucks its not as big as it says it is on the package!!!" and yes, you and I know why it is what it is, but the average joe (and sometimes the smarter joe) do not, hence the making of this thread ^^
 
hah, I wasnt as pissed as my post made it sound :p I know the equation and it really isnt that big of a deal to you or I, but how many calls a day do you think they get with something like "OMG my hard drive sucks its not as big as it says it is on the package!!!" and yes, you and I know why it is what it is, but the average joe (and sometimes the smarter joe) do not, hence the making of this thread ^^

Exactly. To me they should just show the actual amount and be done with it. Everybody knows that 1KB = 1024bytes, not everybody knows that hard drive manufacturers say 1KB = 1000bytes. The storage system does not really use the SI system exactly, it uses the same prefixes but is probably one of the only systems that does not follow the 1000 rule so why should manufacturers change that and treat it like a true SI system?

Some hard drives will even show on it 1KB = 1000 bytes... but why not just make the drive treat 1KB as 1024 and so on so it gives us a more "rounded" number? To make a true 1TB volume on a computer you need more then a 1TB hard drive. Why? Why not just sell a 1TB hard drive, as being 1TB? It can't be that hard.

I have a raid 5 array with 5 1TB drives. It would be easier to say that my array is 4TB, but in reality it is 3.6TB. That is 400GB of space that is "falsely advertised". The more space you have, the bigger this number is and it can really get deceiving when making a large storage purchase such as a SAN. Brick headed IT managers like mine who make these type of decisions will not know that a 10TB SAN is actually 5-6TB by the time you calculate the proper disk space and make your raid arrays. Guess who's in trouble when this is found out: The IT guy who set it up even though he did everything correctly.
 
Some hard drives will even show on it 1KB = 1000 bytes... but why not just make the drive treat 1KB as 1024 and so on so it gives us a more "rounded" number? To make a true 1TB volume on a computer you need more then a 1TB hard drive. Why? Why not just sell a 1TB hard drive, as being 1TB? It can't be that hard.

When you sell a bajillion hard drives in a year, even extra costs of a few pennies per drive start adding up to real money.
 
Zarathustra[H];1036857317 said:
When you sell a bajillion hard drives in a year, even extra costs of a few pennies per drive start adding up to real money.

where are the extra costs coming from? you still sell the same size drive for the same price you just put the 1024 size vs the 1000 size. Just an advertising change :) Yea I agree it would look awkward selling a drive advertising 909gb instead of 1000gb but at least I would feel better about myself :p
 
Back
Top