2011年1月4日星期二

Ext4 File Recovery in Linux

某日手賤, 把硬碟裡另一個 Linux 系統的 ext4 分割區掛載到 /tmp 底下的某個目錄
然後在尚未 umount 的情況下執行了 rm -rf /tmp/*
當時心裡還在想, 為什麼會刪檔刪那麼久... Orz

#以下指令皆以 root 身份執行
su -

#卸除欲救援的分割區
umount /dev/sda5

#切換目錄
cd /path/to/欲儲存救回檔案的目錄

使用 extundelete 救檔案

#安裝 extundelete 套件
yum install extundelete

#救回指定檔案, 例如: 救回 /dev/sda5 底下的 /home/user/file.pdf
extundelete /dev/sda5 --restore-file home/user/file.pdf

#救回指定目錄, 例如: 救回 /dev/sda5 /home/user 目錄底下的所有檔案
extundelete /dev/sda5 --restore-directory home/user

#救回分割區裡的所有資料
extundelete /dev/sda5 --restore-all

使用 photorec 掃描分割區救出檔案

#安裝 testdisk 套件
yum install testdisk

#操作 photorec 救出檔案
photorec /dev/sda5

Proceed -> None -> Search -> ext2/ext3 -> Whole -> Y

磁碟空間不足時, Ctrl + C 中斷 photorec, 執行 reset 恢復畫面
尋找目標檔案. 如尋找 10MB 以上的檔案: find ./recup_dir.* -type f -size +10M
或找圖: gthumb $(find ./recup_dir.* -type f -name "*.jpg")
找出欲救回的檔案, 將該檔複製或移動到目的位置
接著 rm -rf recup_dir.* 釋放磁碟空間後, 再執行 photorec /dev/sda5
Continue previous session ? (Y/N) 回答 Y 從中斷點繼續回復檔案


http://cha.homeip.net/blog/2010/12/2884.html

沒有留言:

發佈留言