日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

恢复Ext3下被删除的文件(转)

發(fā)布時間:2023/12/13 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 恢复Ext3下被删除的文件(转) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前言

下面是這個教程將教你如何在Ext3的文件系統(tǒng)中恢復(fù)被rm掉的文件。

?

刪除文件

假設(shè)我們有一個文件名叫 ‘test.txt’

?

$ls -il test.txt15 -rw-rw-r– 2 root root 20 Apr 17 12:08 test.txt

注意:: “-il” 選項表示顯示文件的i-node號(15),如果你不知道Unix/Linux文件系統(tǒng)的“I結(jié)點”的話,你有必要先補充一下相關(guān)的知識。簡單說來,i結(jié)點就是操作管理文件的一個標識號。

我們再看一下其內(nèi)容:

$ cat test.txt this is test file

好,現(xiàn)在我們開始刪除文件:

$rm test.txt rm: remove write-protected regular file `test.txt’? y

?

使用 Journal 和 Inode 號恢復(fù)

注意,如果你刪除文件后重啟了系統(tǒng),那么,相關(guān)的文件 journal 會丟失,我們也就無法恢復(fù)文件了。所以,恢復(fù)文件的前提是,Journal不能丟失,即,系統(tǒng)不能重啟。

因為我們已經(jīng)知道 test.txt 文件的 inode 號是?15,所以我們可以使用 debugfs 命令來查看:

debugfs: logdump -i <15> FS block 1006 logged at sequence 404351, journal block 7241 (inode block for inode 15): Inode: 15 Type: regular Mode: 0664 Flags: 0×0 Generation: 0 User: 0 Group: 0 Size: 20 File ACL: 0 Directory ACL: 0 Links: 1 Blockcount: 8 Fragment: Address: 0 Number: 0 Size: 0 ctime: 0x48159f2d — Mon Apr 28 15:25:57 2008 atime: 0x48159f27 — Mon Apr 28 15:25:51 2008 mtime: 0x4806f070 — Thu Apr 17 12:08:40 2008 Blocks: (0+1): 10234 No magic number at block 7247: end of journal.

?

請注意上面信息中的這一行:

Blocks: (0+1): 10234

這就是inode 15存放文件的地址(數(shù)據(jù)塊)。然后,我們知道了這個地址,我們就可以使用 dd 命令,把這個地址上的數(shù)據(jù)給取出來。

#dd if=/dev/sda5 of=/tmp/test.txt bs=4096 count=1 skip= 10234 1+0 records in 1+0 records out if 是輸入的設(shè)備 of 是輸出的設(shè)備. bs 指定一個block的大小 count 說明有多少個block需要dump skip 說明從開始的地方跳過 10234 個block,并從取下一個block的數(shù)據(jù)

?

下面讓我們看一下被恢復(fù)的文件:

$cat /tmp/test.txt this is test file

當(dāng)然,上面的文件恢復(fù)是基于我們知道文件的inode,可在現(xiàn)實中,我們并不知道這個信息,如果我們不知道inode,我們還可能恢復(fù)嗎?是的,這是可能的,讓我們來看一下如何恢復(fù)。

?

使用 Journal 和 文件名恢復(fù)

如果我們不知道文件的inode我們可能恢復(fù)嗎?我可以告訴你,這是不可能的事情。不過我們有辦法知道文件的inode號。下面讓我們來看看怎么做到:

$rm mytest.txt rm: remove write-protected regular file `mytest.txt’? y

注意,我們并不知道其inode號,但我們可以使用 debugfs 命令來查看(使用其 ls -d 選項)。

debugfs: ls -d2 (12) . 2 (12) .. 11 (20) lost+found 2347777 (20) oss <2121567> (20) mytest.txt

你看文件名了吧,它的inode號是 <2121567> ,注意,被刪除了的文件的inode都是用尖括號包起來的。

即然知道了inode號,那么我們就很容易恢復(fù)了(使用 logdump選項):

debugfs: logdump -i <2121567> Inode 2121567 is at group 65, block 2129985, offset 3840 Journal starts at block 1, transaction 405642FS block 2129985 logged at sequence 405644, journal block 9(inode block for inode 2121567):Inode: 2121567 Type: bad type Mode: 0000 Flags: 0×0 Generation: 0User: 0 Group: 0 Size: 0File ACL: 0 Directory ACL: 0Links: 0 Blockcount: 0Fragment: Address: 0 Number: 0 Size: 0ctime: 0×00000000 — Thu Jan 1 05:30:00 1970atime: 0×00000000 — Thu Jan 1 05:30:00 1970mtime: 0×00000000 — Thu Jan 1 05:30:00 1970Blocks:FS block 2129985 logged at sequence 405648, journal block 64(inode block for inode 2121567):Inode: 2121567 Type: regular Mode: 0664 Flags: 0×0 Generation: 913772093User: 100 Group: 0 Size: 31File ACL: 2130943 Directory ACL: 0Links: 1 Blockcount: 16Fragment: Address: 0 Number: 0 Size: 0ctime: 0x4821d5d0 — Wed May 7 21:46:16 2008atime: 0x4821d8be — Wed May 7 21:58:46 2008mtime: 0x4821d5d0 — Wed May 7 21:46:16 2008Blocks: (0+1): 2142216

上面有很多信息,讓我們仔細地查看,你可以看到下面一行信息:

FS block 2129985 logged at sequence 405644, journal block 9

并且,其類型是:

Type: bad type

再仔細看一下文件的時間戳下面的Blocks:?什么也沒有。那么,讓我們看一下下一個block:

FS block 2129985 logged at sequence 405648, journal block 64(inode block for inode 2121567):

這一條Journal就有block信息了:

Blocks: (0+1): 2142216

這就是被刪除文件的地址,讓我們再次運行恢復(fù)命令:

$sudo dd if=/dev/sda5 of=/home/hchen/mytest_recovered.txt bs=4096 skip=2142216 count=1

再讓我們來檢查一下文件內(nèi)容:

$ cat mytest_recovered.txt this is my test file

?

小結(jié)

好了,下面是我們的一些總結(jié):
1)使用 debugfs: ls -d 找到被刪除文件的inode號。
2)使用 debugfs:logdump找到文件的數(shù)據(jù)塊地址。
3)使用dd 命令把數(shù)據(jù)取出來存成文件。

網(wǎng)上有很其它不同的方法來恢復(fù)文件,基本上也是使用debugfs這個命令,有的還使用到了lsdel,其實大同小異,這個教程是我在網(wǎng)上看到的,雖然他說只是針對Ext3文件系統(tǒng)的,但我總感覺應(yīng)該可以用于Ext2文件系統(tǒng),不過我沒有試過。也許Ext2和Ext3被debugfs輸出的信息不一樣吧。大家可以去試試。

?

轉(zhuǎn)自?http://www.cnblogs.com/ggjucheng/archive/2012/10/07/2714308.html

轉(zhuǎn)載于:https://www.cnblogs.com/fwdxl/p/6706053.html

總結(jié)

以上是生活随笔為你收集整理的恢复Ext3下被删除的文件(转)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。