我最近查看了各种 SD 卡的大小。虽然它们在标签上通常显示相同的大小(例如说 8GB),但我发现有些显示不同的大小(查看其详细信息时),例如(一个显示 7948206080 字节,另一个显示 8010072064 字节)。我发现运行这些命令
blockdev --getsize64 /dev/sdb
8010072064
blockdev --getsize64 /dev/sdc
7948206080
现在我想知道第二张 8GB SD 卡为什么只有 7948206080 字节。我会稍微监视一下它们的行为,但我想知道(SD 卡大小有这些奇数)我是否可以相信报告的 SD 卡大小会随着时间的推移始终保持不变?
换句话说,我想知道,SD 卡(根据其符合的标准或普遍经验)是否可以随着时间改变其大小?
这似乎是合理的,考虑到存储单元的磨损,一些容量的损失并不奇怪,但我认为任何此类单元故障都会导致卡完全故障?
答案1
它们不会改变大小。
如果在使用过程中出现故障,通常要么全部发生,要么全部发生,整个卡都无法使用。在这种情况下,板载控制器根本没有 CPU 能力来执行智能操作。
但是供应商可以(并且会)在定义大小方面有一定的自由度。8
GB 卡恰好有 8000000000 字节的情况极为罕见。
即使是来自同一供应商的 2 张相同卡(相同型号),如果来自不同的生产批次,其大小也可能略有不同。这完全取决于所使用的确切闪存芯片(并且差异很大)。
在生产过程中,闪存的一部分也可能被确定为有故障/不可用并被映射出去,从而使有效大小比预期的要小一些。如果大部分都不可用,将其重新标记为半尺寸设备也并不罕见。(例如,取 40% 有缺陷的 16 GB 闪存芯片,将好的一半变成 8 GB 芯片。)
只要实际尺寸不小于包装上所标预期容量的 95% 左右,就没人真正关心。
我的桌子上现在有 2 个相同的 16 GB USB 棒。一个根据 Windows 是 15.7 GB,另一个是 15.8 GB。
当我查看 USB 设备信息时,这两个棒在 Windows 中显示为完全相同的硬件,只是序列号和大小不同。