應用linux自帶工具debugfs恢復誤刪文件方法演示
1.創(chuàng)建一個文件寫入內(nèi)容并刪除
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.查看文件所在分區(qū)
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/
若提示權限問題無法打開分區(qū)呀酸,請使用root權限打開debugfs工具。
/home/cj/不可使用~/替代
ls -d 后會出現(xiàn)如下信息,找到刪除文件1.c焚鲜,記錄下尖括號內(nèi)的數(shù)值危号,按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
此時文件恢復成功