如何确定何时需要更换SD卡?


39

有没有办法估计SD卡的寿命?如果没有,我是否可以使用某个实用程序来监视其完整性和可靠性,以便知道何时使用新的SD卡?


5
我对“亲密”投票背后的推论没有建设性,也感到困惑。是否因为不同的SD卡会有不同的答案?
ramblinjan 2012年

很难有人权威地回答问题,除非有人真正进行了一些实验以找出答案。
finnw 2012年

2
不好回答的问题是答案只能是猜测
finnw 2012年

11
那将使那些答案成为错误的答案。正因为它不能准确地回答现在并不意味着它不能准确地回答。
ramblinjan

10
@finnw-一个很难回答的问题不是一个坏问题,这是一个好问题!这是人们会不断提出的问题,因此对于打算作为回答人们想要回答的问题的参考站点的网站而言,它是完美的选择。另一方面,错误的答案可以被否决。不允许人们尝试回答将破坏堆栈交换站点的目的。
Mark Booth 2012年

Answers:


10

有几种工具可以检查文件系统的完整性,并且反复出现的错误将指向SD卡使用寿命已尽。

fsck 是常用的Linux应用程序,您可以使用它来检查分区,如下所示:

fsck /dev/sdx

x分区号在哪里。

关于估计寿命,《Sandisk产品手册》指出:

SanDisk SD卡具有每个规范的100,000个写入扇区的耐久性规格(读取逻辑扇区是无限的)。

但是,我不知道典型的操作系统平均使用多少次读/写操作。


我认为“典型”将难以形容。这将完全取决于安装的软件。可能可以计算全新安装的读取/写入,但每次更新都会有所不同,从而使统计数据变得毫无意义。我认为,您列出的工具与将卡烧掉将需要很长时间的知识相结合,应该足以进行基础数据处理。
ian.shaun.thomas 2012年

@腾讯我认为这是我们能做的最好的事情。
Jivings 2012年

8

SD卡本身可以进行监控,因此您无需这样做。现代商业级SD卡将使用复杂的耗损均衡算法,该算法可检测并隔离坏块出现的情况,因此在任何给定时刻,都不会将坏块暴露给文件系统。

事情一直持续到SD卡用完了备用块,此时大多数卡都将自己永久锁定为只读模式。目的是使用户有机会读出数据并将其移至另一种介质。这就是您知道需要购买新的的方式。

由于该卡通常在您进行写操作时会用完备用块,因此启用日记功能会极大地帮助您恢复数据。


很高兴知道!然后,可以通过查看大小何时开始缩小来实现SD修复;df -h
Dan Froberg

1
@DanFroberg不,用户可见的大小将保持不变。这是已用完的保留块池,并且该池无法通过常规SD卡访问看到。
德米特里·格里戈里耶夫

3

对于ATP品牌的工业SD卡,它们提供了适用于Linux / Windows的“ SD寿命监视工具”软件。但是,如果使用此工具,则必须从主机操作系统中运行此工具。这意味着您不能使用SD卡中的此软件进行自我检查。因为如果您运行此软件,则无法访问SD卡。

供参考-Google: ATP工业级SD卡规范(修订版3.8)

在此处输入图片说明


2

您可以使用以下命令扫描分区的所有块

time badblocks -sv /dev/mmcblk0p2 -o mmcblk0p2.log

mmcblk0p2引用该分区,必须替换为要扫描的分区。您可以使用lsblk或列出分区fdisk -l

坏块将记录到日志文件中。

不需要卸载文件系统。

-n如果发现必要,您也可以进行非破坏性的写测试(可选)。

如果您不需要保留数据,则还可以进行更快(破坏性)的写测试(-w可选)。


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.