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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

ext3文件系统反删除利器ext3grep应用实战

發布時間:2023/12/31 windows 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ext3文件系统反删除利器ext3grep应用实战 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

推薦:10年技術力作:《高性能Linux服務器構建實戰Ⅱ》全網發行,附試讀章節和全書實例源碼下載!

一、“rm –rf”帶來的困惑

國外一份非常著名的Linux系統管理員守則中有這么一條“慎用 rm –rf 命令,除非你知道此命令將帶來什么后果”,可見,這個命令對系統管理員的重要性。在實際的工作中,由此命令帶來的誤刪除數據案例屢見不鮮,很多系統管理員都遇到過或者犯過這樣的錯誤。由于開發人員對命令的不熟悉,或者粗心大意、疏于管理,執行了此命令,數據在一瞬間就被清空了。Linux不具備類似回收站的功能,這就意味著數據丟失。雖然Linux自身提供了恢復數據的機制,但是這個功能基本沒用,要恢復數據,通過常規手段是無法完成的,此時,只有找專業的數據恢復公司來恢復數據,這樣無疑要付出很大的成本和費用,造成無法估量的的損失。

可見,作為系統管理員,一定要有數據安全意識,數據保護意識,嚴格遵守相關維護守則,將這種失誤帶來的損失降低到最低。幸運的是,Linux下提供了一款開源軟件恢復誤刪的數據,利用這個ext3文件系統數據恢復工具ext3grep可以恢復誤刪除的數據。

二、 ext3grep的安裝與使用


ext3grep是一個開源的ext3文件系統反刪除工具,在ext3grep出現之前,數據被刪除后,通過常規手段恢復基本是不可能的,雖然debugfs命令可以對ext2文件系統做一些恢復,但是對ext3文件系統就無能為力了。ext3是一個日志型文件系統,ext3grep正是通過分析ext3文件系統的日志信息來恢復被刪除的文件和數據的。


操作系統環境:CentOS release 6.4。

ext3grep版本:ext3grep-0.10.1。

ext3grep官方網站:http://code.google.com/p/ext3grep/,可以從這里下載最新的ext3grep版本。這里下載的是ext3grep-0.10.1.tar.gz。


所需的系統相關包:

1 2 3 4 [root@localhost?~]#?rpm?-qa?|grep?e2fsprogs e2fsprogs-1.41.12-21.el6.x86_64 e2fsprogs-libs-1.41.12-21.el6.x86_64 e2fsprogs-devel-1.41.12-21.el6.x86_64


系統必須要安裝e2fsprogs-libs,不然后面ext3grep的安裝會出現問題。

下面進入編譯安裝階段,過程如下:

1 2 3 4 5 6 [root@localhost?/opt]#?tar?zxvf?ext3grep-0.10.1.tar.gz [root@localhost?ext3grep-0.10.1]#?./configure [root@localhost?ext3grep-0.10.1]#?make [root@localhost?ext3grep-0.10.1]#?make?install [root@localhost?ext3grep-0.10.1]#?ext3grep??-v Running?ext3grep?version?0.10.1

這樣,ext3grep就安裝完成了,默認的ext3grep命令放在/usr/local/bin目錄下。ext3grep的使用非常簡單,這里不做介紹,可以通過“ext3grep ?--help”獲取詳細的使用幫助。


三、通過ext3grep恢復誤刪除的文件與目錄


1、數據恢復準則

當發現某個分區的數據被誤刪除后,要做的第一件事是立刻卸載被誤刪除文件所在的分區,或者重新以只讀方式掛載此分區。

這么做的原因其實很簡單:刪除一個文件,就是中文件inode節點中的扇區指針清除,同時,釋放這些數據對應的數據塊,而真實的文件還存留在磁盤分區中,但是這些被刪除的文件不一定會一直存留在磁盤中,當這些釋放的數據塊被操作系統重新分配時,那些被刪除的數據就會被覆蓋,因此,在數據誤刪除后,馬上卸載文件所在分區可以降低數據塊中數據被覆蓋的風險,進而提高成功恢復數據的機率。


2、實戰ext3grep恢復文件


(1).模擬數據誤刪除環境

下面通過一個模擬環境,詳細介紹利用ext3grep恢復數據文件的過程。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 [root@localhost?/]#?mkdir?/disk??#建立一個掛載點 [root@localhost?/]#?cd?/mydata [root@localhost?mydata]#?dd?if=/dev/zero??of=/mydata/disk1??count=102400??#模擬磁盤分 #區,創建一個空設備 102400+0?records?in 102400+0?records?out 52428800?bytes?(52?MB)?copied,?1.20597?seconds,?43.5?MB/s [root@localhost?mydata]#?mkfs.ext3?/mydata/disk1??#將空設備格式化為ext3格式 [root@localhost?mydata]#?mount?-o?loop?/mydata/disk1??/disk??#掛載設備到/disk目錄下 [root@localhost?mydata]#?cd?/disk/ [root@localhost?disk]#?cp?/etc/profile??/disk???????????#復制文件到模擬磁盤分區 [root@localhost?disk]#?cp?/boot/initrd-2.6.18-164.11.1.el5xen.img??/disk [root@localhost?disk]#?echo?"ext3grep??test">ext3grep.txt?? [root@localhost?disk]#?mkdir??/disk/ext3grep???? [root@localhost?disk]#?cp?/etc/hosts??/disk/ext3grep [root@localhost?disk]#?pwd /disk [root@localhost?disk]#?ls?-al 總計?2512 drwxr-xr-x??4?root?root????4096?04-07?16:46?. drwxr-xr-x?31?root?root????4096?04-07?16:45?.. drwxr-xr-x??2?root?root????4096?04-07?16:46?ext3grep -rw-r--r--??1?root?root??????14?04-07?16:31?ext3grep.txt -rw-------??1?root?root?2535991?04-07?16:30?initrd-2.6.18-164.11.1.el5xen.img drwx------??2?root?root????4096?04-07?16:33?lost+found -rw-r--r--??1?root?root????1029?04-07?16:30?profile [root@localhost?disk]#?md5sum??profile??#獲取文件校驗碼 a6e82d979bb95919082d9aceddf56c39?profile [root@localhost?disk]#?md5sum?initrd-2.6.18-164.11.1.el5xen.img??? 031226080e00d7f312b1f95454e5a1ff??initrd-2.6.18-164.11.1.el5xen.img [root@localhost?disk]#?md5sum??ext3grep.txt 5afe55495cdb666daad667e1cd797dcb??ext3grep.txt [root@localhost?disk]#?rm?-rf?/disk/*??#模擬誤刪除數據操作 [root@localhost?disk]#?ls (2).卸載磁盤分區 執行以下命令卸載磁盤分區: [root@localhost?disk]#?cd?/opt?#切換到/opt目錄下 [root@localhost?/opt]#?umount?/disk??#卸載模擬磁盤分區 (3).查詢恢復數據信息 執行如下命令,查詢需要恢復的數據信息: [root@localhost?/opt]#?ext3grep??/mydata/disk1??--ls?--inode?2

執行該命令后,ext3grep就開始搜索可以恢復的數據文件信息,輸出下圖所示。

“ext3grep ?/mydata/disk1 ?--ls --inode 2”主要用于掃描當前文件系統下所有文件的信息,包括存在的和已經刪除的文件,其中含有D標識的就是已被刪除的文件,如果不記得被刪除的文件的名稱,可以通過這種方式來獲取要恢復的文件的名稱。

通過下面的方式可以獲取文件要恢復的路徑信息。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 [root@localhost?/opt]#?ext3grep??/mydata/disk1??--dump-names Running?ext3grep?version?0.10.1 Number?of?groups:?7 Minimum?/?maximum?journal?block:?447?/?4561 Loading?journal?descriptors...?sorting...?done The?oldest?inode?block?that?is?still?in?the?journal,?appears?to?be?from?1270629014?=?Wed?Apr??7?16:30:14?2010 Number?of?descriptors?in?journal:?63;?min?/?max?sequence?numbers:?2?/?10 Loading?disk1.ext3grep.stage2...?done ext3grep ext3grep.txt ext3grep/hosts initrd-2.6.18-164.11.1.el5xen.img lost+found profile

(4).恢復單個文件

如果要恢復被刪除的某個文件,通過下面方式即可。

1 2 3 4 5 6 7 8 9 10 [root@localhost?/opt]#?ext3grep??/mydata/disk1??--restore-file??ext3grep.txt Running?ext3grep?version?0.10.1 Number?of?groups:?7 Minimum?/?maximum?journal?block:?447?/?4561 Loading?journal?descriptors...?sorting...?done The?oldest?inode?block?that?is?still?in?the?journal,?appears?to?be?from?1270629014?=?Wed?Apr??7?16:30:14?2010 Number?of?descriptors?in?journal:?63;?min?/?max?sequence?numbers:?2?/?10 Writing?output?to?directory?RESTORED_FILES/ Loading?disk1.ext3grep.stage2...?done Restoring?ext3grep.txt

由上面的輸出可知,被刪除的文件ext3grep.txt已經成功恢復。那么恢復的數據放到哪里了呢?在這段操作中,在/opt目錄下執行ext3grep命令,恢復的數據文件就存放在/opt/ RESTORED_FILES目錄下,也就是說ext3grep會在執行恢復命令的當前目錄下自動創建一個RESTORED_FILES目錄,這個目錄專門用于存放恢復的數據。

下面是恢復指定目錄下的某個文件的操作:

1 2 3 4 5 6 7 8 9 [root@localhost?/opt]#?ext3grep??/mydata/disk1??--restore-file??ext3grep/hosts Running?ext3grep?version?0.10.1 Number?of?groups:?7 Minimum?/?maximum?journal?block:?447?/?4561 Loading?journal?descriptors...?sorting...?done The?oldest?inode?block?that?is?still?in?the?journal,?appears?to?be?from?1270629014?=?Wed?Apr??7?16:30:14?2010 Number?of?descriptors?in?journal:?63;?min?/?max?sequence?numbers:?2?/?10 Loading?disk1.ext3grep.stage2...?done Restoring?ext3grep/hosts

這里要注意的是,“--restore-file”后面指定的是恢復文件路徑,這個路徑應該是文件的相對路徑,這里的相對路徑指的是相對指定設備的路徑,比如,設備/mydata/disk1的掛載點是/disk,而ext3grep.txt文件就在/disk目錄下,因此直接指定文件名就可以了。如果要恢復/disk/ext3grep/hosts文件,那么指定的參數應該是“ext3grep/hosts”,也就是上面代碼中所指定的形式。

通過“--restore-inode”參數,只需指定文件對應的inode值即可恢復文件,操作如下,其中inode值為12的是profile文件:

1 2 3 4 5 6 7 8 9 [root@localhost?RESTORED_FILES]#?ext3grep??/mydata/disk1???--restore-inode?12 Running?ext3grep?version?0.10.1 Number?of?groups:?7 Minimum?/?maximum?journal?block:?447?/?4561 Loading?journal?descriptors...?sorting...?done The?oldest?inode?block?that?is?still?in?the?journal,?appears?to?be?from?1270629014?=?Wed?Apr??7?16:30:14?2010 Number?of?descriptors?in?journal:?63;?min?/?max?sequence?numbers:?2?/?10 Writing?output?to?directory?RESTORED_FILES/ Restoring?inode.12

下面是進入RESTORED_FILES目錄,驗證文件是否成功恢復:

1 2 3 4 5 6 7 [root@localhost?/opt]#?cd?RESTORED_FILES [root@localhost?RESTORED_FILES]#?ls ext3grep??ext3grep.txt??inode.12 [root@localhost?RESTORED_FILES]#?md5sum?ext3grep.txt? 5afe55495cdb666daad667e1cd797dcb??ext3grep.txt [root@localhost?RESTORED_FILES]#?md5sum?inode.12 a6e82d979bb95919082d9aceddf56c39??inode.12

根據校驗結果可知,這個校驗碼與文件被刪除之前的校驗碼完全一致,因此,通過這個方式恢復出來的文件是完整的。


(5).恢復所有已刪除數據

當需要恢復的文件較少時,通過前面介紹的指定文件的方式進行逐個恢復是可行的,但是如果要恢復很多個文件,如1000個以上,還采取逐個指定的方式,效率是非常低下的,此時就要利用ext3grep命令的“--restore-all”參數了,具體操作如下:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 [root@localhost?/opt]#?ext3grep??/mydata/disk1??--restore-all???????????????? Running?ext3grep?version?0.10.1 Number?of?groups:?7 Minimum?/?maximum?journal?block:?447?/?4561 Loading?journal?descriptors...?sorting...?done The?oldest?inode?block?that?is?still?in?the?journal,?appears?to?be?from?1270629014?=?Wed?Apr??7?16:30:14?2010 Number?of?descriptors?in?journal:?63;?min?/?max?sequence?numbers:?2?/?10 Loading?disk1.ext3grep.stage2...?done Restoring?ext3grep.txt Restoring?ext3grep/hosts Restoring?initrd-2.6.18-164.11.1.el5xen.img Restoring?profile [root@localhost?/opt]#?cd?RESTORED_FILES/ [root@localhost?RESTORED_FILES]#?ls?-al 總計?2512 drwxr-xr-x??4?root?root????4096?04-07?16:46?. drwxr-xr-x?31?root?root????4096?04-07?16:45?.. drwxr-xr-x??2?root?root????4096?04-07?16:46?ext3grep -rw-r--r--??1?root?root??????14?04-07?16:31?ext3grep.txt -rw-------??1?root?root?2535991?04-07?16:30?initrd-2.6.18-164.11.1.el5xen.img drwx------??2?root?root????4096?04-07?16:33?lost+found -rw-r--r--??1?root?root????1029?04-07?16:30?profile

根據這個輸出可知,“--restore-all”參數將指定存儲設備中可以恢復的文件都恢復出來并放到了RESTORED_FILES目錄中。“--restore-all”參數對恢復大量數據文件是非常有用的。


















本文轉自南非螞蟻51CTO博客,原文鏈接:http://blog.51cto.com/ixdba/1571334?,如需轉載請自行聯系原作者




總結

以上是生活随笔為你收集整理的ext3文件系统反删除利器ext3grep应用实战的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。