如何根据文件的inode号查找inode数据

1. 根据ls -i 查看文件的inode号

2. 使用debugfs命令查看文件所在磁盘分区的超级块信息

#debugfs /dev/sda2

debugfs: stats

...

Inode count:   5152768

Block count:   20590080

Block size:     4096

Inode size:     256

Inodes per group: 8192

...

Group 11: block bitmap at 360448, inode bitmap at 360449, inode table at 360450

     11878 free blocks, 7687 free inodes, 0 used directories

...


3. 计算特定inode号的inode数据偏移

例如:以90612为例

90612 = 11*8192 + 500           --->  位于11 block group(从0开始编码)

        500 = (4096 / 256 ) * 31 + 4    ---->  block group内的31block的第3个(4-1)inode项


inode数据位置:(360450 + 31 = 360481) 块,偏移为(4-1)*256 = 768


4. 打印inode数据

dd if=/dev/sda2 bs=4096 skip=360481 count=1 2>/dev/null | awk 'BEGIN { LINE=0 } { if (LINE>=(768/16)) print; LINE=LINE+1 }' | xxd


注意:

debugfs的logdump -i <90612>也是用来计算本数据的,但是貌似它默认是按照inode size为128计算的,而本例中inode size为256,所以logdump得出的数据是错误的。


参考资料:

1. http://dengqi.blog.51cto.com/5685776/1351708


  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值