Linux檔案誤刪除恢複操作案例

來源:互聯網
上載者:User

Linux檔案誤刪除恢複操作案例
一、背景

突發事件,應用上傳的資料被程式自動刪掉了,可悲的是還沒有資料備份,資料是放在Linux系統的 /data/webapps/xxxx/upload 目錄下面,可把我們急壞了,之前又沒有做過資料恢複的測試,然後我找到了一款資料恢複的軟體,成功把刪除的大部分資料找回來了,我的資料恢複過程如下。

二、安裝恢複軟體1、epel 倉庫安裝

如果我們的源裡面添加了 epel 倉庫的話,我們可以直接使用下面的命令安裝。

yum install extundelete -y
2、源碼編譯安裝
wget  http://zy-res.oss-cn-hangzhou.aliyuncs.com/server/extundelete-0.2.4.tar.bz2yum -y install  bzip2  e2fsprogs-devel  e2fsprogs  gcc-c++ maketar -xvjf extundelete-0.2.4.tar.bz2cd extundelete-0.2.4 ./configuremake && make install
三、刪除資料尋找

因為我的資料路徑比較深,所以我們需要一步步尋找,可以先從根分區 inode 尋找

extundelete /dev/sdb1 --inode 2

我們會看到 weapps 目錄的inode,

extundelete /dev/sda5 --inode 24641537

我們看到項目的 inode,

extundelete /dev/sda5 --inode 24903688

我們找到了最終刪除資料的目錄 upload

extundelete /dev/sda5 --inode 24904454

我們可以看到標稱的 Deleted,這些資料就是我們要進行恢複的資料。

四、資料恢複

那我們就恢複指定目錄,以當前分區為根分區進行路徑設定,項目名進行掩蓋

extundelete /dev/sda5 --restore-directory /webapps/xxxx/upload

因為磁碟資料一直在讀寫,所以有些檔案之前的 inode 已經被重新分配了,導致部分資料無法恢複,資料最後會告訴我們有多少檔案沒有回複,但是大部分資料我們已經恢複了,這就是很重要的事情了。

那我們查看一下回複的資料吧,軟體會在目前的目錄產生一個目錄 RECOVERED_FILES 裡面就是我們恢複的資料。

恢複全部資料可以使用命令

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節點中的扇區指標清零,實際上檔案還存在磁碟上面,如果磁碟以讀寫方式掛載,這些刪除的資料區塊可能會被系統從新分配出去,這些資料區塊被覆蓋之後,這些資料就真的丟失了,所以以唯讀方式掛載,儘可能避免資料被覆蓋。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.