主页 > linux内核 > debugfs命令[原创]

debugfs命令[原创]

2013年1月3日 发表评论 查看评论

明月最近使用debugfs,结果找不到中文翻译,所以就帮忙翻译了下。方便后面需要的人使用。

show_debugfs_params, paramsShow debugfs parameters
open_filesys, open Open a filesystem

打开文件系统

close_filesys, close Close the filesystem

关闭文件系统

feature, features Set/print superblock features

设置/打印超级块特性

dirty_filesys, dirty Mark the filesystem as dirty

将文件系统状态设置为dirty,mount时候会深入检查每个文件的完整性

init_filesys Initialize a filesystem (DESTROYS DATA)

初始化文件系统,删除数据。

show_super_stats, stats Show superblock statistics

列出超级快统计信息

ncheck Do inode->name translation

inode号翻译成文件名

icheck Do block->inode translation

块号翻译成inode号

change_root_directory, chroot Change root directory

改变root目录

change_working_directory, cd Change working directory

改变工作目录

list_directory, ls List directory

列出目录列表

show_inode_info, stat Show inode information

现实inode信息

dump_extents, extents, ex Dump extents information

Dump出文件保存的范围

link, ln Create directory link

建立link链接

unlink Delete a directory link

删除link链接

mkdir Create a directory

建立目录

rmdir Remove a directory

删除目录

rm Remove a file (unlink and kill_file, if appropriate)

删除一个文件,合适的时候也可以用unlink和kill_file

kill_file Deallocate an inode and its blocks

删除一个inode和它对应的block

clri Clear an inode’s contents

清除一个inode的内容

freei Clear an inode’s in-use flag

清除一个inode的‘in-use’标识

seti Set an inode’s in-use flag

设置一个inode的‘in-use’标识

testi Test an inode’s in-use flag

返回一个inode当前的‘in-use’标识

freeb Clear a block’s in-use flag

清除一个block的‘in-use’标识

setb Set a block’s in-use flag

设置一个block的‘in-use’标识

testb Test a block’s in-use flag

返回一个block当前的‘in-use’标识

modify_inode, mi Modify an inode by structure

修改一个inode的数据结构

find_free_block, ffb Find free block(s)

从目标开始找到第一个空闲的block并分配它。(明月还没搞清这个用来干嘛的)

find_free_inode, ffi Find free inode(s)

从目标开始找到第一个空闲的indoe并分配它。(同上)

print_working_directory, pwd Print current working directory

查看当前工作目录

expand_dir, expand Expand directory

展开目录

mknod Create a special file

创建一个特殊的设备文件(命名管道、字符设备或块设备)
如果是一个字符字符或块设备,必须指定主设备号和从设备号。

list_deleted_inodes, lsdel List deleted inodes

列出删除的inode

undelete, undel Undelete file

恢复已删除文件

write Copy a file from your native filesystem

复制文件,命令格式是:write source_file out_file

dump_inode, dump Dump an inode out to a file

导出inode内容到一个文件,命令格式是:dump [-p] filespec out_file,加上-p会导出inode的所有者、组和权限信息匹配。

cat Dump an inode out to stdout

在标准输出显示inode内容

lcd Change the current directory on your native filesystem

改变当前工作目录

rdump Recursively dump a directory to the native filesystem

递归地转储目录及其所有内容(包括常规文件,符号链接和其他目录)到指定目录

set_super_value, ssv Set superblock value

设置超级块字段属性,使用ssv -l查看可设置的字段

set_inode_field, sif Set inode field

设置inode的字段属性,使用sif -l查看可设置的字段

set_block_group, set_bg Set block group descriptor field

设置快的字段属性,使用set_bg -l查看可设置的字段

logdump Dump the contents of the journal

导出ext系统的日志,必须是文件系统的has_journal这个属性没禁用。

htree_dump, htree Dump a hash-indexed directory

在标准输出显示hash-indexed目录结构

dx_hash, hash Calculate the directory hash of a filename

计算制定目录的hash值

dirsearch Search a directory for a particular filename

在指定目录下查找文件,命令是: dirsearch dir filename

bmap Calculate the logical->physical block mapping for an inode

计算逻辑快号,命令是:bmap logical_blk ,结果是文件的物理块号加上后面的逻辑块

imap Calculate the location of an inode

打印inode索引节点数据结构

dump_unused Dump unused blocks

dump出未使用的块

使用debugfs找回丢失的数据

网上有人介绍下面方法恢复:

1)使用 debugfs: ls -d 找到被删除文件的inode号。
2)使用 debugfs:logdump找到文件的数据块地址。
3)使用dd 命令把数据取出来存成文件。

不过明月看到undel之的介绍后,用了下面的简单方法就恢复了丢失文件:

ls -d 查看误删文件的inode
debugfs: ls -d
2 (12) . 2 (12) .. 11 (20) lost+found 12 (28) mysql20121121.sql
13 (28) FastDFS_v3.11.tar.gz 1308161 (16) FastDFS 130817 (12) hzt
14 (36) epel-release-6-7.noarch.rpm 15 (32) keepalived-1.2.7.tar.gz
1177345 (44) keepalived-1.2.7 <16> (20) 20121218.sql
我们这里恢复 20121218.sql,可以看到它的inode是<16>
debugfs: undel <16> 20121218.sql
这样就恢复了。简单吧。。

原创文章,转载请注明: 转载自肚腩照明月'blog

本文链接地址: debugfs命令[原创]

文章的脚注信息由WordPress的wp-posturl插件自动生成


  1. 本文目前尚无任何评论.

SEO Powered by Platinum SEO from Techblissonline