我正在尝试将数据从我的计算机复制到 SD 卡。复制几百兆后,我在 dmesg 中不断收到以下错误:
[34542.836192] end_request:I/O 错误,设备 mmcblk0,扇区 855936 [34542.836284] FAT:无法读取 inode 块进行更新(i_pos 13694981) [34542.836306] MMC:终止死队列请求 [34542.836310] end_request:I/O 错误,设备 mmcblk0,扇区 9280 [34542.837035] FAT:无法读取 inode 块进行更新(i_pos 148486) [34542.837062] MMC:终止死队列的请求 [34542.837066] end_request: I/O 错误,设备 mmcblk0,扇区 1 [34542.837074] FAT:fat_clusters_flush 中 bread 失败 [34542.837085] MMC:终止死队列的请求
这些都是我从一张较小的 SD 卡上复制的文件。我只想将它们传输到我手机上新的、更大的卡上。我在另一台机器上对不同的文件进行了同样的实验,卡再次失败。从旧卡读取数据很顺利。我的系统比较旧,而新的 SD 卡是新的(16GB Class 4)。这可能是因为我的电脑太旧了吗?有没有一个明确的测试来验证我的 SD 卡是否坏了?
答案1
因为我曾经遇到过类似的情况,使用 1GB SD 卡。如果您在读取/写入较大的 SD 卡时遇到问题(例如写入错误或无法恢复数据),请确保您的读卡器(如果是外置读卡器)支持该大小的 SD 卡和/或是否有可用的固件更新来支持更大的卡。在实现对更大卡的支持时可能会出现一些陷阱,一些较旧的读卡器无法读取它们。如果您有另一张相同大小的卡可以正常工作,我会说这不是您的读卡器的问题。
Windows 上的 F3 或 h2testw 等工具可以用来测试卡,但它们无法检测是卡还是读卡器。
如果您的手机支持该大小,您可以检查手机是否可以通过 USB 数据线将设备连接到 PC,然后导出原始数据(作为 USB 存储设备)。然后通过手机运行测试以排除不良读卡器。
答案2
答案3
关于同一主题,我知道很多 USB 闪存驱动器都是 512 MB 或 1 GB 的设备,但他们在闪存驱动器上换掉了一个微小的电路,因此它认为它实际上是一个 8/16/32 GB 的闪存。
当尝试将超过 512 MB/1 GB 的数据放入其中时,他们会收到与您的卡遇到的类似错误。只是觉得这可能是一张有故障的卡 :)