泣~ 如何在 ext3 中救回誤刪的檔案?

歡迎提問 debian desktop 相關問題,何謂 desktop ? 舉凡您日常生活會用到的部份,如上網 ( www 、 bbs ..) 、程式設計、繪圖...等等。 通常以 X Window 環境底下問題為主。

泣~ 如何在 ext3 中救回誤刪的檔案?

文章Tetralet » 週一 7月 14, 2003 11:26 pm

今天腦袋空空的,
一不小心就把我的 Debian 筆記全部刪光光了...
而最後的備份在一個星期之前... >_<

然後使用 recover 及 e2undel 試了又試,
什麼也找不回來...

上 Google 去查了一下...

代碼: 選擇全部
Q: How can I recover (undelete) deleted files from my ext3 partition?

Actually, you can't! This is what one of the developers, Andreas Dilger, said about it:

In order to ensure that ext3 can safely resume an unlink after a crash, it actually zeros out the block pointers in the inode, whereas
ext2 just marks these blocks as unused in the block bitmaps and marks the inode as "deleted" and leaves the block pointers alone.


Your only hope is to "grep" for parts of your files that have been deleted and hope for the best.


最後使用 dd + (Win)UltraEdit 硬把一些資料給讀了出來,
花了整整一個晚上大概還原了 90% 吧?
可是還有更好的方法嗎?


痛定思痛,
我把我的 File System 又轉回 ext2 去了...
可是上次試過 recover 在 ext2 上好像也是沒什麼效...
請問大家有類似經驗可以分享嗎?
時間並不能治療我心中的疼痛
南方的春天說什麼也溫暖不了我冰冷的血

誦唱大復活咒文,今天的 Tetralet 又在唧唧喳喳了 重生!
Tetralet
俺是博士
俺是博士
 
文章: 3078
註冊時間: 週四 11月 28, 2002 3:02 pm

re:泣~ 如何在 ext3 中救回誤刪的檔案?

文章wiz » 週二 7月 15, 2003 3:34 pm

http://e2undel.sourceforge.net/recovery-howto.html

另外e2undel雖說只能用在ext2,沒辦法用在ext3,不過
ext3是可以mount 成ext2...

不過我也沒用過,所以要小心..

ps: debian 有 e2undel和debugfs的package,可以直接apt-get
wiz
可愛的小學生
可愛的小學生
 
文章: 62
註冊時間: 週日 11月 24, 2002 7:57 pm

re:泣~ 如何在 ext3 中救回誤刪的檔案?

文章Tetralet » 週二 7月 15, 2003 5:09 pm

wiz 寫:http://e2undel.sourceforge.net/recovery-howto.html


謝謝提供寶貴資訊!

wiz 寫:另外e2undel雖說只能用在ext2,沒辦法用在ext3,不過
ext3是可以mount 成ext2...

不過我也沒用過,所以要小心..

ps: debian 有 e2undel和debugfs的package,可以直接apt-get


ext3 會在 rm 時將檔案的 inode 裡的 block pointers 清空為 0,
所以在 rm 後很難救...


另外,在 ext2 上使用 e2undel 時出現了以下訊息...

代碼: 選擇全部
reading log file: opening log file: No such file or directory
no entries for /dev/hdb1 in log file


原來是 Debian 的 e2undel 在編譯時未加入 undel library 功能...
這麼方便的功能為什麼不編譯進去呢?真是不懂...
時間並不能治療我心中的疼痛
南方的春天說什麼也溫暖不了我冰冷的血

誦唱大復活咒文,今天的 Tetralet 又在唧唧喳喳了 重生!
Tetralet
俺是博士
俺是博士
 
文章: 3078
註冊時間: 週四 11月 28, 2002 3:02 pm

re:泣~ 如何在 ext3 中救回誤刪的檔案?

文章訪客 » 週二 9月 07, 2004 11:01 pm

可以請問一下Tetralet刪掉的檔案大概是什麼樣子的?

怎麼用UltraEdit救回來呢?

我幾乎每年就要不小心砍掉東西一次..

不過..這次很慘..

把ext3 格式化成reiserfs..

沒救了..


也分享一個工具..

http://www.r-tt.com/

R-Linux
訪客
 

re:泣~ 如何在 ext3 中救回誤刪的檔案?

文章Tetralet » 週三 9月 08, 2004 10:10 am

Anonymous 寫:可以請問一下Tetralet刪掉的檔案大概是什麼樣子的?

怎麼用UltraEdit救回來呢?

由於 ext3 之特性,
一些 Binary 檔案,如:*.tar.gz、*.pdf、*.mp3 之類的是救不回來了。

可以救的頂多為 *.txt、*.html 之類的文字檔。


如果您覺得這樣子還是可以一試的話,
可以試試這招:(掃瞄整個磁碟分割區)
代碼: 選擇全部
dd if=/dev/hda1 bs=1024 | strings -e S >> /tmp/Recover.txt

或是:(掃瞄該磁碟分割區前 50 MB)
代碼: 選擇全部
dd if=/dev/hda1 bs=1024 count=51200 | strings -e S >> /tmp/Recover.txt

或是:(跳過前 10 MB,掃瞄接下來的 50 MB)
代碼: 選擇全部
dd if=/dev/hda1 bs=1024 skip=10240 count=51200 | strings -e S >> /tmp/Recover.txt

其中 /dev/hda1 為您所 Format 掉的磁碟分割區。
bs=1024 中的 1024 則由 dumpe2fs /dev/hda1 | grep "Block size" 來決定其大小。(僅是為了加快存取速度)

所救回來的文字檔會存放在 /tmp/Recover.txt 裡;
在執行前請確認 /tmp 之空間是否夠大。


這個方法會比 UltraEdit 方便迅速多了,
您不妨試試!
時間並不能治療我心中的疼痛
南方的春天說什麼也溫暖不了我冰冷的血

誦唱大復活咒文,今天的 Tetralet 又在唧唧喳喳了 重生!
Tetralet
俺是博士
俺是博士
 
文章: 3078
註冊時間: 週四 11月 28, 2002 3:02 pm

re:泣~ 如何在 ext3 中救回誤刪的檔案?

文章Tetralet » 週三 9月 08, 2004 12:20 pm

Anonymous 寫:把ext3 格式化成reiserfs..

沒救了..

因為只是將其格式化為 reiserfs,
有沒有試著直接再將其 mount 為 ext3,
看看資料會不會回來?


或者... (僅僅紙上談兵)
是否可以使用 fsck.ext3 來手動重建其 Super Block,
看看是否能救回來多少呢?
時間並不能治療我心中的疼痛
南方的春天說什麼也溫暖不了我冰冷的血

誦唱大復活咒文,今天的 Tetralet 又在唧唧喳喳了 重生!
Tetralet
俺是博士
俺是博士
 
文章: 3078
註冊時間: 週四 11月 28, 2002 3:02 pm

re:泣~ 如何在 ext3 中救回誤刪的檔案?

文章Tetralet » 週三 9月 08, 2004 12:28 pm

如果只是要救回誤刪的檔案,可以參考:

 [分享] 實作 GNU/Linux 的資源回收筒

不過請注意,
它是無法救回由 mkfs 所 Format 掉的資料呦!
時間並不能治療我心中的疼痛
南方的春天說什麼也溫暖不了我冰冷的血

誦唱大復活咒文,今天的 Tetralet 又在唧唧喳喳了 重生!
Tetralet
俺是博士
俺是博士
 
文章: 3078
註冊時間: 週四 11月 28, 2002 3:02 pm


回到 debian desktop

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客