您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關Linux系統誤刪文件的恢復方法是什么,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
背景信息
在日常使用中有時難免會出現數據被誤刪除的情況,該如何快速、有效地恢復數據呢?在阿里云上恢復數據有多種方式,例如:
通過ECS管理控制臺回滾已創建的快照、恢復自定義鏡像等方式。
購買多臺ECS,實現業務的負載均衡和高可用。
在Linux下,基于開源的數據恢復工具有很多,常見的有debugfs、R-Linux、ext3grep、extundelete等,比較常用的有ext3grep和extundelete,這兩個工具的恢復原理基本一樣,只是extundelete功能更加強大。使用阿里云的云服務器時,如果您不小心誤刪除數據,并且Linux系統也沒有與Windows系統下回收站類似的功能,您可以方便快速安裝extundelete工具。
extundelete工具能夠利用inode信息結合日志去查詢該inode所在的block位置,以此查找和恢復所需的數據。該工具最給力的一點就是支持ext3/ext4雙格式分區恢復,基于整個磁盤的恢復功能較為強大。
在數據被誤刪除后,首先要做的是卸載被刪除數據所在的磁盤或磁盤分區。因為將文件刪除后,僅僅是將文件的inode節點中的扇區指針清零,實際文件還存儲在磁盤上,如果磁盤以讀寫模式掛載,這些已刪除的文件的數據塊就可能被操作系統重新分配出去,在這些數據塊被新的數據覆蓋后,誤刪除的數據就無法恢復。所以,以只讀模式掛載磁盤可以盡量降低數據塊中數據被覆蓋的風險,提高恢復數據成功的幾率。
說明 在實際線上恢復過程中,切勿將extundelete安裝到您誤刪的文件所在硬盤,這樣會有一定幾率將需要恢復的數據徹底覆蓋,切記操作前做好快照備份。
本教程適用的對象是:
磁盤中文件誤刪除的用戶,且未對磁盤進行過寫入等操作
網站訪問量小、少量ECS實例的用戶
需安裝的軟件及版本:e2fsprogs-devel、e2fsprogs、gcc-c++、make(編譯器等)、Extundelete-0.2.4。
說明 extundelete需要libext2fs版本1.39或更高版本來運行,但是對于ext4支持,請確保您有e2fsprogs版本1.41或更新版本(可以通過運行命令dumpe2fs
并記錄其輸出的版本)。
以上版本是寫文檔時的軟件版本。您下載的版本可能與此不同。
使用開源工具Extundelete快速恢復被誤刪的數據的操作步驟如下:
運行以下命令,部署extundelete工具:
wget http://zy-res.oss-cn-hangzhou.aliyuncs.com/server/extundelete-0.2.4.tar.bz2 yum -y install bzip2 e2fsprogs-devel e2fsprogs gcc-c++ make #安裝相關依賴和庫tar -xvjf extundelete-0.2.4.tar.bz2cd extundelete-0.2.4 #進入程序目錄./configure #如下圖表示安裝成功
make && make install
這個時候會出現src目錄,該目錄下有個extundelete可執行文件以及相應路徑,其實默認文件安裝路徑為usr/local/bin,下面模擬刪除后恢復數據的操作就在usr/local/bin目錄下進行。
完成以下操作,使用extundelete模擬數據誤刪除后恢復的過程:
檢查ECS現有的磁盤和可用分區,并對/dev/vdb進行分區和格式化。
fdisk -l
將分區后的磁盤掛載到/zhuyun目錄下,然后在/zhuyun下新建測試文件hello,并寫入內容test
。
mkdir /zhuyun #新建zhuyun目錄mount /dev/vdb1 /zhuyun #將磁盤掛載到zhuyun目錄下echo test > hello #寫入測試文件
記錄文件hello的md5值。md5sum命令用于生成和校驗刪除前和恢復后兩個文件的md5值。
md5sum hello
模擬刪除hello文件。
rm -rf hellocd ~ fuser -k /zhuyun #結束使用某分區的進程樹(確認沒有資源占用的話,可以跳過此步)
卸載數據盤。
umount /dev/vdb1 #任何的文件恢復工具,在使用前,均要將要恢復的分區卸載或掛載為只讀,防止數據被覆蓋使用
使用extundelete工具恢復文件。
extundelete --inode 2 /dev/vdb1 #為查找某i節點中的內容,使用2則說明為整個分區搜索,如果需要進入目錄搜索,只須要指定目錄I節點即可。這是可以看到刪除的文件名和inode
/usr/local/bin/extundelete --restore-inode 12 /dev/vdb1 #恢復刪除的文件
這個時候會在執行命令的同級目錄下出現RECOVERED_FILES目錄。
通過md5sum命令查看恢復后RECOVERED_FILES文件的md5值。
md5sum RECOVERED_FILES
查看刪除前的hello和恢復后的RECOVERED_FILES兩個文件的md5值是否一致,如果一致,則數據恢復成功。
上述就是小編為大家分享的Linux系統誤刪文件的恢復方法是什么了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。