作者XAMDOU (萨姆德)
看板LinuxDev
标题[问题] linux file system
时间Mon Jan 18 18:56:03 2021
手上拿到的一个 device 有自己的 low-level RAM IO 的 C SDK
然後实作上透过 FatFs 模拟 FAT file partition
这个 partition 可以有两种途径读写资料
1. native linux file operation
2. C SDK(with FatFs)
有一个 case 是在不 remount 的情况下
透过 C SDK 去修改 partition 上面的档案
然後在 call ioctl("/dev/sda1", BLKFLSBUF, 0) 去更新之後
在从 linux mount point 用 ls 去看有没有变化
现在遇到一个问题是,在不一样的 kernel 版本跑起来的状况不太一样
请问这个问题要怎麽追比较好呢?
我这边目前怀疑是有 inode 的 target 没有更新到 os 这边(不确定说法正不正确)
而透过ioctl + BLKFLSBUF 不见得能够达成更新的效果
有什麽 tool 或是指令比较适合追这个问题?
平台:一般 linux server/desktop 平台
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.136.231.192 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/LinuxDev/M.1610967371.A.89A.html
※ 编辑: XAMDOU (114.136.231.192 台湾), 01/18/2021 18:56:54
1F:→ XAMDOU: 补充一下,介面是 USB 01/18 18:57
2F:→ bamchisu: df -i 可以看inode数目,你可以先照你的方法 01/18 23:35
3F:→ bamchisu: 弄很多之档案,然後用df -i看一下OS那边inode数目有没有 01/18 23:36
4F:→ bamchisu: 改,确认是否为inode问题再来切换kernel版本 01/18 23:36
5F:→ bamchisu: /boot partition弄大一点一次多compile几个kernel方便 01/18 23:37
6F:→ bamchisu: 你切换 01/18 23:37
7F:→ bamchisu: 以上纯属小弟建议,有错请前辈指正 01/18 23:42