在工作中由於不小心把自己兩個周的代碼(切記上傳SVN是個好習慣啊~~~)誤刪除了。
浪費一天半的時間試用了各種工具終於找到了下面這種方法可以快速省時省力%……#%¥%!@……¥……##¥(讚揚之詞)的完成,
爲了大家在遇到這種情況的時候能夠快速的恢復文件,特與大家分享之。(掌聲在哪裏。。。。)
操作系統:Ubuntu(安裝於virtualbox中)
文件系統:ext4
使用軟件:ext4magic(超讚)
操作步驟詳細(前提是你的系統木有安裝ext4magic, 如果是已經裝了可以直接跳到第7步恢復即可):
1、誤刪有用文件
2、爲了防止已刪除損壞,立即關閉系統
3、使用Ubuntu的鏡像文件啓動系統(我使用的是ubuntu-14.04.4-desktop-amd64.iso,系統起來之後選擇試用注意不是安裝,運行系統)
4、然後打開terminal運行【sudo apt-get update】更新
5、使用命令【sudo apt-get install ext4magic】安裝工具。(這個嘛看運氣還是看人品不知道,反正我是沒有找到安裝文件,當然也可能是沒有追加源(⊙﹏⊙)b)
6、如果第5步沒有執行成功則需要下載ext4magic的源碼自己進行編譯,命令詳細如下:
sudo apt-get install e2fslibs-dev
sudo apt-get install libblkid-dev
sudo apt-get install uudi-dev
sudo apt-get install zlib1g-dev
sudo apt-get install libbz2-dev
sudo apt-get install libmagic-dev
↑安裝相關依賴庫
cd ext4magic目錄
./configure --enable-expert-mode
make & make install
7、插入U盤,並在virtualbox裏面掛載之【sudo mount /dev/sdb1 /mnt】
8、sudo ext4magic /dev/sda1 -a $(date -d "-24hours" +%s) -d /home/work/src -l(查看24小時內刪除的文件)
9、sudo ext4magic /dev/sda1 -a $(date -d "-24hours" +%s) -d /home/work/src -r -d /mnt/recovery/ (恢復24小時內刪除的文件)
<font color=#00ffff size=3> (注:原文ext4magic /dev/sda1 -a $(date -d "-24hours" +%s) -f /home/work/src -l 執行報錯 顯然 -f指定的是個文件經嘗試替換爲-d後 可正常運行。顯示指定目錄下刪除的文件。)</font>
同時還找到了網友介紹的各種Linux下數據恢復的工具,extundelete、photorec和foremore恢復數據花費的時間特別長(虛擬機有150G。。。),
恢復出的數據也非常不友好,testdisk倒是可以查看某個目錄下刪除的文件,但好像不支持ext4,因爲我用testdisk查看文件夾時提示文件已損壞。
★ext4magic的下載地址:https://sourceforge.net/projects/ext4magic/
有的同學可能無法下載,可以下載我提供的資源(小私心,要1分)。
http://download.csdn.net/detail/huanmengqq/9611444
PS:感嘆一下,墨菲定律(如果你擔心某種情況發生,那麼它就更有可能發生)真是他X的準啊
由於這次項目使用的是cmake,所以會新建一個build目錄用於存放編譯用的所有文件,
因此當每次修改了CMakeList文件的時候就需要使用【rm -rf *】命令刪除build文件夾下的所有文件,
當時在編譯的時候就擔心,不要給誤刪除了,結果還真是就發生了,浪費了一天半的時間恢復數據,也真是醉了。
當時打死自己的心都有了。