Why are hard drives never as large as advertised?

08
2014-07
  • Sam152

    From all the hard drives I have bought, they never seem to be as large as the advertised price; from 320GB down to 290GB, from 500GB down to 450GB, etc. Is there a technical reason for this?

  • Answers
  • Kyle Cronin

    The technical reason is that the hard drive manufacturers sell you capacities in metric units. So a GB = 1,000,000,000 bytes by the metric system. However, computers measure the drive size in powers of 2. So 1GiB = 1,024MiB, 1MiB = 1,024KiB, etc. What this means is that 1GiB = 1,073,741,824 bytes, a difference of 73,741,824.

    So when you install your 1GB (for the sake of example) drive, the OS only sees 0.93GiB, and this is the cause of the discrepancy.

    (If you've never seen the abbreviation GiB before, it's a new notation adopted to denote powers of 1024 as opposed to 1000. However, most operating systems will report GiB as GB, confusing this issue even further)

  • Christophe C

    It's because hardware vendors are not selling 4GB but 4 000 000 000 bytes.

    4 000 000 000 / (1024^3) = 3.72 GB.

    Same story with hard drive disks.

  • raven

    When a drive manufacturer creates a 500 GB capacity drive, it does have a capacity of 500,000,000,000 bytes, and they are sure going to advertise it as such. Computers, being binary devices, prefer powers of two, with a different set of prefixes, so that is what they use for storage space measurement:

    1 kibibyte = 2^10, 1 mebibyte = 2^20, 1 gibibyte = 2^30, etc.

    For instance, I have a 300 GB drive attached to this machine and Windows displays the following for the capacity:

    Capacity:          300,082,855,936     279 GB
    

    300,082,855,936 / 2^30 = ~279. What it is actually showing you is the drive's size in gibibytes, not gigabytes. So, it should read:

    Capacity:          300,082,855,936     279 Gi
    

    One might say this is a flaw in Windows, but apparently there is no definitive standard for storage capacity prefix meanings. Lots more good info, including a section on "Consumer confusion", in this Wikipedia article.

  • Stephen Jennings

    See this article for an explanation.

    Basically, there are two definitions of a "gigabyte". One definition is that 1GB = 10243 bytes. This is the definition that the computer reports (for technical reasons).

    The other definition (from SI units) is that 1GB = 10003 bytes. This is the same as every other metric unit ( 1 gigameter = 10003 meters).

    Since the metric definition of a gigabyte is less than what the computer considers a gigabyte, hard drive manufacturers use the metric definition because they can print a larger capacity on the box.

    A small amount of space is also used by the file system itself, but most of the missing capacity is from the definition of a gigabyte.

  • Hastur

    Originally this was the answer to this question (merged) about 4GB pen drive.

    Let's we start from the statement: "Human system is based on power of 10, binary on on power of 2"
    What it follows can give a first answer to your question.

    The metric prefixes are power of 10, 1000 or 10^3 is k, 10^6 is M, 10^9 G...
    The binary prefixes are power of 2 ( 2^10 = 1024 not so far from 1000 but different, 2.4%).

    4000000000/1024/1024/1024  Your 4GB are 4 000 000 000 Bytes
    3.72529029846191406250     That becames around 3.73 GiB 
    

    Vendors and Law: Vendors behave following market's rules, when laws do not force them to do otherwise. 4 sells better then 3.78. For the same reasons the internet providers often speak about bps and let you understand Bps. There is a factor 8: a Byte(B) is 8 bits(b).

    The problem is that the laws exist, but not in all the nations are the same.

    The International System, or SI, is the most widely used in the world for commerce and science (It was published in 1960 and at present are partially out only USA that is adopting, Burma and Liberia).
    It establishes not only the units of measurement but even the prefixes.

    Since it is natural in the computer world the use of a numeric base in power of 2 (and not 10 as in human world) it was introduced in 1998 the system of the binary prefixes. Here directly the table. Nowadays we find in the situation that

    the International Electrotechnical Commission (IEC) and several other standards
    (NIST...) and trade organizations approved standards and recommendations 
    for a new set of binary prefixes that refer unambiguously to powers of 1024
    

    When you read 1GB it should be 1 000 000 Bytes,
    instead when you read 1GiB it should be 1 073 741 824 Bytes.

    Why still should be and not is? Because it depends from how the legislator of the nation in which is produced the item and the legislator of the nation in which the item is imported adopt and transform in law the directive of the international commissions.

    So keep your eyes well open.

    (Even because in several nations it is prescribed to write the informations to fulfill the duties of law on an adhesive label. Usually it is so little than you really need to keep well open your eyes to read read it)


    Additional References

  • Svish

    They actually usually are as large as they are advertised, but:

    1. They always (as far as I know) use 1000 instead of 1024 when doing B to KB and so on.
    2. Some small amount of space is used by the file system to keep track of everything.

    May be other reasons too, but those are the major ones I know about

  • Dennis Janssen

    In the old days of computers every calculation was expensive (in the performance sense). Programmers used all kind of shortcuts to do as little calculations as possible. One of those tricks was to store the year part of a date as only two digits, which ultimately led to the y2k problem. Another trick was that they defined 1k (kilo) to not mean 1000 as everyone else in the civilised world did, but to mean 1024 instead. This allowed them to cut a few corners when doing size calculations. That habit stuck and is still being used today although computer calculations have become so much cheaper.

    The hardware manufacturer is giving you the proper size where K=1000, M=1000000 and G=1000000000. It's the software that's giving you false values.

    Software manufacturers are changing their habits nowadays. OSX for example shows the proper size.

  • Simon P Stevens

    Because in technical terms 1Gb = 1024Mb (1,073,741,824 bytes), but in marketing terms 1Gb is 1,000,000,000 bytes.

    http://en.wikipedia.org/wiki/Gigabyte#Consumer_confusion

    That, and you lose some space with stuff like allocation tables, boot records and stuff.


  • Related Question

    Windows is losing access to a hard drive. Is this drive failing?
  • Jay Sheridan

    Recently I've gotten some errors relating to a particular hard drive. Like so:

    Windows was unable to save all the data for the file [System Volume Information, $MFT, and similar windows places] The data has been lost. This error may be caused by a failure of your computer hardware or network connection. Please try to save this file elsewhere.

    It was locking up my computer after it happened. I ran the ScanDisk/chkdsk XP equivalent error-checking tool. I ran a virus scan which seemed to pick up a few things. And, I swapped the power cable connected to the drive. After all this, the problem seemed to go away.

    Today, similar issues have come back. The computer has even locked up on boot at the Windows log-in screen several times. I believe the computer is losing its connection to the drive somehow. Once, XP didn't even recognize the drive. I did notice before that the drive was not showing its name in the Device Manager. It just showed something generic like "Disk Drive". I currently have it unplugged so I can boot my machine without it locking up. Are these symptoms of a failing hard drive?

    My other thought was that the PSU is failing or doesn't have enough power. Is this a possibility? The PSU is probably over six years old now. Most other parts have been swapped out at this point.

    The drive is a 320GB Seagate Barracuda 7200.10 ST3320620A, and it's been working fine for about a year. I got a new CPU and had to replace the motherboard about six months ago.

    Edit: I finally found another PSU to test with, and I'm pretty sure it isn't that now. I've found that I'm able to pick off a few files under linux before the drive stops working. It doesn't like to copy large or multiple files. Maybe a sign of bad sectors as has been mentioned in several answers already?


  • Related Answers
  • Peter Mortensen

    Yes, these symptoms are for a failing hard drive.

    But I would first rule out the PSU as the source of failure by replacing it (e.g. from some other computer or a brand new one).

    It is most likely bad blocks on the harddisk.

    I use SpinRite to save data in bad blocks. Even if there are a few unrecoverable bits in a sector (4096 bits) SpinRite will save all other bits and thus there is a much higher probability that the data can be saved (those bits may not be used by the file system or some file).

    If SpinRite finds any unrecoverable data I would copy all the data onto a new harddisk and discard the old one.

    SpinRite is a commercial program (USD 89.00) and is available from http://www.grc.com/sr/spinrite.htm .

    I have never experienced it, but please note that by running SpinRite you may push the harddisk over the edge if it is about to fail completely. Thus try to save as much as possible BEFORE you run SpinRite.

  • kishore

    It doesn't sound like this is an issue with PSU and very well could be a signal for failing drive. Did you take a backup of the data?. It may be worth checking with spin rite.

  • Jay Sheridan

    Seagate has a good support website for warranty and returns with plenty of help on determining what is wrong and what to do. I had tried SeaTools for windows, but by that time the drive was too far gone. I realized there was a SeaTools for DOS recently and gave that a go. The "short test" came back failed as incomplete. The "long test" came back with the error that the drive had stopped responding to commands shortly after starting the test. Each test started with the warning that the drive was giving an over-temperature error with a temperature of greater than 70C. I expect this to be bunk because the drive was not plugged in less than five minutes before the tests. This confirms for me that the drive is dead, and I suspect it's a mechanical or electrical problem, rather than bad sectors.

    For the record, I called Seagate's data recovery company to get an estimate. The support tech said that in-lab recovery starts at around $300, and in my particular case, he expected the price to be around $1700. Unfortunately, that's way too high for me. What data I haven't recovered yet myself isn't worth that much.

    Also for the record, as a last ditch effort before sending the drive back, I tried the freezer trick, and on one attempt the drive actually lasted over a full day without crashing. It may have lasted longer, but after I got all the data I needed, I shipped it back to Seagate for a replacement. I don't trust the thing any more, even if it was "working."

  • Axxmasterr

    Spin Rite is indeed a useful tool to regenerate the data on a failing drive. SR in many cases can extend the life of a failing drive due to physical errors however it has little ability to recover from a drive having a chain reaction break down.

    In those cases you might have to get an identical drive and copy the data. If it fails completely you will need break the old and new drive apart to make a frankendrive to get your data.

    Just replacing the circuit board on the drive is a piece of cake compared to having to pull out the platters and rebuild the drive in the new chassis. I won't get into the procedure here, but needless to say you will have fun assembling your own sub 3 micron HEPA filtration work area.

  • Nosredna

    I have a drive that died to Windows. Scared the heck out of me. Luckily, Ubuntu reads it just fine. You might try reading with Linux before assuming your drive is dead.