linux误删文件恢复的方法 ----debugfs

 

应用linux自带工具debugfs恢复误删文件方法演示

1.创建一个文件写入内容并删除

cj@cj-virtual-machine:~/Documents/debugfs_example$ vim 1.c
cj@cj-virtual-machine:~/Documents/debugfs_example$ ls
1.c
cj@cj-virtual-machine:~/Documents/debugfs_example$ rm 1.c

2.查看文件所在分区

cj@cj-virtual-machine:~/Documents/debugfs_example$ df ./
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda1       41020640 23113464  15793744  60% /

3.启动debugfs工具

cj@cj-virtual-machine:~/Documents/debugfs_example$ sudo debugfs
debugfs 1.44.1 (24-Mar-2018)
debugfs:  open /dev/sda1
debugfs:  ls -d /home/cj/Documents/debugfs_example/

若提示权限问题无法打开分区,请使用root权限打开debugfs工具。
/home/cj/不可使用~/替代

ls -d 后会出现如下信息,找到删除文件1.c,记录下尖括号内的数值,按q回到debugfs。

 1574187  (12) .    1576545  (4072) ..   <1582211> (16) .1.c.swp   
<1590178> (4044) 1.c   
(END)

然后使用logdump命令,并使用quit退出debugfs如下

debugfs:  logdump -i <1590178>
Inode 1590178 is at group 194, block 6292541, offset 128
Journal starts at block 33979, transaction 115345
No magic number at block 36187: end of journal.
debugfs:  quit

4.恢复文件

cj@cj-virtual-machine:~/Documents/debugfs_example$ sudo dd if=/dev/sda1 of=/home/cj/Documents/debugfs_example/1.c bs=128 count=1 skip=629541
1+0 records in
1+0 records out
128 bytes copied, 0.000390194 s, 328 kB/s

bs值为offset
skip值为block
此时文件恢复成功

你可能感兴趣的:(linux技能,linux)