我可以在 SD 卡上使用类似 SSD TRIM 命令的命令吗?

Ste*_*epp 18 ssd sd-card trim

SSD闪存硬盘已经开始支持TRIM,以避免一段时间后出现速度变慢

我如何在 SD 卡上做类似的事情?

类似于重新格式化 SD 卡,但在较低级别以避免自动磨损均衡

vy3*_*y32 8

我的理解是当前的 SDCARD 规范不包含 TRIM 命令。虽然我不是委员会成员,但 Windows 7 对 TRIM 的支持将引起许多工程师的注意,并且可以合理预期该命令将在未来几年内出现在 SD 规范中。

操作系统使用 TRIM 命令告诉闪存设备在写入之前不会再次读取扇区。这告诉闪存设备在擦除第一页之前不需要将扇区从一个页面复制到另一个页面。这可以显着提高性能改善数据隐私。

如果 SD 卡能够提供类似于 SSD 的性能,那就太好了。我看不出小尺寸无法支持高速访问的任何根本原因。但是,目前,如果您想要高速性能,则应该使用 SSD,而不是 SD 卡。


krg*_*krg 7

我不知道这是否是假的,但似乎在 Linux 中 fstrim 有效。我有点惊讶。

fstrim -v /media/32G_SD/
/media/32G_SD/: 7,2 GiB (7705051136 bytes) trimmed
Run Code Online (Sandbox Code Playgroud)

它是用 btrfs 格式化的 32GiB 卡,我确实删除了大约 8GiB。标签为金士顿型号:sd10vg2(灰色SD卡)

我必须补充一点,您应该小心 SSD 中的 fstrim。并且在 SD 卡上更加小心。固件bug太多。我只相信英特尔企业系列。我对 fstrim 和 SD 卡(无法访问的数据)有过一次崩溃。我不会fstrim太经常在这个 SD 卡上,而在 sd 上一般。

  • 这很可能是对未使用的脏块执行“MMC_CAP_ERASE”。工作速度比“TRIM”慢(它让控制器安排实际擦除),但最终结果应该是相同的。 (7认同)
  • @DmitryGrigoryev 是的,`fstrim` 发送到 SD 卡 [可能并不总是“修剪”](https://www.intel.com/content/dam/www/programmable/us/en/pdfs/education/events/northamerica /isdf/Optimizing-eMMC-Memory-on-Intel.pdf) 本质上是 [ERASE (CMD38)](https://www.sdcard.org/downloads/pls/pdf/index.php?p=Part1_Physical_Layer_Simplified_Specification_Ver6.00。 jpg&f=Part1_Physical_Layer_Simplified_Specification_Ver6.00.pdf&e=EN_SS1) (4认同)

Jan*_*bal 6

在 Linux 上:

  • blkdiscard在卸载的块设备上(例如/dev/mmcblk0)丢弃所有块(使数据无法通过正常方式访问,但不承诺安全擦除它们)。
  • fstrim (在挂载的文件系统上)如果您想保留数据但丢弃未使用的块。


小智 6

MMC_ERASE低级命令允许在 SD 卡(和 eMMC 芯片)上实现类似TRIM 的功能

并非所有 SD 卡和 eMMC 芯片都支持该MMC_ERASE命令(和/或其更新的扩展),但大多数现代(正品)品牌和 OEM SD 卡现在都支持它(例如 Sasmung EVO 品牌卡)。

USB 到 SD 卡适配器(“SD 卡读卡器”)可以通过 USB 存储接口广播TRIM或命令并将其转换为命令来支持此命令,但我还没有找到可以执行此操作的 USB 适配器。UNMAPMMC_ERASE

这意味着可能需要使用MMC_ERASE“直接”mmc 接口,例如 Linux 设备驱动程序支持的类型mmcblk,以及由某些笔记本电脑和其他设备(例如 Raspberry Pi)中的硬件实现的类型。

MMC_ERASE下面的示例显示了在 2008 1GB SD 卡上的使用:

~# echo 'some data' > /dev/mmcblk0 
~# dd if=/dev/mmcblk0 count=1 | hd
00000000  73 6f 6d 65 20 64 61 74  61 0a 00 00 00 00 00 00  |some data.......|
1+0 records in
1+0 records out
00000010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000200
512 bytes copied, 0.0138109 s, 37.1 kB/s
~# lsblk -D /dev/mmcblk0 
NAME    DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
mmcblk0        0        4M     2.7G         0
~# blkdiscard -v /dev/mmcblk0
/dev/mmcblk0: Discarded 1019215872 bytes from the offset 0
~# dd if=/dev/mmcblk0 count=1 | hd
1+0 records in
1+0 records out
512 bytes copied, 0.0114608 s, 44.7 kB/s
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000200
Run Code Online (Sandbox Code Playgroud)


Ivo*_*pse 0

存储工具声称对 SD 卡进行碎片整理可以提高性能,但他们销售产品是为了可以声称任何适合他们的产品。

尽管还有其他程序声称它有帮助:

碎片是指存储在 FAT 文件系统中的文件被分成碎片的趋势,这些碎片可能最终分布在存储卡卷内的不同位置。当存储卡频繁使用(创建、删除和修改文件)时,随着时间的推移,碎片自然会发生。这个过程对于用户来说是完全不可见的。

PPC 杂志认为这也是个好主意。虽然不是用软件

PPC 杂志博客的 Werner Ruotsalainen 分享了一些关于 Pocket PC 存储卡是否需要进行碎片整理以及如何进行碎片整理的好信息。

一些技巧:

  • 是的,如果频繁写入卡,则值得每 2-3 个月对它们进行一次碎片整理。
  • 切勿使用 Pocket PC 实用程序进行碎片整理
  • 请考虑购买读卡器

如果您有读卡器,则过程很简单:将文件复制到硬盘驱动器,重新格式化卡(例如“format i: /q /u”,但请确保使用正确的驱动器号!),然后复制您的文件文件返回卡上。

但无论如何,这里有一些存储工具信息;-)

所有文字 所有文字

存储工具说明

作为最全面的存储卡管理解决方案,StorageTools 是首款为 Pocket PC 设备提供碎片整理功能的产品,通过解决文件碎片问题,显着提高速度。

使用 StorageTools,您可以获得有关存储卡的详细设备和文件系统信息、文件分配(闲置空间)和碎片级别的分析。

StorageTools 适用于 PocketPC/Windows CE 设备上可用的所有媒体类型,包括行业标准:符合 ATA 的存储卡、紧凑型闪存卡、MicroDrive、安全数字 (SD) 卡、多媒体卡 (MMC) 和 PCMCIA 存储卡。您可以格式化具有不同文件系统和簇大小的存储介质。

扫描工具可诊断并修复各种介质问题。它执行多项测试,检查从引导扇区到物理表面的所有内容。如果 StorageTools 发现问题,它会在修复之前通知您。(可选)允许自动进行所有必要的修复。

使用 StorageTools 碎片整理程序,您可以在 Pocket PC/Windows CE 下以最小的努力获得最大的性能!它包括碎片整理软件中最专业和用户友好的功能。您必须消除碎片,以消除 PocketPC 设备上最基本的性能瓶颈,就像在功能强大的台式计算机上一样。

StorageTools 完全支持所有存储/媒体卡,甚至是 Sentry 2020 for PocketPC 透明加密的卷,并且包括格式化时选择 FAT 类型和簇大小的选项,以及创建备份 FAT 以提高存储可靠性的功能。

特征

  • 显示详细的文件系统统计信息
  • 使用任何文件系统类型和任何簇大小格式化存储卡
  • 验证文件系统完整性
  • 修复文件系统错误
  • 支持所有Windows CE存储介质:MMC/SD、紧凑型闪存等。
  • 同时使用多个存储卡
  • 自动卡插入和取出检测
  • 安装和卸载选项
  • 支持FAT和FAT32文件系统
  • 分析文件系统碎片级别
  • 对文件和可用空间进行碎片整理

好处

  • 格式化通过使用较小的簇大小来恢复存储卡空间
  • 碎片整理可显着提高存储卡性能

  • 这和 TRIM 有什么关系?碎片整理不会对 SD 卡执行任何操作。即使确实如此,操作系统也无法控制 SD 卡上的数据物理驻留在何处,因此这实际上是不可能的。我认为垃圾收集在某些方面与碎片整理类似,但它完全取决于 SD 卡的控制器。你无法控制它。 TRIM 是一条在数据被擦除时通知控制器的命令。其目的是帮助垃圾收集更有效地进行。操作系统对 SD 卡对数据的物理处理方式的唯一说明是 TRIM 命令。 (11认同)