公司购买了一款s3c2416核心板用于开发(淘宝上190块,邮票孔的那种),使用yaffs2格式的文件系统,由于对方提供的文件问题极多,期间各种折腾(此处略去一万字),目前总算可以使用,但还有一个问题,描述如下:
刚进入文件系统时是正常的,但当我删除一个文件的时候问题就来了,系统会出现错误打印,存储空间也会变得越来越小
# df
nand_erase: attempt to erase a bad block at page 0x00004940
**>> Erasure failed 262
**>> Block 262 retired
Block 262 is in state 9 after gc, should be erased
Filesystem Size Used Available Use% Mounted on
rootfs 124.0M 34.6M 89.4M 28% /
/dev/root 124.0M 34.6M 89.4M 28% /
tmpfs 30.1M 40.0k 30.1M 0% /tmp
# df
nand_erase: attempt to erase a bad block at page 0x00004980
**>> Erasure failed 263
**>> Block 263 retired
Block 263 is in state 9 after gc, should be erased
Filesystem Size Used Available Use% Mounted on
rootfs 124.0M 34.7M 89.3M 28% /
/dev/root 124.0M 34.7M 89.3M 28% /
tmpfs 30.1M 44.0k 30.1M 0% /tmp
#
过了一会儿又好了,仔细研究发现其出错的块与我所删除的文件大小相关。
比如我删除了一个10M大小的文件,能看到Used的空间小了10M,然后开始有出错打印,Used的空间逐渐上升,直到上升了10M后恢复正常。
另外,当问题出现后,如果重启板卡会有如下打印
block 263 is bad
使用nand erase也不行,需要用nand scrub才能还原。
各位有谁有这方面的经验的,请给点建议 |