文章目录
- 今天不小心把一个文件给误删了,因为不想花半天时间重新写,就查找了一下Linux下恢复文件的方法。 因为是刚删不久,文件实际的数据应该还在
- Linux:~# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda1 1968417 463571 1504846 24% / tmpfs 16384 4 16380 1% /var/lib/php5 tmpfs 16384 40 16344 1% /var/run tmpfs 131072 4 131068 1% /tmp ssl_service 262144 0 262144 0% /kssl/HRP/cache
-
- Linux:~# debugfs debugfs 1.37 (21-Mar-2005) debugfs: open /dev/sda1
- debugfs: ls -d /root/rand-test 180331 (12) . 180225 (12) .. 180333 (16) assess 180334 (32) experiments <180451> (12) 4913 180358 (32) data <180451> (20) .1.swp 180359 (68) periodtest.sh <180337> (44) .singletest.input.swp 180451 (24) periodtest.input 180356 (828) singletest.input <180366> (32) .periodtest.input.swp <180375> (748) .singletest.input.swp <180338> (716) periodtest.input~
- debugfs: logdump -i <180338>Inode 180338 is at group 176, block 1441809, offset 128Journal starts at block 3434, transaction 90549 FS block 1441809 logged at sequence 90622, journal block 3950 …
- debugfs: quit Linux:~/rand-test# dd if=/dev/sda1 of=/root/rand-test/periodtest.input~ bs=128 count=1 skip=1441809 1+0 records in 1+0 records out 128 bytes transferred in 0.000081 seconds (1582468 bytes/sec)
今天不小心把一个文件给误删了,因为不想花半天时间重新写,就查找了一下Linux下恢复文件的方法。
因为是刚删不久,文件实际的数据应该还在
Linux:~# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 1968417 463571 1504846 24% /
tmpfs 16384 4 16380 1% /var/lib/php5
tmpfs 16384 40 16344 1% /var/run
tmpfs 131072 4 131068 1% /tmp
ssl_service 262144 0 262144 0% /kssl/HRP/cache
Linux:~# debugfs
debugfs 1.37 (21-Mar-2005)
debugfs: open /dev/sda1
debugfs: ls -d /root/rand-test
180331 (12) . 180225 (12) .. 180333 (16) assess
180334 (32) experiments <180451> (12) 4913 180358 (32) data
<180451> (20) .1.swp 180359 (68) periodtest.sh
<180337> (44) .singletest.input.swp 180451 (24) periodtest.input
180356 (828) singletest.input <180366> (32) .periodtest.input.swp
<180375> (748) .singletest.input.swp <180338> (716) periodtest.input~
debugfs: logdump -i <180338>
Inode 180338 is at group 176, block 1441809, offset 128
Journal starts at block 3434, transaction 90549
FS block 1441809 logged at sequence 90622, journal block 3950
…
debugfs: quit
Linux:~/rand-test# dd if=/dev/sda1 of=/root/rand-test/periodtest.input~ bs=128 count=1 skip=1441809
1+0 records in
1+0 records out
128 bytes transferred in 0.000081 seconds (1582468 bytes/sec)
grep -a -B 30 -A 150 'function checkInt() ' /dev/sda1 > tmp.txt
使用debugfs的方法适用于所有文件,不过需要inode信息仍然存在。使用grep的方法,只需要实际的block中数据还存在即可恢复,不过只适用于文本文件。
另外,切记rm需谨慎
发表回复