主题:[求助] 关于TF卡文件系统的问题 共有94055人关注过本帖 |
---|
![]() barrypp |
1楼 信息 | 搜索 | 邮箱 |
![]() ![]() ![]() ![]() |
[求助] 关于TF卡文件系统的问题 ![]() 遇见一个问题,tf卡的文件系统容易损坏。因此我想寻求一下建议。 比如,tf卡用什么样的文件系统合适,fat32、ext2 ? 当其文件系统损坏时运行什么样的命令可以自动修复? 我试过mkfs.vfat和mkdosfs,均无法格式化现在用的tf卡,提示:lseek:value too large.... mkfs.ext2可以格式化tf卡,但文件系统损坏后没有e2fsck指令来检测与修复。 |
单帖管理 | 引用 | 回复 ![]() |
![]() lgz |
2楼 信息 | 搜索 | 邮箱 |
![]() ![]() ![]() ![]() |
![]() 你好,我们板子上文件系统比较精简没有修复的程序所以不能进行修复,只能在电脑上修复,建议使用ext2的格式,如果要在windows上读取tf卡的内容,只能做成fat32的格式。文件系统容易损坏大多是因为使用不当造成的,比如读写tf卡时突然掉电,这些情况造成的损坏这些文件系统都是不能避免的,使用中最好是进行umount之后再取出tf卡 |
单帖管理 | 引用 | 回复 ![]() |
![]() barrypp |
3楼 信息 | 搜索 | 邮箱 |
![]() ![]() ![]() ![]() |
![]() 这个嵌入式平台有软关机的方法么? |
单帖管理 | 引用 | 回复 ![]() |
![]() lgz |
4楼 信息 | 搜索 | 邮箱 |
![]() ![]() ![]() ![]() |
![]() 你好,用halt命令就是关机了,不过关机之后只能按复位键或者断电重启才能开机 |
单帖管理 | 引用 | 回复 ![]() |
![]() barrypp |
5楼 信息 | 搜索 | 邮箱 |
![]() ![]() ![]() ![]() |
![]() 你们的系统支持NTFS格式么? 或者能不能增加fsck.vfat或fsck.ext2 或者上哪个网站找fsck.vfat或fsck.ext2的源码? |
单帖管理 | 引用 | 回复 ![]() |
![]() barrypp |
6楼 信息 | 搜索 | 邮箱 |
![]() ![]() ![]() ![]() |
![]() 如果用halt进行软关机的话,硬件层面上有没有什么标识来表明“关机完毕” ? |
单帖管理 | 引用 | 回复 ![]() |
![]() lgz |
7楼 信息 | 搜索 | 邮箱 |
![]() ![]() ![]() ![]() |
![]() 支持NTFS,可以挂载 fsck在util-linux里面有 https://en.wikipedia.org/wiki/Util-linux https://github.com/karelzak/util-linux 软关机之后系统的时钟电源都还在工作,硬件上不太好检测,你为什么要软关机呢,对我们这个平台没什么意义 |
单帖管理 | 引用 | 回复 ![]() |
![]() barrypp |
8楼 信息 | 搜索 | 邮箱 |
![]() ![]() ![]() ![]() |
![]() 呃...... 因为每次直接断电后,tf卡的文件系统都会处于没有正确umount的状态(dmesg里写的),多次直接断电后,tf卡的文件系统必然损坏(e2fsck显示进行了修复),更多的直接断电后,(假设没有进行修复),tf文件系统有一定几率出现严重损坏(导致写入的数据丢失等) |
单帖管理 | 引用 | 回复 ![]() |
![]() barrypp |
9楼 信息 | 搜索 | 邮箱 |
![]() ![]() ![]() ![]() |
![]() 当然,我现在移植了一个e2fsck进去,(没找到dosfsck的源码)。缺点是每次启动都会有30~60秒的e2fsck运行时间.... 不知道有没有更好的解决方案 ? |
单帖管理 | 引用 | 回复 ![]() |
![]() lgz |
10楼 信息 | 搜索 | 邮箱 |
![]() ![]() ![]() ![]() |
![]() 你好,如果调用软关机的话是应该可以避免文件系统损坏的,软关机之前系统会写入所有cache的内容,然后umount文件系统,你也可以在调用halt之前先调用sync以及umount文件系统。 为了减小文件系统损坏的概率,可以使用ext4的文件系统,mount的时候跟参数-o sync, 在应用程序中有规律的调用fsync,ext4文件系统是日志文件系统,即使出错修复也更快,你可以测试一下ext4的文件系统 你那边是程序在写数据的时候直接断电的吧? |
单帖管理 | 引用 | 回复 ![]() |
![]() barrypp |
11楼 信息 | 搜索 | 邮箱 |
![]() ![]() ![]() ![]() |
![]() 是的,你们可以直接提供mkfs.ext4,fsck.ext4 么? [此贴子已经被作者于2017-8-30 15:40:47编辑过]
|
单帖管理 | 引用 | 回复 ![]() |
![]() lgz |
12楼 信息 | 搜索 | 邮箱 |
![]() ![]() ![]() ![]() |
![]() 你好,你在电脑上做ext4的文件系统吧,ext4文件系统挂载时会先检测修复一次,你先测试一下,另外mount时请跟参数-o sync, 这个对减小文件系统损坏有效 http://blog.csdn.net/wang_shuai_ww/article/details/20724069交叉编译fsck和mkfs工具的介绍 [此贴子已经被作者于2017-8-30 17:02:04编辑过]
|
单帖管理 | 引用 | 回复 ![]() |
![]() barrypp |
13楼 信息 | 搜索 | 邮箱 |
![]() ![]() ![]() ![]() |
![]() 非常感谢你们的建议,用了ext4后,确实启动快多了。一般就算直接断电,e2fsck也只需极少的时间(一般不到1s)就完成检测与恢复了。 只是还不清楚ext4格式对sd卡来说,相比于ext2,会增加多少损耗? |
单帖管理 | 引用 | 回复 ![]() |
![]() lgz |
14楼 信息 | 搜索 | 邮箱 |
![]() ![]() ![]() ![]() |
![]() 你好,ext4是日志文件系统,会预留一个专门的区域来记录文件的更改,默认情况下只会记录文件的metadata,平常使用应该是不会占用太多空间的,更多详细的知识你可能需要自己去查阅相关资料了,最简单的就是做好文件系统之后看剩余可用空间 |
单帖管理 | 引用 | 回复 ![]() |