Amazon Donation: 256GB Alisinsen SD Cards

Spoiler: they are junk. Don’t use them!

In the most recent batch of stuff discarded from the local Amazon warehouse, we were gifted QTY:90 of these 256GB Alisinsen SD Card. They appear to no longer be available for sale on Amazon, so I guess we got some of the remaining stock. 256GB is pretty nice! Too good to be true?


I ran some stress tests on two of them. I’m using the F3 suite (Fight Flash Fraud) which detects various fakes trickery through specific write/read sequences, as well as exhaustive testing.

Test 1: f3probe

f3probe is a tool that writes and reads at a handful of specific points on the block device in order to detect what sort of trickery may be happening if it’s fraudulent. This just came back with a generic FKTY_BAD message, which the author describes as “there were repeated I/O errors during the test, or there’s no usable segment of good blocks at the beginning of the drive”.

Bad news: The device `/dev/sde' is damaged

Device geometry:
                 *Usable* size: 0.00 Byte (0 blocks)
                Announced size: 250.00 GB (524290048 blocks)
                        Module: 256.00 GB (2^38 Bytes)
        Approximate cache size: 31.00 MB (63488 blocks), need-reset=no
           Physical block size: 512.00 Byte (2^9 Bytes)

Probe time: 8'48"
 Operation: total time / count = avg time
      Read: 18.44s / 131312 = 140us
     Write: 8'29" / 451471 = 1.1ms
     Reset: 0us / 2 = 0us

Test 2: f3write

f3write fills up the entire device with a specific sequence of data. This completed successfully (or appeared to) but the write performance was pretty bad. Way worse than their “speed class C10” and “UHS 3” logos specify. Of course I need to wait until it reads back all the data before we know if there’s any corruption or overwritten data.

...
Creating file 246.h2w ... OK!
Creating file 247.h2w ... OK!
Creating file 248.h2w ... OK!
Creating file 249.h2w ... OK!
Creating file 250.h2w ... OK!
Free space: 0.00 Byte
Average writing speed: 6.46 MB/s

Test 3: f3read

The first ~20GB seemed to be mostly alright, and the last ~10GB might be alright, but everything in between was not read back correctly. To me this suggests that maybe there is 32GB of real flash inside of these things, and some fraudulent trickery that maps 256GB of address space onto it. Plus a few other sketchy reliability issues mixed in.

F3 read 7.2
Copyright (C) 2010 Digirati Internet LTDA.
This is free software; see the source for copying conditions.
                  SECTORS      ok/corrupted/changed/overwritten
Validating file 1.h2w ... 2097152/        0/      0/      0
Validating file 2.h2w ... 2097152/        0/      0/      0
Validating file 3.h2w ... 2094996/     2156/      0/      0
Validating file 4.h2w ... 2097152/        0/      0/      0
Validating file 5.h2w ... 2097152/        0/      0/      0
Validating file 6.h2w ... 2097152/        0/      0/      0
Validating file 7.h2w ... 2097152/        0/      0/      0
Validating file 8.h2w ... 2097152/        0/      0/      0
Validating file 9.h2w ... 2097152/        0/      0/      0
Validating file 10.h2w ... 2097152/        0/      0/      0
Validating file 11.h2w ... 2097152/        0/      0/      0
Validating file 12.h2w ... 2097152/        0/      0/      0
Validating file 13.h2w ... 2097152/        0/      0/      0
Validating file 14.h2w ... 2097152/        0/      0/      0
Validating file 15.h2w ... 2097152/        0/      0/      0
Validating file 16.h2w ... 2097152/        0/      0/      0
Validating file 17.h2w ... 2097152/        0/      0/      0
Validating file 18.h2w ... 2097152/        0/      0/      0
Validating file 19.h2w ... 2097152/        0/      0/      0
Validating file 20.h2w ... 2097152/        0/      0/      0
Validating file 21.h2w ... 2097152/        0/      0/      0
Validating file 22.h2w ...  804663/  1292489/      0/      0
Validating file 23.h2w ...       0/  2097152/      0/      0
Validating file 24.h2w ...       0/  2097152/      0/      0
Validating file 25.h2w ...       0/  2097152/      0/      0
Validating file 26.h2w ...       0/  2097152/      0/      0
Validating file 27.h2w ...       0/  2097152/      0/      0
Validating file 28.h2w ...       0/  2097152/      0/      0
Validating file 29.h2w ...       0/  2097152/      0/      0
Validating file 30.h2w ...       0/  2097152/      0/      0
Validating file 31.h2w ...       0/  2097152/      0/      0
Validating file 32.h2w ...       0/  2097152/      0/      0
Validating file 33.h2w ...       0/  2097152/      0/      0
Validating file 34.h2w ...       0/  2097152/      0/      0
Validating file 35.h2w ...       0/  2097152/      0/      0
Validating file 36.h2w ...       0/  2097152/      0/      0
Validating file 37.h2w ...       0/  2097152/      0/      0
Validating file 38.h2w ...       0/  2097152/      0/      0
Validating file 39.h2w ...       0/  2097152/      0/      0
Validating file 40.h2w ...       0/  2097152/      0/      0
Validating file 41.h2w ...       0/  2097152/      0/      0

Validating file 144.h2w ...       0/  2097152/      0/      0
Validating file 145.h2w ...       0/  2097152/      0/      0
Validating file 146.h2w ...       0/  2097152/      0/      0
Validating file 147.h2w ...       0/  2097152/      0/      0
Validating file 148.h2w ...       0/  2097152/      0/      0
Validating file 149.h2w ...       0/  2097152/      0/      0
Validating file 150.h2w ...       0/  2097152/      0/      0
Validating file 151.h2w ...       0/  2097152/      0/      0
Validating file 152.h2w ...       0/  2097152/      0/      0
Validating file 153.h2w ...       0/  2097152/      0/      0
Validating file 154.h2w ...       0/  2097152/      0/      0
Validating file 155.h2w ...       0/  2097152/      0/      0
Validating file 156.h2w ...       0/  2097152/      0/      0
Validating file 157.h2w ...       0/  2097152/      0/      0
Validating file 158.h2w ...       0/  2097152/      0/      0
Validating file 159.h2w ...       0/  2097152/      0/      0
Validating file 160.h2w ...       0/  2097152/      0/      0
Validating file 161.h2w ...       0/  2097152/      0/      0
Validating file 162.h2w ...       0/  2097152/      0/      0
Validating file 163.h2w ...       0/  2097152/      0/      0
Validating file 164.h2w ...       0/  2097152/      0/      0
Validating file 165.h2w ...       0/  2097152/      0/      0
Validating file 166.h2w ...       0/  2097152/      0/      0
Validating file 167.h2w ...       0/  2097152/      0/      0
Validating file 168.h2w ...       0/  2097152/      0/      0
Validating file 169.h2w ...       0/  2097152/      0/      0
Validating file 170.h2w ...       0/  2097152/      0/      0
Validating file 171.h2w ...       0/  2097152/      0/      0
Validating file 172.h2w ...       0/  2097152/      0/      0
Validating file 173.h2w ...       0/  2097152/      0/      0
Validating file 174.h2w ...       0/  2097152/      0/      0
Validating file 175.h2w ...       0/  2097152/      0/      0
Validating file 176.h2w ...       0/  2097152/      0/      0
Validating file 177.h2w ...       0/  2097152/      0/      0
Validating file 178.h2w ...       0/  2097152/      0/      0
Validating file 179.h2w ...       0/  2097152/      0/      0
Validating file 180.h2w ...       0/  2097152/      0/      0
Validating file 181.h2w ...       0/  2097152/      0/      0
Validating file 182.h2w ...       0/  2097152/      0/      0
Validating file 183.h2w ...       0/  2097152/      0/      0
Validating file 184.h2w ...       0/  2097152/      0/      0
Validating file 185.h2w ...       0/  2097152/      0/      0
Validating file 186.h2w ...       0/  2097152/      0/      0
Validating file 187.h2w ...       0/  2097152/      0/      0
Validating file 188.h2w ...       0/  2097152/      0/      0
Validating file 189.h2w ...       0/  2097152/      0/      0
Validating file 190.h2w ...       0/  2097152/      0/      0
Validating file 191.h2w ...       0/  2097152/      0/      0
Validating file 192.h2w ...       0/  2097152/      0/      0
Validating file 193.h2w ...       0/  2097152/      0/      0
Validating file 194.h2w ...       0/  2097152/      0/      0
Validating file 195.h2w ...       0/  2097152/      0/      0
Validating file 196.h2w ...       0/  2097152/      0/      0
Validating file 197.h2w ...       0/  2097152/      0/      0
Validating file 198.h2w ...       0/  2097152/      0/      0
Validating file 199.h2w ...       0/  2097152/      0/      0
Validating file 200.h2w ...       0/  2097152/      0/      0
Validating file 201.h2w ...       0/  2097152/      0/      0
Validating file 202.h2w ...       0/  2097152/      0/      0
Validating file 203.h2w ...       0/  2097152/      0/      0
Validating file 204.h2w ...       0/  2097152/      0/      0
Validating file 205.h2w ...       0/  2097152/      0/      0
Validating file 206.h2w ...       0/  2097152/      0/      0
Validating file 207.h2w ...       0/  2097152/      0/      0
Validating file 208.h2w ...       0/  2097152/      0/      0
Validating file 209.h2w ...       0/  2097152/      0/      0
Validating file 210.h2w ...       0/  2097152/      0/      0
Validating file 211.h2w ...       0/  2097152/      0/      0
Validating file 212.h2w ...       0/  2097152/      0/      0
Validating file 213.h2w ...       0/  2097152/      0/      0
Validating file 214.h2w ...       0/  2097152/      0/      0
Validating file 215.h2w ...       0/  2097152/      0/      0
Validating file 216.h2w ...       0/  2097152/      0/      0
Validating file 217.h2w ...       0/  2097152/      0/      0
Validating file 218.h2w ...       0/  2097152/      0/      0
Validating file 219.h2w ...       0/  2097152/      0/      0
Validating file 220.h2w ...       0/  2097152/      0/      0
Validating file 221.h2w ...       0/  2097152/      0/      0
Validating file 222.h2w ...       0/  2097152/      0/      0
Validating file 223.h2w ...       0/  2097152/      0/      0
Validating file 224.h2w ...       0/  2097152/      0/      0
Validating file 225.h2w ...       0/  2097152/      0/      0
Validating file 226.h2w ...       0/  2097152/      0/      0
Validating file 227.h2w ...       0/  2097152/      0/      0
Validating file 228.h2w ...       0/  2097152/      0/      0
Validating file 229.h2w ...       0/  2097152/      0/      0
Validating file 230.h2w ...       0/  2097152/      0/      0
Validating file 231.h2w ...       0/  2097152/      0/      0
Validating file 232.h2w ...       0/  2097152/      0/      0
Validating file 233.h2w ...       0/  2097152/      0/      0
Validating file 234.h2w ...       0/  2097152/      0/      0

Validating file 235.h2w ...       0/  2097152/      0/      0
Validating file 236.h2w ...       0/  2097152/      0/      0
Validating file 237.h2w ...       0/  2097152/      0/      0
Validating file 238.h2w ...       0/  2097152/      0/      0
Validating file 239.h2w ...       0/  2097152/      0/      0
Validating file 240.h2w ...       0/  2097152/      0/      0
Validating file 241.h2w ...  460800/  1636352/      0/      0
Validating file 242.h2w ... 2097152/        0/      0/      0
Validating file 243.h2w ... 2097152/        0/      0/      0
Validating file 244.h2w ... 2097148/        4/      0/      0
Validating file 245.h2w ... 2097152/        0/      0/      0
Validating file 246.h2w ... 2097152/        0/      0/      0
Validating file 247.h2w ... 2097152/        0/      0/      0
Validating file 248.h2w ... 2097152/        0/      0/      0
Validating file 249.h2w ... 2097152/        0/      0/      0
Validating file 250.h2w ... 1969020/        4/      0/      0

  Data OK: 30.54 GB (64049731 sectors)
Data LOST: 219.40 GB (460110141 sectors)
               Corrupted: 219.40 GB (460110141 sectors)
        Slightly changed: 0.00 Byte (0 sectors)
             Overwritten: 0.00 Byte (0 sectors)
Average reading speed: 2.07 MB/s

The above tests were performed on a linux computer with a USB SD card reader. I also tried a macos laptop with built-in SD card reader, and got similar results.

If anybody wants to test a few more (using different SD card readers) then be my guest. Note that just writing files to these appears to work (although slowly at ~6MB/s) and some data can be read back. The problems are only exhibited when doing an exhaustive test. These are designed to appear to work at a superficial level - just enough to allow your purchase protection to lapse.

8 Likes

In the spirit of good hacking, is there a way to partition those first 20 GB and last 10 GB into a single contiguous region and get a usable 30 GB drive?

I’m glad you asked! There is indeed a f3fix program included in the F3 suite, which does exactly that.

However, since f3probe didn’t detect a known pattern, it’s doubtful that it would work. Besides, there are enough other little i/o errors with these that I don’t think it would be usable on these particular cards.

Edit: I tried it just for funsies…

# f3fix /dev/sde --last-sec=67108864
F3 fix 7.2
Copyright (C) 2010 Digirati Internet LTDA.
This is free software; see the source for copying conditions.

Error: Input/output error during write on /dev/sde
Drive `/dev/sde' was successfully fixed

However this is what shows in dmesg:

[5618279.391066] sd 4:0:0:0: [sde] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
sd 4:0:0:0: [sde] tag#0 Sense Key : Medium Error [current] 
sd 4:0:0:0: [sde] tag#0 Add. Sense: Peripheral device write fault
sd 4:0:0:0: [sde] tag#0 CDB: Write(10) 2a 00 00 00 00 00 00 00 18 00
blk_update_request: I/O error, dev sde, sector 0 op 0x1:(WRITE) flags 0x800 phys_seg 3 prio class 0
Buffer I/O error on dev sde, logical block 0, lost async page write
Buffer I/O error on dev sde, logical block 1, lost async page write
Buffer I/O error on dev sde, logical block 2, lost async page write

The above was for 32GiB (67,108,864 sectors). I also tried with 24GiB (50,331,648) and got the same result. :man_shrugging:

3 Likes

Those errors are for the very start & end of the device. Since the partition table resides at least at the start (and optionally a backup at the end for GPT) and block 0 is faulty, the drive is probably useless to anything that needs a partition table and can’t access “good” blocks directly.

I have had minor success with tricking the evil/lying NAND controllers by writing random data and then zeros, in reverse order over the entire device - then using the first portion only.

The other risk these have is that vendors used NAND with extremely low write cycles - so don’t write more data than you absolutely have to.

3 Likes

Thanks for the heads up and warnings Luke.

2 Likes