Why is my hard drive smaller than the advertised capacity?

Discussion in 'SSDs & Data Storage' started by UICompE02, Sep 19, 2008.

  1. UICompE02

    UICompE02 SCSI Master

    Messages:
    867
    Joined:
    Jul 16, 2001
    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.
     
  2. MR_PERFECT

    MR_PERFECT Gawd

    Messages:
    730
    Joined:
    Jan 30, 2008
    I wish they would adopt this method of reading,if it would give us more space.
     
    Last edited: May 5, 2009
  3. cyr0n_k0r

    cyr0n_k0r [H]ardness Supreme

    Messages:
    5,395
    Joined:
    Mar 30, 2001
    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.
     
  4. overclockers

    overclockers n00bie

    Messages:
    40
    Joined:
    Jun 15, 2009
    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.
    [​IMG]
    Too bad my work didn't do that with my paychecks.
    Nearest thousandth please :)
     
  5. Yoshiyuki Blade

    Yoshiyuki Blade 2[H]4U

    Messages:
    2,912
    Joined:
    Aug 17, 2005
    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.
     
  6. Dario D.

    Dario D. Gawd

    Messages:
    582
    Joined:
    Dec 8, 2004
    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."
     
  7. kodek64

    kodek64 n00bie

    Messages:
    35
    Joined:
    Oct 26, 2007
    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).
     
  8. shiky

    shiky n00bie

    Messages:
    21
    Joined:
    Sep 30, 2009
    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?
     
  9. REDYOUCH

    REDYOUCH [H]ardness Supreme

    Messages:
    4,524
    Joined:
    Mar 17, 2001
    Your motherboard/storage controller needs to support 48-bit logical block addressing.
     
  10. LittlePud

    LittlePud [H]Lite

    Messages:
    105
    Joined:
    Aug 17, 2009
    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
     
  11. Alpha736

    Alpha736 Limp Gawd

    Messages:
    220
    Joined:
    Aug 17, 2004
    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?
     
  12. Alpha736

    Alpha736 Limp Gawd

    Messages:
    220
    Joined:
    Aug 17, 2004
    I do the same thing, I hate how HDDs aren't sold as such.
     
  13. Wodz

    Wodz n00bie

    Messages:
    21
    Joined:
    Dec 7, 2009
    *cough* MBR *cough*
     
  14. film42

    film42 n00bie

    Messages:
    4
    Joined:
    Dec 15, 2009
    One thing I always forget is how much space the filesystem its self will take up. Just throwing that out there..
     
  15. trasixes

    trasixes Gawd

    Messages:
    622
    Joined:
    Feb 18, 2010
    You know i remember wondering why also,eventualy i just stopped noticing.
     
  16. Morazl

    Morazl [H]ard|Gawd

    Messages:
    1,149
    Joined:
    Jun 13, 2003
    If you are running Snow Leopard it displays disks as their advertised size.
     
  17. 3nD3aV0uЯ

    3nD3aV0uЯ n00bie

    Messages:
    4
    Joined:
    Jun 5, 2010
    Thanks for the info, have always wondered this.
     
  18. Chimel

    Chimel Gawd

    Messages:
    986
    Joined:
    Jul 19, 2010
    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...
     
  19. Red Squirrel

    Red Squirrel [H]ardForum Junkie

    Messages:
    9,306
    Joined:
    Nov 29, 2009
    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.
     
  20. drescherjm

    drescherjm [H]ardForum Junkie

    Messages:
    13,628
    Joined:
    Nov 19, 2008
  21. drescherjm

    drescherjm [H]ardForum Junkie

    Messages:
    13,628
    Joined:
    Nov 19, 2008
    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
     
  22. Zarathustra[H]

    Zarathustra[H] Pick your own.....you deserve it.

    Messages:
    23,437
    Joined:
    Oct 29, 2000
    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.
     
  23. drescherjm

    drescherjm [H]ardForum Junkie

    Messages:
    13,628
    Joined:
    Nov 19, 2008
    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: Oct 5, 2010
  24. Chimel

    Chimel Gawd

    Messages:
    986
    Joined:
    Jul 19, 2010
    Let's keep the sticky threads strictly on topic, or the reference information will be lost in the middle of the discussions.
     
  25. DangerIsGo

    DangerIsGo 2[H]4U

    Messages:
    2,975
    Joined:
    Apr 16, 2005
    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 :)
     
  26. Zarathustra[H]

    Zarathustra[H] Pick your own.....you deserve it.

    Messages:
    23,437
    Joined:
    Oct 29, 2000
    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
     
  27. DangerIsGo

    DangerIsGo 2[H]4U

    Messages:
    2,975
    Joined:
    Apr 16, 2005
    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 :)
     
  28. thebaest

    thebaest Limp Gawd

    Messages:
    183
    Joined:
    Oct 2, 2009
    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!
     
  29. kodek64

    kodek64 n00bie

    Messages:
    35
    Joined:
    Oct 26, 2007
    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.
     
  30. Red Squirrel

    Red Squirrel [H]ardForum Junkie

    Messages:
    9,306
    Joined:
    Nov 29, 2009
    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?
     
  31. kodek64

    kodek64 n00bie

    Messages:
    35
    Joined:
    Oct 26, 2007
    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.
     
  32. Zarathustra[H]

    Zarathustra[H] Pick your own.....you deserve it.

    Messages:
    23,437
    Joined:
    Oct 29, 2000
    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.
     
  33. Zarathustra[H]

    Zarathustra[H] Pick your own.....you deserve it.

    Messages:
    23,437
    Joined:
    Oct 29, 2000
    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.
     
  34. powdermnky007

    powdermnky007 [H]Lite

    Messages:
    64
    Joined:
    Dec 3, 2009
    There is a difference between GB and GiB
     
  35. kodek64

    kodek64 n00bie

    Messages:
    35
    Joined:
    Oct 26, 2007
    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: Feb 16, 2011
  36. thebaest

    thebaest Limp Gawd

    Messages:
    183
    Joined:
    Oct 2, 2009
    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 ^^
     
  37. Red Squirrel

    Red Squirrel [H]ardForum Junkie

    Messages:
    9,306
    Joined:
    Nov 29, 2009
    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.
     
  38. Zarathustra[H]

    Zarathustra[H] Pick your own.....you deserve it.

    Messages:
    23,437
    Joined:
    Oct 29, 2000
    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.
     
  39. thebaest

    thebaest Limp Gawd

    Messages:
    183
    Joined:
    Oct 2, 2009
    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