Ubuntu 16.04使用rm -rf誤刪文件恢復方法收集


說明:不一定有效,需要不斷嘗試

一、lsof

文件剛剛被刪除,想要恢復,先嘗試lsof.
lsof |grep data.file1
cp /proc/xxx/xxx/xx  /dir/data.file1
如果lsof不能看到文件,那么就需要使用恢復軟件進行恢復。
要做的第一件事是立刻卸載被誤刪除文件所在的分區,或者重新以只讀方式掛載此分區。
umount  /dev/part    
或    
mount -o remount,ro /dev/part
刪除一個文件,就是將文件inode(inode 是操作系統尋找文件的目錄,起到索引作用),節點中的扇區指針清除,同時,釋放這些數據對應的數據塊,而真實的文件還存留在磁盤分區中。但是這些被刪除的文件不一定會一直存留在磁盤中,當這些釋放的數據塊被操作系統重新分配時,這些被刪除的數據就會被覆蓋。因此要立刻卸載分區。

二、ext3grep

sudo apt-get install ext3grep  

參考資料[4]中對這個工具的使用有比較詳細的說明過程。然而,正如參考資料[5]所言,這個工具只適合於ext3文件系統的,而新版本的Ubuntu系統一般都使用ext4文件系統,因此需要使用其它工具,如extundelete

三、extundelete

sudo apt-get install extundelete  

使用這個工具,我成功的恢復了使用rm命令誤刪的文件。關於這個工具的使用方法,可見參考資料[7]。下面簡單記錄一下回復過程。 

sudo extundelete /dev/sda1 --restore-all  

說明:/dev/sda1是誤刪文件所在的分區。我的誤刪的文件原來在/home/liyihai里面的子目錄中,而這個目錄掛載於/dev/sda1分區(使用df -h命令查看)。

執行上面命令后,會在當前目錄中生成一個名為RECOVERED_FILES目錄,並且將恢復的文件放到這個目錄中。

根據參考資料[7]的說明,所恢復的文件會被改名,因此需要根據文件的內容,使用grep命令找出您想要的文件。

四、/casper/filesystem.squashfs

這個是Ubuntu光盤特有的文件,將解壓縮的光盤文件夾下面/casper/filesystem.squashfs文件拷貝出來到一個單獨的文件夾

cd到剛拷貝出來filesystem.squashfs所在文件夾,然后打開終端輸入

unsquashfs filesystem.squashfs

回車執行

上一步執行完會生成一個squash-boot文件夾,然后在里面尋找你所誤刪的系統文件即可,在哪個目錄下刪除的就在對應目錄下找

 

參考

[1]linux下如何恢復rm命令刪除的文件

[2]linux rm文件恢復總結
[3]Linux使用筆記: 實用ext3grep恢復目錄及文件指南(ext3文件系統)

[4]ubuntu中用ext3grep恢復ext3文件系統中誤刪的文件

[5]問題:如何在 ext4 分區下恢復刪除的文件

[6]Linux下數據誤刪除不再是恐怖的事情,ext3grep幫你恢復 

[7]ext4分區中恢復被刪除的文件

[8]恢復Linux ext4分區上誤刪除的文件

[9]【Linux】Linux系統 ext4格式 刪除文件恢復:extundelete

https://www.cnblogs.com/jikexianfeng/p/7349275.html(以上內容部分轉自此篇文章)

http://blog.csdn.net/weiguang1017/article/details/52239685(以上內容部分轉自此篇文章)

https://www.jianshu.com/p/f5558050acb1(以上內容轉自此篇文章)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM