lss1330 发表于 2021-1-28 12:45:51

嵌入式Linux写的FAT格式文件在windows无法正常看到

使用嵌入式linux系统进行数据记录,SD卡格式为vfat,有一张卡出现奇怪的现象,在linux下能正常查看到新记录的文件,但是windows下无法看到。
初步分析,SD卡文件系统异常,在windows下chkdsk SD卡,会提示需要修复。我在linux系统中,每次挂载文件系统的时候都会用fsckf.vfat自动检查修复文件系统。
是由于linux和windows系统间fat文件 系统的差异导致的问题吗?有没有办法避免呢?

lss1330 发表于 2021-1-28 12:46:32

在windows下使用winhex可以看到新记录的文件

dukelec 发表于 2021-1-28 13:01:48

本帖最后由 dukelec 于 2021-1-28 13:04 编辑

linux 寫了數據 sync 了沒?


遇到過:fat 格式 U 盤在 linux 上可以讀寫,在 Windows 上不顯盤符、不報錯、也無法格式化,在 linux 上格式化再試也不行。換個 Windows 電腦卻又沒問題。

lss1330 发表于 2021-1-28 13:17:52

dukelec 发表于 2021-1-28 13:01
linux 寫了數據 sync 了沒?




记录的时候会定期调用sync函数的。我们会在写文件的时候进行SD卡插拔实验,文件系统肯定扛不住的,只是linux下和windows下表现不一致,这个不知道有没有办法搞成相同的

dukelec 发表于 2021-1-28 13:39:49

本帖最后由 dukelec 于 2021-1-28 13:42 编辑

lss1330 发表于 2021-1-28 13:17
记录的时候会定期调用sync函数的。我们会在写文件的时候进行SD卡插拔实验,文件系统肯定扛不住的,只是li ...

寫數據立即調用 sync,定時調用可能正好寫了數據沒 sync 就拔了卡

或者以 sync 方式掛載,就不用自己調用 sync 了

linux 魯棒性比 windows 好很多,我曾經買專輯內附贈品 U 盤,壞塊非常多,在 Windows 下使用,文件丟失特別嚴重,空盤只存了兩張圖片,安全退出再插入,圖片就打不開了。同一個 U 盤,全盤格式化成 ext4 格式在 linux 下使用,竟然一切正常,存了很多內容也不丟數據。

上上樓說的 windows 不認盤的問題,最終是在 linux 下,用 dd 命令把全盤寫 0,再重新分區、格式化,問題解決。

沒可能把 linux 的魯棒性降低到和 Windows 一樣。天下沒有完全相同的樹葉,上上樓的例子,同樣是 Windows 表現也不一致。

lss1330 发表于 2021-1-28 15:52:16

dukelec 发表于 2021-1-28 13:39
寫數據立即調用 sync,定時調用可能正好寫了數據沒 sync 就拔了卡

或者以 sync 方式掛載,就不用自己調 ...

以同步的方式挂载的话,记录的性能可能会被降低也,有什么方式可以保持记录性能不?
页: [1]
查看完整版本: 嵌入式Linux写的FAT格式文件在windows无法正常看到