我把Linux系統上面誤刪的資料找回來了
一、背景
突發事件,應用上傳的資料被程式自動刪掉了,可悲的是還沒有資料備份,資料是放在系統的 /data/webapps/xxxx/upload 目錄下面,可把我們急壞了,之前又沒有做過資料恢復的測試,然後我找到了一款資料恢復的軟體,成功把刪除的大部分資料找回來了,我的資料恢復過程如下。
二、安裝恢復軟體
1、epel 倉庫安裝
如果我們的源裡面新增了 epel 倉庫的話,我們可以直接使用下面的命令安裝。
yum install extundelete -y
2、原始碼編譯安裝
wget
yum -y install bzip2 e2fsprogs-devel e2fsprogs gcc-c++ make
tar -xvjf extundelete-0.2.4.tar.bz2
cd extundelete-0.2.4
./configure
make && make install
三、刪除資料查詢
首先我們最好先解除安裝掛載的磁碟,我這裡是 /dev/sda5 掛載到了 /data 目錄下面。
因為我的資料路徑比較深,所以我們需要一步步查詢,可以先從根分割槽(/data) inode 查詢,根分割槽(/data)當前目錄的 inode為2。
extundelete /dev/sda5 --inode 2
我把Linux系統上面誤刪的資料找回來了
我們會看到 weapps (/data/webapps)目錄的inode,
extundelete /dev/sda5 --inode 24641537
我把Linux系統上面誤刪的資料找回來了
我們看到專案(/data/webapps/project)的 inode,
extundelete /dev/sda5 --inode 24903688
我把Linux系統上面誤刪的資料找回來了
我們找到了最終刪除資料的目錄 upload (/data/webapps/project/upload)
extundelete /dev/sda5 --inode 24904454
我把Linux系統上面誤刪的資料找回來了
我們可以看到標稱的 Deleted,這些資料就是我們要進行恢復的資料。
四、資料恢復
那我們就恢復指定目錄,以當前分割槽(就是把/data當做根目錄/)為根分割槽進行路徑設定,專案名進行掩蓋。
extundelete /dev/sda5 --restore-directory /webapps/project/upload
我把Linux系統上面誤刪的資料找回來了
因為磁碟資料一直在讀寫,所以有些檔案之前的 inode 已經被重新分配了,導致部分資料無法恢復,資料最後會告訴我們有多少檔案沒有回覆,但是大部分資料我們已經恢復了,這就是很重要的事情了。
那我們檢視一下回復的資料吧,軟體會在當前目錄生成一個目錄 RECOVERED_FILES 裡面就是我們恢復的資料。
我把Linux系統上面誤刪的資料找回來了
恢復全部資料可以使用命令
extundelete /dev/sda5 --restore-all
使用方法
extundelete --help
其中,引數(options)有:
--version, -[vV],顯示軟體版本號。
--help,顯示軟體幫助資訊。
--superblock,顯示超級塊資訊。
--journal,顯示日誌資訊。
--after dtime,時間引數,表示在某段時間之後被刪的檔案或目錄。
--before dtime,時間引數,表示在某段時間之前被刪的檔案或目錄。
動作(action)有:
--inode ino,顯示節點“ino”的資訊。
--block blk,顯示資料塊“blk”的資訊。
--restore-inode ino[,ino,...],恢復命令引數,表示恢復節點“ino”的檔案,恢復的檔案會自動放在當前目錄下的RESTORED_FILES資料夾中,使用節點編號作為副檔名。
--restore-file 'path',恢復命令引數,表示將恢復指定路徑的檔案,並把恢復的檔案放在當前目錄下的RECOVERED_FILES目錄中。
--restore-files 'path',恢復命令引數,表示將恢復在路徑中已列出的所有檔案。
--restore-all,恢復命令引數,表示將嘗試恢復所有目錄和檔案。
-j journal,表示從已經命名的檔案中讀取擴充套件日誌。
-b blocknumber,表示使用之前備份的超級塊來開啟檔案系統,一般用於檢視現有超級塊是不是當前所要的檔案。
-B blocksize,透過指定資料塊大小來開啟檔案系統,一般用於檢視已經知道大小的檔案。
在資料刪除之後,首先要解除安裝被刪除資料所在的磁碟或是分割槽,如果是系統根分割槽遭到誤刪除,就需要進入單使用者模式下,將根分割槽以只讀的方式掛載。
原因:因為檔案刪除之後,僅僅是將檔案的inode節點中的扇區指標清零,實際上檔案還存在磁碟上面,如果磁碟以讀寫方式掛載,這些刪除的資料塊可能會被系統從新分配出去,這些資料塊被覆蓋之後,這些資料就真的丟失了,所以以只讀的方式掛載,儘可能避免資料被覆蓋。
©著作權歸作者所有:來自51CTO部落格作者wzlinux的原創作品,如需轉載,請註明出處,否則將追究法律責任
喜歡我的文章,成為我的天使投資人吧
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4289/viewspace-2821822/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 誤刪了電腦資料怎麼找回來?
- 我曾誤刪了公司的資料庫,但還是活下來了資料庫
- 利用延時備庫找回被誤刪的資料
- 誤刪了公司資料庫,但我還是活下來了資料庫
- 誤刪檔案能找回嗎?簡單誤刪檔案找回教程分享
- 誤刪除資料了怎麼辦?小編交易誤刪除資料的恢復方法
- 電腦檔案誤刪除了怎麼恢復找回?誤刪電腦資料恢復方法教程資料恢復
- 【伺服器資料恢復】Linux系統下誤刪除虛擬機器的資料恢復案例伺服器資料恢復Linux虛擬機
- 電腦誤刪影片怎麼找回
- 電腦誤刪的照片還能找回嗎?
- 怎麼找回電腦誤刪的檔案
- LINUX下資料被誤刪除、LINUX下資料被誤格式化後資料恢復Linux資料恢復
- TSPITR方式資料庫找回誤操作丟失的資料資料庫
- 寫了Bug,誤執行 rm -fr /*,我刪刪刪刪庫了,要跑路嗎?
- 被誤刪的檔案正確處理方法,快速找回誤刪的檔案
- 臥槽,sql注入竟然把我們的系統搞掛了SQL
- Linux伺服器下誤刪除了kvm虛擬機器如何找回Linux伺服器虛擬機
- 【虛擬機器資料恢復】Linux系統下誤刪除KVM虛擬機器的資料恢復案例虛擬機資料恢復Linux
- mac誤刪檔案怎樣快速找回?Mac
- 【伺服器資料恢復】linux ext3檔案系統下誤刪除mysql資料庫的資料恢復案例伺服器資料恢復LinuxMySql資料庫
- linux下恢復誤刪除oracle的資料檔案LinuxOracle
- 誤刪GreatSQL資料?別慌,Binlog來幫忙SQL
- 【資料庫資料恢復】HP-UX系統ORACLE資料庫被誤刪除的資料恢復資料庫資料恢復UXOracle
- linux系統下檔案誤刪除該如何恢復?Linux
- 再也不用擔心蘋果資料誤刪了蘋果
- whk我【資料刪除】你個【資料刪除】的
- 【北亞資料恢復】zfs檔案系統的伺服器誤刪除的資料恢復資料恢復伺服器
- 把Linux作為工作使用的系統Linux
- mysql資料誤刪後的資料回滾MySql
- 【資料庫資料恢復】LINUX環境下ORACLE資料庫誤刪除的資料恢復資料庫資料恢復LinuxOracle
- Win10系統中檔案被自帶防毒軟體Windows defender誤刪怎麼找回Win10防毒Windows
- 運維人員如何有效的防止誤刪資料?Linux學習!運維Linux
- 【伺服器資料恢復】LINUX誤刪除、格式化的資料恢復伺服器資料恢復Linux
- 【伺服器資料恢復】LINUX誤刪除、誤格式化怎麼恢復資料?伺服器資料恢復Linux
- 到底用到啥地步才算把系統真正用起來了?
- 伺服器資料恢復-LINUX誤刪除/格式化資料的資料恢復方案伺服器資料恢復Linux
- linux和windows作業系統下完全刪除oracle資料庫LinuxWindows作業系統Oracle資料庫
- Linux誤刪除/(根)目錄下usr目錄系統救援方法Linux