1.debugfs由block编号推导存放的具体文件(包括目录的数据)
icheck block编号
ncheck inode编号
在我的另一篇博客上:http://sundayhut.is-programmer.com/posts/49173.html
有详细过程
2.debugfs查看文件(包括目录的数据)所存放的block号
该功能即1的逆向查找
查看文件stat filename
查看目录stat dirname
这里有一点要注意,使用stat查找文件时,一定要使用挂载文件目录的相对路径,否则会出现一下问题:
File not found by ext2_lookup
怎么解决呢?看如下例子:
我将/dev/sdd1挂载到/mnt/sdd1上。输入debugfs /dev/sdd1后,若要查看/mnt/sdd1目录下的ext2_256M文件,你应该输入
stat ext2_256M或者stat ./ext2_256M
而不应该输入:
stat /mnt/sdd1/ext2_256M
截图入下:
正确的输入stat ext2_256M后,屏幕上显示如下:
其中BLOCKS:后面为stat查看数据所占的块号!!注意是块号,而不是扇区号。。人家都写了BLOCKS了,怎么会以为是扇区号呢。
其中倒数第二行的(0-3)表示其第0到第3个数据块所对应的块号
3.恢复刚刚误删的文件
确定要删除的文件在哪个分区上,比如我删除的文件在/mnt/sde1目录下文件,根据我的挂载目录的习惯,我知道这个分区是/dev/sde1,接下来就用stat的lsdel显示最近删除的东西,以及dump指令来恢复
lsdel
dump <inode号> path 其中inode号在lsdel时会显示。path是你想恢复的路径
4.关于ls,在debugfs中,输入ls和ls -l,分别有如下显示:
输入ls:
上图中每个文件或者目录项对应着3个项,如 737281 (3696) m_ext2
其中737281为inode号,括号中数字含义不明。
ls -l显示如下
以m_ext2来分析
其中第一列737281为inode编号,4096为size,第2、3、4、5列含义不明。有知道的读者忘指教~