2023-02-16 update: this post is not about the “GB vs GiB” issue, or the “lost disk space” that you notice after formatting the device in an OS. Please read the article in full before making inaccurate comments online.

image

For many years, I have used two SanDisk Ultra 16 GB USB flash drives as OS installation media. Since I do not trust Ventoy yet, and alternative “one stick that does it all” solutions have had odd bugs from time to time, I prefer having separate physical USB sticks for each OS, one for Fedora Linux, and one for Windows 10.

I hate reflashing sticks all the time and would like to have at least one around that always has Fedora Linux on it, so I decided to get two more USB sticks of the same brand and size. Once they arrived, I got annoyed.

The old flash drive shows up like this in GNOME Disks.

image

Here’s the new one.

image

Although it does not matter one bit for my use case, I am annoyed that the new one is shipping with much fewer bits than the old one. I’m a whole 607125504 bytes short! That’s 579 MB, or about half a gigabyte.

The only difference that I can make out on the surface is that the new one was manufactured in Malaysia.

Other than years worth of wear and tear, they look almost identical.
Other than years worth of wear and tear, they look almost identical.

But it seems that SanDisk (or their new owner Western Digital) has legally covered their butt with this knowledge base article.

image

Here’s the line that explains why some bytes are seemingly missing on formatted media. This is what consumers are usually concerned about once they use their storage device.

SanDisk defines 1 GB as 1,000,000,000 bytes. Operating Systems define 1 GB as 1,073,741,824 BYTES.

However, this section is the one actually relevant to my finding.

A portion of the total capacity is used to store certain functions including optimizations of the memory that support performance and endurance and therefore is not available for user storage. This is disclosed on our packaging and marketing materials when you see the statement “Actual user storage less.”

Based on this, I assume that SanDisk cheaped out and decided to not add enough flash to provide both the advertised storage of 16 000 000 000 bytes available to the user and some room for over-provisioning that flash storage benefits from. And somehow they are the only ones who do it this way, as all other storage media that I own shows up with the proper number of bytes.

And for those interested, here’s f3 output for both the old and new sticks.

Old:

# f3probe /dev/sdc --destructive --time-ops
F3 probe 8.0
Copyright (C) 2010 Digirati Internet LTDA.
This is free software; see the source for copying conditions.

WARNING: Probing normally takes from a few seconds to 15 minutes, but
         it can take longer. Please be patient.

Good news: The device `/dev/sdc' is the real thing

Device geometry:
	         *Usable* size: 14.91 GB (31266816 blocks)
	        Announced size: 14.91 GB (31266816 blocks)
	                Module: 16.00 GB (2^34 Bytes)
	Approximate cache size: 0.00 Byte (0 blocks), need-reset=no
	   Physical block size: 512.00 Byte (2^9 Bytes)

Probe time: 1'49"
 Operation: total time / count = avg time
      Read: 463.8ms / 4814 = 96us
     Write: 1'48" / 4192321 = 25us
     Reset: 1us / 1 = 1us

New:

# f3probe /dev/sdd --destructive --time-ops
F3 probe 8.0
Copyright (C) 2010 Digirati Internet LTDA.
This is free software; see the source for copying conditions.

WARNING: Probing normally takes from a few seconds to 15 minutes, but
         it can take longer. Please be patient.

Good news: The device `/dev/sdd' is the real thing

Device geometry:
	         *Usable* size: 14.34 GB (30081024 blocks)
	        Announced size: 14.34 GB (30081024 blocks)
	                Module: 16.00 GB (2^34 Bytes)
	Approximate cache size: 0.00 Byte (0 blocks), need-reset=no
	   Physical block size: 512.00 Byte (2^9 Bytes)

Probe time: 1'02"
 Operation: total time / count = avg time
      Read: 338.2ms / 4814 = 70us
     Write: 1'02" / 4192321 = 14us
     Reset: 1us / 1 = 1us

I’m not even mad, I’m just disappointed.

2023-02-16 update

This post received more attention than usual, so here are some additional details and clarifications.

Why do you not trust Ventoy?

Ventoy is a great tool from what I’ve seen online and the use case it fills does save time and resources. However, I have some reservations about it. If I had to compromise a bunch of critical systems over a long time period, then publishing a great tool and having it tamper with your OS installation media silently would be a really good pick. At this time, I don’t trust the developers of the tool enough and I don’t have the time or skills to perform repeated audits of the software every time they release a new version.

MBR vs GPT partitioning

That was an oversight on my part, I should have presented both disks with the same partitioning scheme to avoid unnecessary confusion. This has now been corrected.

Alternatives to Ventoy

One reader pointed out a physical device that can be used for a similar purpose as Ventoy: IODD. I have not tested on myself and reportedly it has some bugs and is not 100% perfect, but it seems like a neat hardware-based alternative.

I have personally tried out things like DriveDroid in the past, but that required a rooted Android phone and it was not 100% bug-free either.

Everyone knows that GB and GiB are not the same, why is this post even a thing, the author is clearly incompetent and dumb.

Read the article.