debugfs命令恢復被誤刪的檔案
每個被刪除的檔案都會在磁碟底層存在一個備份
所以想要完全保密必須銷燬啊
ls -d # -d或--directory 顯示目錄名稱而非其內容。
ls -i # -i或--inode 顯示檔案和目錄的inode編號
如何在Ext3的檔案系統中恢復被rm掉的檔案。
[[email protected]Gw za]# debugfs
debugfs 1.39 (29-May-2006)
debugfs: open /dev/sda3 #先使用df命令得到刪除檔案所在的裝置,如下圖:
debugfs: ls -d # -d或--directory 顯示目錄名稱而非其內容。
1556130 (12) . 1166977 (12) .. 1556131
1556139 (20) abc
1556134 (16) za.sh 1556133
1556140 (3756) zabbixStatistic.sh.bak <1556144> (3724) hoho
<1556144> (3712) 00
debugfs: close
debugfs: quit
[[email protected] za]#
假設我們有一個檔名叫 ‘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檔案系統的“I結點”的話,你有必要先補充一下相關的知識。簡單說來,i結點就是操作管理檔案的一個標識號。
我們再看一下其內容:
$ cat test.txtthis is test file
好,現在我們開始刪除檔案:.
$rm test.txtrm: remove write-protected regular file `test.txt’? y
使用 Journal 和 Inode 號恢復
注意,如果你刪除檔案後重啟了系統,那麼,相關的檔案 journal 會丟失,我們也就無法恢復檔案了。所以,恢復檔案的前提是,Journal不能丟失,即,系統不能重啟
因為我們已經知道 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: 0×48159f2d — Mon Apr 28 15:25:57 2008
atime: 0×48159f27 — Mon Apr 28 15:25:51 2008
mtime: 0×4806f070 — 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存放檔案的地址(資料塊)。然後,我們知道了這個地址,我們就可以使用 dd 命令,把這個地址上的資料給取出來。
切換至命令列:
1+0 records in
1+0 records out
- if 是輸入的裝置
- of 是輸出的裝置.
- bs 指定一個block的大小
- count 說明有多少個block需要dump
- skip 說明從開始的地方跳過 10234 個block,並從取下一個block的資料。此處的值是logdump中Blocks: (0+1):10234的值
下面讓我們看一下被恢復的檔案:
$cat /tmp/test.txtthis is test file
當然,上面的檔案恢復是基於我們知道檔案的inode,可在現實中,我們並不知道這個資訊,如果我們不知道inode,我們還可能恢復嗎?是的,這是可能的,讓我們來看一下如何恢復。
使用 Journal 和 檔名恢復
如果我們不知道檔案的inode我們可能恢復嗎?我可以告訴你,這是不可能的事情。不過我們有辦法知道檔案的inode號。下面讓我們來看看怎麼做到:
$rm mytest.txtrm: 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號,那麼我們就很容易恢復了(使用 logdump選項):
debugfs: logdump -i <2121567> #使用logdump -i <節點號>Inode 2121567 is at group 65, block 2129985, offset 3840
Journal starts at block 1, transaction 405642
FS 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: 0
User: 0 Group: 0 Size: 0
File ACL: 0 Directory ACL: 0
Links: 0 Blockcount: 0
Fragment: Address: 0 Number: 0 Size: 0
ctime: 0×00000000 — Thu Jan 1 05:30:00 1970
atime: 0×00000000 — Thu Jan 1 05:30:00 1970
mtime: 0×00000000 — Thu Jan 1 05:30:00 1970
Blocks:
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: 913772093
User: 100 Group: 0 Size: 31
File ACL: 2130943 Directory ACL: 0
Links: 1 Blockcount: 16
Fragment: Address: 0 Number: 0 Size: 0
ctime: 0×4821d5d0 — Wed May 7 21:46:16 2008
atime: 0×4821d8be — Wed May 7 21:58:46 2008
mtime: 0×4821d5d0 — Wed May 7 21:46:16 2008
Blocks: (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這就是被刪除檔案的地址,讓我們再次執行恢復命令:
$sudo dd if=/dev/sda5 of=/home/hchen/mytest_recovered.txt bs=4096 skip=2142216 count=1 #skip 的值是blocks(0+1)中的值。count一般是1再讓我們來檢查一下檔案內容:
$ cat mytest_recovered.txtthis is my test file
小結
好了,下面是我們的一些總結:
0. 執行df 命令獲得刪除檔案所在的裝置
1. 執行debugfs命令。
2. open 裝置名稱;例如 open /dev/sda10
3)使用 debugfs: ls -d 找到被刪除檔案的inode號。inode號是< >中的編號
4)使用 debugfs:logdump -i <inode號> 找到檔案的資料塊地址,賦給步驟5中的skip值。
5)切換至命令列,使用dd 命令把資料取出來存成檔案。
sudo dd if=/dev/sda10 of=/home/B.py bs=4096 skip=129032 count=1
相關推薦
debugfs命令恢復被誤刪的檔案
每個被刪除的檔案都會在磁碟底層存在一個備份 所以想要完全保密必須銷燬啊 ls -d # -d或--directory 顯示目錄名稱而非其內容。 ls -i # -i或--inode 顯示檔案和目錄的inode編號 如何在Ext3的檔案系統中恢復被r
linux平臺通過lsof命令恢復被誤刪的oracle資料檔案
背景:測試環境suse12作業系統,開發人員誤刪了/home/oracle下面的資料檔案 oracle狀態看起來一切正常,但資料檔案已經被rm掉。 恢復方法:通過lsof命令找到被刪除的資料檔案,拷貝出來
【迅龍資料恢復高手】誤刪除的檔案,誤格式化的分割槽,提示未被格式化,丟失分割槽可以使用迅龍硬碟資料恢復軟體(誤刪檔案恢復工具)進行恢復。 迅龍硬碟資料恢復軟體(誤刪檔案恢復工具)支援所有原因丟失的檔案、掃描速度快、恢復效果好
誤刪除的檔案,誤格式化的分割槽,提示未被格式化,丟失分割槽可以使用迅龍硬碟資料恢復軟體(誤刪檔案恢復工具)進行恢復。 迅龍硬碟資料恢復軟體(誤刪檔案恢復工具)支援所有原因丟失的檔案、掃描速度快、恢復效果好... (adsbygoogle = window.
恢復GIT誤刪檔案
1、有時Git誤操作執行 git clean -f 或者 在IDE 中誤刪程式碼,可通過IDE進行恢復2、以Eclipse為例:選中誤刪檔案所在目錄,右鍵 執行“restore from local history”。
使用testdisk恢復誤刪檔案【rm -rf 命令】
進入,下載適合自己系統的版本 http://www.cgsecurity.org/testdisk-6.13.linux26.tar.bz2 下載 解壓 tar jxf testdisk-6.14-WIP.linux26.tar.bz2 進入解
怎麽恢復手機中被誤刪的照片
現在手機的像素是越來越好了,幾乎每個手機都自帶美顏功能,人人都愛美,因為人越來越漂亮了,隨意人人都愛拍照,出去旅遊拍照,和父母在一起拍照,和愛人朋友在一起拍照,想用這些照片來記錄美好的瞬間以及美好的記憶,但是常常會有誤刪照片的問題,那麽手機照片誤刪了該怎麽恢復呢? 小編給大家介紹一款厲害手機照片恢復
電腦回收站文件被誤刪用什麽軟件能恢復
回收站裏一般情況下放的都是我們不需要的文件,所以我們會經常清空回收站,但是難免會出現失誤的時候,我們有時候會將重要的文件誤刪進去了,但是在清理回收站的時候一起清理了,怎麽辦呢?電腦回收站文件被誤刪用什麽軟件能恢復? 如果我們想要將清空的回收站文件恢復,那麽我們可以選擇使用迅龍電腦數據恢復軟件進行恢復
榮耀手機中被誤刪的照片還可以怎麽恢復
要是和男女朋友或是好朋友吵完架,心情不好的時候,說以後再也不想見到他們,就狂刪照片。可是事後就後悔了,好想恢復那些被誤刪的照片。那這個時候我們該怎麽辦?該如何有效的去恢復手機中被誤刪的照片呢?在這個時候,我們就不要再拍照片,讓新的數據進入手機,不然會覆蓋原來的照片數據,就很難找回被誤刪的照片了。
被誤刪的U盤文件怎麽恢復
U盤因為小巧方便,內存夠大,簡直是辦公人士必備用品,喜歡用U盤存數據。當U盤中的文件過多時,就會清理U盤中的文件,在清理過程中,很容易就會誤刪U盤裏重要的文件。如果想恢復U盤中被誤刪的文件,那我們該怎麽做? 我們可以借助數據恢復軟件來恢復U盤中被誤刪的文件。小編借助的是互盾數據恢復軟件,現在小編來講
Linux EXT檔案系統恢復誤刪檔案的方法
我們在管理資料庫和系統的時候,經常需要做rm 刪除檔案的操作。由於Linux是沒有回收站的,rm刪除了檔案或者目錄以後,資料是無法從Windows所謂的回收站中找到並恢復的。這樣的話,資料被誤刪除了以後,想要恢復我們一般需要從備份中,或者找資料恢復公司來恢復資料。但是,在某些比較特殊的情況下,使用了
手機QQ聊天記錄被誤刪的恢復方法
手機QQ聊天記錄誤刪怎麼辦?刪除的聊天記錄能恢復嗎?在科技的影響下,如今的手機已經能完成很多的事情了,例如可以通過QQ來實現實時的聊天,隨時都能和朋友進行資訊的傳遞,那萬一將聊天記錄刪除了要怎麼恢復呢?不要著急小編分享給你一個實用的恢復方法吧!第一步:首先我們可以在手機應用商城或者瀏覽器中搜索“極速資料恢復”
手機音頻視頻數據被誤刪了還能恢復嗎
形象 然而 拍照 process ges 手機應用 方法 介紹 分享 生活中我們除了喜歡用手機拍照外,用手機錄音也是一件必不可少的愛好錄音的內容也是五花八門,運用於各種情形,這也是從另一方面更為形象的記錄當時的情景。然而我們有時候會不小心將錄制的音視頻給刪掉,那麽手機音視頻
手機音訊視訊資料被誤刪了還能恢復嗎
生活中我們除了喜歡用手機拍照外,用手機錄音也是一件必不可少的愛好錄音的內容也是五花八門,運用於各種情形,這也是從另一方面更為形象的記錄當時的情景。然而我們有時候會不小心將錄製的音視訊給刪掉,那麼手機音視訊檔案誤刪恢復跟一般的資料恢復方法有區別嗎?其實想要快速的實現手機音視訊檔案恢復我們是有辦法的,下面就給大家
手機微信聊天記錄被誤刪可以恢復嗎
隨著移動網際網路的發展,我們都生活在了大資料的時代,每天都會產生大量的資料。相信大家每天都會有玩微信,如果說,我們將微信的聊天記錄刪除了,那麼還能恢復嗎?曾經有不少的好友都來問過筆者,微信QQ等社交軟體的聊天記錄刪除了該怎麼恢復?筆者也曾一度找了各種方法,都沒能嘗試成功。今天小編就來教你一招恢復微信聊天記錄的
一次心驚肉跳的伺服器誤刪檔案的恢復過程【轉載、收藏】 一次心驚肉跳的伺服器誤刪檔案的恢復過程
一次心驚肉跳的伺服器誤刪檔案的恢復過程 經歷了兩天不懈努力,終於恢復了一次誤操作刪除的生產伺服器資料。對本次事故過程和解決辦法記錄在此,警醒自己,也提示別人莫犯此錯。也希望遇到問題的朋友能找到一絲靈感解決問題。 事故背景 安排一個妹子在一臺生產伺服器上安裝Oracle,妹子
Linux(以Ubuntu16.04為例)和Windows誤刪檔案恢復
在linux下有一個用著很爽的命令rm -f,意為強制刪除,同樣這也是個非常危險的命令(可以理解為禁咒2333)。所以我是儘量避免使用這條指令的。 而今天我在編譯一個C++檔案時不小心將目標檔案和原始檔位置顛倒,結果也造成了與rm同樣的結果。於是花了很久的時間
linux系統rm誤刪檔案恢復 ext4
[[email protected] extundelete-0.2.4]# extundelete --inode 2 /dev/mapper/VolGroup-lv_home <div class="crayon-pre" style="box-sizing: border-bo
防止誤刪檔案!將rm命令改造成mv命令簡易版
今天在用rm -rf的時候突發奇想,如果我一不小心刪錯了該咋辦,平時粗心大意的我感覺自己很容易犯這樣的錯誤。於是去百度搜了一下,發現好多人都犯過這種錯誤!有的還帶來很大的損失!而且rm命令刪除
xcode5誤刪檔案的恢復辦法
最近嘗試在xcode下使用git. 建立工程時勾選Git是會在自動把所有檔案提交。然後我不小心刪除了某幾個檔案,但並沒有commit。我想恢復這幾個檔案,該怎麼做呢? xcode5雖然集成了強大的git功能,但這個功能好像沒有提供(後來研究了下,其實選單裡的Source
手機文檔被誤刪了如何恢復?簡單的恢復方法
href follow 功能 安卓 www. 一鍵 ref 情況下 電腦 手機文檔被誤刪了如何恢復?快速的恢復方法。現在很多的時候,我們都會因為自己的各種原因去清理我們的手機文檔,當然了,有的可能並不是我們故意的要去清理,而是簡單的清理垃圾而清理了我們的手機文檔。 那麽