我正在尝试自动将一个大文件(25MB +)复制到 SD 卡,但是不起作用 - 所以我在命令行中尝试过......
cp /tmp/MIRROR/myfile.db /run/media/mmcblk0p1/MIRROR/
但这会引发错误:
cp:写入错误:输入/输出错误
如果我ls
,则显示大部分文件已被复制,可能是 24MB 或更少。
现在,任何进一步尝试写入同一位置(包括rm
复制文件)都会引发新的错误
rm:无法删除“myfile.db”:只读文件系统
只有在第一个失败后我才会收到此错误(例如,首先复制较小的文件可以正常工作,之后我仍然可以写入该位置)
在 Windows 中,无法从 SD 卡复制失败的文件(它说文件已损坏),但我可以使用 Windows 格式化 SD 卡以重试(格式化为 FAT)。在 Windows 中,我也可以毫无问题地将大文件复制到 SD 卡上。
这里可能存在什么问题?有没有其他更好的文件复制方法?
编辑
我做了一个dmesg
,其中有很多错误,但大多数都是重复的,所以这里是出现的不同错误的示例:
mmcblk0:错误 -84 传输数据,扇区 135,nr 1,cmd 响应 0x900,卡状态 0xc00
(尽管有时card status 0x0
)
blk_update_request:I/O 错误,设备 mmcblk0,扇区 135
设备 mmcblk0p1、逻辑块 0 上的缓冲区 I/O 错误,丢失同步页面写入
FAT-fs(mmcblk0p1):错误,fat_get_cluster:无效的集群链(i_pos 11267)
FAT-fs(mmcblk0p1):文件系统已设置为只读
(我想最后一个解释了第二个错误)
进一步编辑
看起来确实是卡有问题 - 由于某种原因,它不能与 Sandisk 2GB SD 卡一起使用(我试过其中 3 个),但与 Transcend 2GB SD 卡一起使用则没问题!