作者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://www.ptt.cc/bbs/LinuxDev/M.1610967371.A.89A.html
※ 編輯: XAMDOU (114.136.231.192 臺灣), 01/18/2021 18:56:54
→ XAMDOU: 補充一下,介面是 USB 01/18 18:57
→ bamchisu: df -i 可以看inode數目,你可以先照你的方法 01/18 23:35
→ bamchisu: 弄很多之檔案,然後用df -i看一下OS那邊inode數目有沒有 01/18 23:36
→ bamchisu: 改,確認是否為inode問題再來切換kernel版本 01/18 23:36
→ bamchisu: /boot partition弄大一點一次多compile幾個kernel方便 01/18 23:37
→ bamchisu: 你切換 01/18 23:37
→ bamchisu: 以上純屬小弟建議,有錯請前輩指正 01/18 23:42