首页/安全/取证与溯源速查/debugfs 只读查看 inode 时间与块映射
Linux 取证135 条

debugfs 只读查看 inode 时间与块映射

debugfs 可以只读方式访问 ext 系文件系统镜像:stat 命令查看 inode 的全部时间戳与数据块分布,缺陷修复或深层核验时使用。

取证与溯源速查安全更新于 2026-10-13

debugfs 直读 inode 结构

debugfs 是 ext2/ext3/ext4 文件系统的调试工具,也能以只读方式打开镜像文件,把文件系统内部的 inode 结构直接读出来。它的 stat 命令会列出某个 inode 的完整时间戳(atime、mtime、ctime、crtime)以及数据块分布,适合做深层核验:当 istat 之类工具的输出需要交叉验证,或者要看文件碎片与块映射细节时使用。

默认只读,写入要显式打开

debugfs 默认以只读模式打开镜像,要写操作必须显式加 -w 参数。取证场景下这条规则很重要:一次误加 -w 就可能改动原始镜像,导致哈希变化、证据失效。稳妥做法是在副本上操作,原始镜像保持只读挂载或只做哈希校验。

基本信息

适用平台Linux(ext2/ext3/ext4 文件系统与对应镜像)
典型用法debugfs -R '命令' 镜像文件
核心命令stat <inode 号> 查看 inode 详情与块映射
模式默认只读;写入需显式加 -w
配套命令ls -l、cat、dump 等可辅助定位与导出

典型使用场景

  • 核验 inode 时间:把四个时间戳与 istat 结果交叉比对
  • 查看数据块分布:判断文件是否被追加或在碎片区域写入
  • 确认 inode 是否被标记删除:结合块位图与目录项看有无残留
  • 检查根目录与关键目录项:核对被隐藏或伪造的文件名
  • 镜像只读复核:在不挂载镜像的前提下读取文件内容

只读查看 inode

只读查看 inode
# 只读打开镜像,查看指定 inode 的完整信息
debugfs -R 'stat <12845>' /evidence/root.dd 2>/dev/null | sed -n '1,20p'

# 列出根目录条目,确认目标文件的实际 inode 号
debugfs -R 'ls -l /' /evidence/root.dd 2>/dev/null | head -20

# 按 inode 导出文件内容(不挂载镜像)
debugfs -R 'dump <12845> /mnt/ev/out.bin' /evidence/root.dd 2>/dev/null

# 分析前记录镜像哈希,保证后续可验证
sha256sum /evidence/root.dd

stat 输出要点

字段含义取证用法
Inodeinode 号与文件类型确认对象类型与唯一标识
Size逻辑大小与实际内容长度对照
crtime创建时间(部分工具显示)判断文件最早出现时刻
mtime / ctime / atime内容修改、属性变更、访问时间三者差异可推断操作类型
BLOCKS数据块清单看碎片与追加写入痕迹
debugfs 加 -w 打开后即可写:取证过程中一律对副本操作,并在操作前后分别计算哈希,证明原始镜像未被改动。
stat 命令的 inode 号需要用尖括号包裹(如 stat <12845>),直接写数字会被当成路径处理。

易错点

  • 误加 -w 打开镜像:一次误操作就可能改动证据,后续哈希无法对上
  • inode 号未加尖括号:命令被当成路径解析,输出为空或报错
  • 在挂载后的文件系统上操作:挂载会更新部分 inode 字段,证据被污染
  • 只看时间戳不看块分布:追加与碎片写入的痕迹被忽略
  • 不做哈希记录:无法证明分析过程没有改动原始镜像

数据来源与参考

  • debugfs man 手册(-R 与 stat)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌