本系的 BBS 系統真是多災多難 (嗯 .... 其實是因為我的疏忽,才會這么多災多難 ....) ,繼這幾日系統時間不正確,造成許多人的 ID 被誤砍后,又一次因系統設定上的問題,將 BBS 的重要備份檔給殺了。這件事是學弟發現后告訴我的,當我上站來一見到他的 mail, 當真是欲哭無淚,差點沒去撞墻。
那時已是周六晚 11:00 左右,我一邊想著要編一套說辭向大家解釋無法替大家恢復舊信件與設定了,一邊還在想是否能夠挽回局面。大家知道, UNIX like 的系統是很難像 M$ 的系統一樣,做到 undelete 的,所有網管前輩都曾再三警告我們,要小心! 小心! 砍檔之前三思而后行,砍了之后再后悔也沒用。雖然我已漸漸做到砍檔三思而后行,但之次誤砍事件是系統在背景中定時執行的,等到我找出原因時已是檔案被砍后一個多小時。我憑著一點點的印象,想起在網絡上,有人討論過在 Linux ext2 filesystem中 undelete 的可能性,但我所見到的多半是負面的答案,但好象真的有人做過這件事,于是我******個所做的,就是馬上將該檔案原來所在的 partition mount成 read-only, 禁止任何的寫入動作,不是怕再有檔案被誤砍 (因為已沒什么可砍的了) ,而是怕有新檔案寫進來,新資料可能會覆蓋到舊資料原本存在的磁區 (block) 。我們現在******個指望,就是企圖將檔案原來存在的磁區一個個找回來,并且「希望」這些磁區上的舊資料都還在,然后將這些磁區串成一個檔案。終于被我找到了!! 原來這方面的技術文件就存在我自己的系統中 :-))
/usr/doc/HOWTO/mini/Ext2fs-Undeletion.gz
于是我就按照這份文件的指示一步步來,總算將一個長達 8MB 的壓縮檔救回了 99%, 還有一個長達 1.1 MB 的壓縮檔完整無缺地救了回來。感謝上帝、 Linux 的設計者、寫那篇文件的作者、曾經討論過此技術的人、以及 Linux 如此******的 ext2 filesystem, 讓我有機會搶救過去。現在,我將我的搶救步驟做一個整理讓大家參考,希望有派得上用場的時候 (喔! 不,******是希望大家永遠不要有機會用到以下的步數 :-)))