如何判断你是否有假sd卡


9

我被给了一些看似假的闪存驱动器。丝网说64演出,它们显示为操作系统的64演出。

但是,如果您尝试写入任何大于4 gigs的文件,则文件会损坏。

你怎么能快速判断一下闪存盘/ SD卡是假的,实际尺寸是多少?

旁注
我知道h2testw,但它是德语,我发现它非常难以使用。我正在寻找替代程序,或者从命令行执行此操作的方法。
任何平台都没问题。


5
你的结论很可能不正确。它们不是假的,它们只是用不支持4GB以上文件的文件系统格式化。大多数闪存驱动器都以这种方式发货
David Schwartz 2013年

实际上,我希望操作系统吐出一些错误信息或警告,而不是只写一个损坏的文件(但这可能取决于个别程序)。至少在Windows资源管理器中,您不能简单地在FAT32驱动器上拖放太大的文件。
马里奥2013年

不是必须的 - 我的经验就是这样 - 128个假盘,4个闪光灯。
davidgo 2013年

exFAT支持最大16EiB的文件。但显然不是4GB的卡。
Ignacio Vazquez-Abrams 2013年

Answers:


16

直接打开卡设备,并将其写入0x00标签上的容量。写入0x55 0xff 0xaa前三个字节,并查找0x00标签上容量的任何非字节。如果您找到一张,则该卡是假的或有缺陷的。如果你发现0x55 0xff 0xaa......绝对是假的。

dd if=/dev/zero of=/dev/mmcblkX bs=16M count=...
echo -e -n '\x55\xff\xaa' > /dev/mmcblkX
hexdump /dev/mmcblkX

这是很聪明的
马克·亨德森

3
是否可以获得更多细节?喜欢为什么0x55 0xff 0xaa而不是其他序列?我很感兴趣。
Levans 2013年

@Levans因为0x55 = 01010101 0xff = 11111111 0xaa = 10101010
exussum 2013年

虽然我不确定为什么如果你发现你写的东西将是假的
exussum 2013年

4
这只是您可以再次找到的特定模式。这个想法很简单:首先你将驱动器上的所有内容都设置为0,这意味着所有位都应为0.然后你只修改前3个字节。如果所有其他字节都保持为0,那么它们确实存在。如果其他字节也发生变化,则驱动器有缺陷(没有正确写入或读取)。如果其他字节相同,则驱动器处于“循环”模式,这意味着,如果您在结束时写入(比起预期更接近开始),它将再次开始写入。
马里奥

7

我相信这也是值得一提的替代h2testw:f3。

文档位于:

在我的系统上:

$ sudo apt-get install f3

最基本的用法是:

$ sudo f3probe --destructive --time-ops /dev/mmcblk0

要么

$ sudo f3probe --destructive --time-ops /dev/sdb

取决于您的系统如何看到SD卡读卡器。

在我的系统上,这会报告:

F3 probe 6.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.

Bad news: The device `/dev/sdb' is a counterfeit of type limbo

You can "fix" this device using the following command:
f3fix --last-sec=7860034 /dev/sdb

Device geometry:
*Usable* size: 3.75 GB (7860035 blocks)
Announced size: 15.62 GB (32768000 blocks)
Module: 16.00 GB (2^34 Bytes)
Approximate cache size: 1.00 MB (2048 blocks), need-reset=no
Physical block size: 512.00 Byte (2^9 Bytes)

Probe time: 1'11"
Operation: total time / count = avg time
Read: 336.9ms / 4260 = 79us
Write: 1'10" / 57554 = 1.2ms
Reset: 164.9ms / 1 = 164.9ms

如果您无法使用f3probe,则必须使用传统方法(f3write后跟f3read):

$ f3write /media/malat/NEW\ VOLUME
Free space: 15.61 GB
Creating file 1.h2w ... OK!
Creating file 2.h2w ... OK!
Creating file 3.h2w ... OK!
Creating file 4.h2w ... OK!
Creating file 5.h2w ... OK!
Creating file 6.h2w ... OK!
Creating file 7.h2w ... OK!
Creating file 8.h2w ... OK!
Creating file 9.h2w ... OK!
Creating file 10.h2w ... OK!
Creating file 11.h2w ... OK!
Creating file 12.h2w ... OK!
Creating file 13.h2w ... OK!
Creating file 14.h2w ... OK!
Creating file 15.h2w ... OK!
Creating file 16.h2w ... OK!
Free space: 0.00 Byte
Average writing speed: 8.48 MB/s

$ f3read /media/malat/NEW\ VOLUME
                  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 ... 2097152/        0/      0/      0
Validating file 4.h2w ... 1533687/   563465/      0/      0
Validating file 5.h2w ...       0/  2097152/      0/      0
Validating file 6.h2w ...       0/  2097152/      0/      0
Validating file 7.h2w ...       0/  2097152/      0/      0
Validating file 8.h2w ...       0/  2097152/      0/      0
Validating file 9.h2w ...       0/  2097152/      0/      0
Validating file 10.h2w ...       0/  2097152/      0/      0
Validating file 11.h2w ...       0/  2097152/      0/      0
Validating file 12.h2w ...       0/  2097152/      0/      0
Validating file 13.h2w ...       0/  2097152/      0/      0
Validating file 14.h2w ...       0/  2097152/      0/      0
Validating file 15.h2w ...       0/  2097152/      0/      0
Validating file 16.h2w ...      16/  1273792/      0/      0

  Data OK: 3.73 GB (7825159 sectors)
Data LOST: 11.88 GB (24905929 sectors)
      Corrupted: 11.88 GB (24905929 sectors)
Slightly changed: 0.00 Byte (0 sectors)
    Overwritten: 0.00 Byte (0 sectors)
Average reading speed: 3.20 MB/s

6

鉴于问题出现在4GB的文件大小,卡上使用了什么文件系统?

如果它是FAT32,您看到的问题可能是由FAT32的文件大小上限为4GB引起的。有关更多信息,请参见http://en.wikipedia.org/wiki/File_Allocation_Table#FAT32

在Windows上,您可以通过右键单击“我的电脑”中的设备并选择属性来识别文件系统。查看“文件系统”字段。


2

我最近发现了一个Scanflash程序--http://www.shikadi.net/scanflash/,它在Linux下扫描磁盘,发现它是否是假的,并对可用区域进行分区。但是需要很长时间。(就像128 gig假闪光灯上的一整天一样)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.