Ext4及F2FS文件系统 Debug
生活随笔
收集整理的這篇文章主要介紹了
Ext4及F2FS文件系统 Debug
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文件系統一些debug方法積累,不定期跟新
Ext4
- 使用 debugfs
debugfs manual
有的問題可能需要查看 inode 的信息等,此時可以把該分區鏡像通過工具全部拉取出來,通過掛在到電腦上的linux系統上使用debugfs進行查看各種文件節點等信息,如在debugfs里面通過mi <ino>查看inode信息
F2FS
-
f2fs status
cat /sys/kernel/debug/f2fs/status/sys/fs/f2fs/sda<x>https://www.kernel.org/doc/Documentation/filesystems/f2fs.txt -
CONFIG_F2FS_CHECK_FS
再內核的config中可以使能這個宏,其會對F2FS文件系統進行更多的邏輯檢查,如果檢查到錯誤會觸發bug on
-
抓取 f2fs ftrace event
echo 0 > /d/tracing/tracing_on echo 204800 > /d/tracing/buffer_size_kb echo "" > /d/tracing/set_event echo "" > /d/tracing/trace echo 1 > /d/tracing/events/f2fs/f2fs_background_gc/enable echo 1 > /sys/kernel/debug/tracing/tracing_on cat /d/tracing/trace_pipe -
在開機階段開啟f2fs ftrace
文件系統的一些問題是在開機階段mount時候,此時無法通過adb 抓取,可以在kernel的command line傳入使能f2fs trace參數
//在cmdline中加入如下參數trace_event=f2fs:* trace_buf_size=64M ftrace=tracing_on//如果想選擇性使能部分f2fs event,可以在/d/tracing/events中選擇自己需要部分加入trace_event=f2fs:f2fs_sync_fs,f2fs:f2fs_gc_begin trace_buf_size=64M ftrace=tracing_on -
使用 fcsk.f2fs 工具
fcsk.f2fs,可以在umount data分區的情況下,使用 fcsk.f2fs 對文件系統進行檢查或修復,可以通過檢查時的log,來定位文件系統問題
Usage: fsck.f2fs [options] device [options]:-a check/fix potential corruption, reported by f2fs-d debug level [default:0]-f check/fix entire partition-g add default options-O feature1[feature2,feature3,...] e.g. "encrypt"-p preen mode [default:0 the same as -a [0|1]]-S sparse_mode-t show directory tree-q preserve quota limits-y fix all the time-V print the version number and exit--dry-run do not really fix corruptions或在啟動階段如果檢查到異常就會執行fcsk進行修復,這部分可以修改 kernel command line以及修改f2fs_init_configuration代碼,使其在開機階段從kernel log中拋出更多信息
// cmdline 中加入如下參數printk.devkmsg=on//在如下位置加入c.dbg_lv = 3; //fix the debug level here--------https://android.googlesource.com/platform/external/f2fs-tools/+/a78c2885b591a8fbcfc572bbd0b4b614434bde1c/lib/libf2fs.c--------/** device information*/void f2fs_init_configuration(void){....../* calculated by overprovision ratio */c.segs_per_sec = 1;c.secs_per_zone = 1;c.segs_per_zone = 1;c.vol_label = "";c.trim = 1;c.kd = -1;c.fixed_time = -1;-----++c.dbg_lv = 3; -----c.s_encoding = 0;......}
總結
以上是生活随笔為你收集整理的Ext4及F2FS文件系统 Debug的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java设计模式(创建型)之生成器模式
- 下一篇: f2fs学习笔记 - 4. f2fs文件