验证sd卡性能时,用脚本向sd中不停写入数据
验证方法一
不断的向sd卡中拷贝340M的文本文件,直到sd卡空间占满,再全部删除sd卡内容,重复此操作。
1) 单纯进行sd卡的读写操作时,擦除10次TF读写依然正常
2) 擦写sd卡加上不断重启设备,擦除1-2次之后,sd卡就变成只读,此时umount也执行失败,插拔sd卡也不能恢复,mount -o remount rw /tmp/config_sd命令恢复。
有时是系统重启之后,立即变成只读
有时是系统重启之后,是可读写,在读写过程中变成只读
验证方法二
为了更接近实际使用,修改脚本。
sd卡中创建/tmp/config_sd/log/syslog/test、/tmp/config_sd/log/oprtlog/test、/tmp/config_sd/log/ucslog/test、/tmp/config_sd/log/ucsrunlog/test四个目录,分别创建100、100、400、100个文本文件,以追加的方式向文件中写入5M的内容,全部写满之后删除。重复此操作。
1) 单纯进行sd卡的读写操作时,写操作53次sd卡正常
2) 写操作53次之后,重启设备,起来之后写了35个文件, sd卡就变成只读
dmesg有如下错误
/dev/mmcblk0p1 on /tmp/config_sd type vfat (ro,relatime,fmask=0022,dmask=0022,codepage=936,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)
[ 6.611137] UBI error: ubi_create_volume:volume "ubifs1" exists (ID 0)
[ 6.611143] UBI error:ubi_create_volume: cannot create volume 1, error -17
[ 6.615281] UBIFS:background thread "ubifs_bgt1_0" started, PID 1182
[ 1827.787182] FAT-fs(mmcblk0p1): error, fat_free_clusters: deleting FAT entry beyond EOF
[ 1827.787187] FAT-fs (mmcblk0p1): Filesystem has been set read-only
FAT分区产生错误记录,被拒绝以写挂载。
变为只读是因为fat32的簇链出错, fat32里的文件是用簇链的方式来描述的,修改文件大小或删除文件, 会动态的修改簇链, 如果这时候拔掉sd卡或者下电,就会导致簇链出错, 然后变为只读 。网上说把fat格式改成ext2或者ext4格式,可以解决,正在验证,等待结果~
首先格式化sd卡,再进行mount
/dev/mmcblk0 on /tmp/config_sd type ext2 (rw,relatime,errors=continue,user_xattr,acl)