linux删去分区的文件夹,如何恢复 Linux 分区下误删的文件?
以前總是在網上看到很多人問怎么恢復 Linux 分區下誤刪的文件。當時并沒有仔細關注過,真沒想到昨天這事攤我身上了。
大致說說這場悲劇的整個過程吧(為了避免一些不必要的麻煩,本文中的文件夾名和設備名都作了修改)
當時我的工作目錄是 /source/needrecovered 。$?pwd/source/needrecovered
原本打算清空其中的一個子文件$?rm?-rf?canbedeleted/*
卻把命令給打錯了。$?rm?-rf?canbedeleted/?*
當時我琢磨著今天怎么刪個小文件夾這么慢呢。等我仔細看了下命令,反應過來的時候,已經太遲了。整個工作目錄被清空了
沒轍了,只能先到網上找找解決方案了,網上大致提到的方法有兩種:一種是利用 debugfs ;第二種是利用 ext3grep。第一種方法,我嘗試了若干次都以失敗告終,第二種成功了。但是統一的是:兩種方法首先提到的都是將對該分區進行操作的應用先全部關閉,具體如下:
以下的操作盡量使用 root 操作,以提高數據恢復的成功率#該命令用于列出操作該分區的進程fuser?-v?-m?/source#如果沒有很重要的進程,利用下面的命令將其全部?kill?掉fuser?-k?-v?-m?/source
執行上面那個命令的時候,務必要將你的工作目錄切換到 /source 以外,否則你的 sshd 會被 kill 掉
這樣子可以達到兩個好處:防止新的文件操作影響數據的恢復
方便對磁盤或者分區進行進一步的操作
如: mount 和 umount
接下來我們看看磁盤分區情況$?df?-ThFilesystem????Type????Size??Used?Avail?Use%?Mounted?on/dev/sda8?????ext3????7.9G??6.3G??1.2G??84%?/source/dev/sdb1??fuseblk????299G??266G???33G??90%?/data/
需要恢復的分區是 /dev/sda8 ,掛載點是 /source 。
先將此分區卸載,并在 /data 分區建立一個用于存儲備份數據的文件夾umount?-v?/sourcemkdir?-p?/data/recovery
現在輪到主角登場了,先去下載一份?ext3grep?的源碼,并安裝cd?/data/recovery#此鏈接地址以官網最新版本為準wget?http://ext3grep.googlecode.com/files/ext3grep-0.10.2.tar.gztar?xfz?ext3grep-0.10.2.tar.gzcd?ext3grep-0.10.2
./configure?--prefix=/data/recoverymakemake?install
接下來就進入正式的恢復工作了,先對需要恢復的磁盤進行掃描。cd?/data/recoverynohup?/data/recovery/bin/ext3grep?/dev/sda8?--ls?--inode?2?建議使用?nohup?和?&,因為如果分區很大的話耗時比較長
掃描完畢后, /data/recovery 中會出現兩個分別名為 c0d2.ext3grep.stage1 和 c0d2.ext3grep.stage2 的文件。前者可以直接忽略,后者里面保存著可以被恢復備份的文件名。
由于我需要備份的文件很多,幾十G,就用下面這個命令進行全部恢復cd?/data/recoverynohup?/data/recovery/ext3grep/bin/ext3grep?/dev/sda8?--restore-all?建議使用?nohup?和?&,因為如果分區很大的話耗時比較長
需要注意的是,restore-all 參數會將整個磁盤所有文件(已刪除可恢復的文件和未被刪除還存在的文件)進行恢復和備份處理,所以請確認你的存放恢復文件的分區有足夠的空間
如果僅僅是恢復幾個文件的話,建議使用 restore-file 參數
備份的文件會存放在工作目錄的名為 RESTORED_FILES 的文件夾里,本文中就是 cd /data/recovery/RESTORED_FILES
最后補充一句話:慎用 rm -rf 。
較安全的rm腳本
總結
以上是生活随笔為你收集整理的linux删去分区的文件夹,如何恢复 Linux 分区下误删的文件?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 益海几个工厂收花生米?
- 下一篇: linux日志发送,Linux中将执行过