下面讲解如何具体使用debug file system
1. 在kernel中使用debug file system
make menuconfig -->Kernel hacking -->选中Debug Filesystem (CONFIG_DEBUG_FS)选项。
make menuconfig -->kernel hacking -->选中Kernel debugging (CONFIG_DEBUG_KERNEL)选 项。
注:"kernel debugging"选项必须使能,否则在进行第三步的时候,会报“mount: unknown filesystem type 'debugfs'”
2. 编译kernel,下载并且运行之。
3. 挂载debug file system
# mount -t debugfs none /sys/kernel/debug
或者
# mkdir /debug
# mount -t debugfs none /debug
进入/debug文件夹及其子文件夹获得想要的信息。
Linux ext2文件系统下恢复误删的文件
一、文件误删
如上图可得到
(1)/dev/sdb2挂载到/recover目录,且/dev/sdb2使用的是ext3 filesystem
(2)/dev/sdb1挂载到/software目录,且/dev/sdb1使用的是ext2 filesystem
如上图可得到:/software目录中有一个文件grub.conf
如上图可得到:/software目录中的文件grub.conf被删除
二、找回文件
由于目录/software中的grub.conf文件已被删除,那么应该怎么找回该文件呢?由于/dev/sdb1分区使用的是ext2 filesystem,所以我们可以使用工具:debugfs,来找回文件
注意:debugfs是linux系统自带的一个文件恢复工具,它可以恢复ext2文件系统的文件,但不能恢复ext3文件系统的文件
第一步:将要找回的文件所在的分区重新挂载成只读
(因为这样比较安全,可以防止因新的文件写入该分区而导致无法找回grub.conf文件)
[root@client ~]# mount -n -o remount,ro /dev/sdb1
注意:如果不能重新挂载,那么一定有用户正在使用该分区中的文件,我们可以使用指令:fuser -m -v /dev/sdb1来查看当前哪个用户正在使用该分区中的文件,然后使用fuser -k -m -v /dev/sdb1来杀死用户使用该分区的任何进程
第二步:使用debugfs工具恢复文件
注意两点
(1)lsdel列出已被删除的文件的节点信息;stat显示某个节点所对应的文件信息;dump表示恢复作用
(2)如果被删除的文件很多,那么通过lsdel可看出文件的时间,然后自己判断进行恢复
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)