0

I'm using f3 to test hundreds of USB flash memory sticks for errors.

Here's an example output from a faulty drive. First writing test files with f3write:

Free space: 3.74 GB
Creating file 1.h2w ... OK!
Creating file 2.h2w ... OK!
Creating file 3.h2w ... OK!
Creating file 4.h2w ... OK!
Free space: 0.00 Byte
Average writing speed: 2.22 MB/s

Then reading back with f3read:

                  SECTORS      ok/corrupted/changed/overwritten
Validating file 1.h2w ... 2030944/        0/      0/  66208
Validating file 2.h2w ... 2032136/        0/      0/  65016
Validating file 3.h2w ... 2031920/        0/      0/  65232
Validating file 4.h2w ... 1509112/        0/      0/  48376

  Data OK: 3.63 GB (7604112 sectors)
Data LOST: 119.55 MB (244832 sectors)
               Corrupted: 0.00 Byte (0 sectors)
        Slightly changed: 0.00 Byte (0 sectors)
             Overwritten: 119.55 MB (244832 sectors)
Average reading speed: 3.23 MB/s

Typically if a USB drive contains errors, they come up in the corrupted column. Recently I've got drives that report errors in the "overwritten" column. I wonder what is the difference between the three.

I've also noticed that badblocks utility also reports errors in three columns, I wonder if it's the same scheme? EDIT: not it's not - How to interpret badblocks output

unfa
  • 1,745

1 Answers1

3

The f3 documentation says:

When f3read reads a sector (i.e. 512 bytes, the unit of communication with the card), f3read can check if the sector was correctly written by f3write, and figure out in which file the sector should be and in which position in that file the sector should be. Thus, if a sector is well formed, or with a few bits flipped, but read in an unexpected position, f3read counts it as overwritten. Slightly changed sectors, are sectors at right position with a fews bits flipped.

The three types of errors mean:

  • changed: the sector was written by f3write, and read in the expected position, with some changes (less than the “tolerance”, which allows for two errors);
  • overwritten: the sector read contains data written by f3write to another sector, possibly with some changes (within the tolerance);
  • corrupted: the sector doesn’t match data written by f3write (the changes exceed the tolerance).

All three are bad news, but of different kinds. Overwritten sectors indicate that the drive is lying about its capacity and is wrapping writes.

Stephen Kitt
  • 434,908
  • I'm getting a very few, variable overwritten sectors, I can't seem to make sense of it. Card looks, feels, and speedtests very real: SECTORS ok/corrupted/changed/overwritten Validating file 1.h2w ... 2097088/ 0/ 0/ 64 Validating file 2.h2w ... 2096960/ 0/ 0/ 192 Validating file 3.h2w ... 2097088/ 0/ 0/ 64

    Oddly had a non2^X further down (31). Not a full test as this card is 256GB, I just unwrapped it, currently making a full test. Test on macos, Back to you in about 3h with a full test, which should be the same... Any thoughts?

    – leRobot Oct 04 '19 at 11:34