应用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
此时文件恢复成功