應(yīng)用linux自帶工具debugfs恢復(fù)誤刪文件方法演示
1.創(chuàng)建一個(gè)文件寫(xiě)入內(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.啟動(dòng)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/
若提示權(quán)限問(wèn)題無(wú)法打開(kāi)分區(qū),請(qǐng)使用root權(quán)限打開(kāi)debugfs工具。
/home/cj/不可使用~/替代
ls -d 后會(huì)出現(xiàn)如下信息,找到刪除文件1.c,記錄下尖括號(hào)內(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.恢復(fù)文件
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
此時(shí)文件恢復(fù)成功