前幾天突發奇想,想要試試chroot的功能,
由於喜歡/習慣於Debian和Ubuntu,我想試試看能否用chroot來模擬多個linux的環境,
於是我的小筆記型的小硬碟只有60G,
必須先把我收藏很久的gnome的themes、wallpapers還有各distribution的設定文件給備份起來,
於是我就用家裏的一顆舊的60G Maxtor硬碟來裝這些東西,
dmesg | tail
確定這顆硬碟/by-path識別名稱之後,
fdisk /dev/sdb
新增一個linux的分割區,選擇成主要分割區,使用整顆硬碟。
mkreiserfs -l progs /dev/sdb1
建立reiserfs的檔案系統並標籤為progs。
經過了幾分鐘快樂的使用之後(我是用sata/ide轉usb介面)
突然間錯誤訊息出現"I/O error"!
心裡大驚:不會吧!
開始出現有一些檔案他的顯示有灰底,
ls -l 顯示的資訊全為???? ???? ????????
然後利用root去刪除也出現permission denied!
我知道終於發生了最不想發生的事情....
最有可能是我superblock區域毀損了!
果然我umount之後再mount的結果,
告訴我bad filesystem or superblock broken...一般而言看到這訊息通常只是新手在/etc/fstab寫錯option或是filesystem罷了,唉我怎麼會這麼倒楣,我是用mv過去的耶!!!(失敗了就找不回來了)
真是不死心,再次remount之後的結果更慘:
"operation invalid"....
於是只好很小心的展開了無止盡的修復工作....
1.由於他不是ext2/3系列的檔案系統,我沒有dump有關的指令給reiserfs來備援他的superblock,
我可能得去重建他的b*tree:
reiserfsck --check /dev/sdb1
*************************************************************
** If you are using the latest reiserfsprogs and it fails **
** please email bug reports to reiserfs-list@namesys.com, **
** providing as much information as possible -- your **
** hardware, kernel, patches, settings, all reiserfsck **
** messages (including version), the reiserfsck logfile, **
** check the syslog file for any related information. **
** If you would like advice on using this program, support **
** is available for $25 at www.namesys.com/support.html. **
*************************************************************
Will read-only check consistency of the filesystem on /dev/sdb1
Will put log info to 'stdout'
Do you want to run this program?[N/Yes] (note need to type Yes if you do):
我當然要答Yes羅!
###########
reiserfsck --check started at Sun Apr 6 11:21:50 2008
###########
Replaying journal..
Reiserfs journal '/dev/sdb1' in blocks [18..8211]: 0 transactions replayed
Checking internal tree..
Bad root block 0. (--rebuild-tree did not complete)
Aborted (core dumped)
真令人沮喪...看來是我沒有去rebuild b*tree的原因,
reiserfsck --rebuild-tree /dev/sdb1
經過漫長的rebuild,還是失敗,唉真的有如此的倒楣嗎?
sync && sync && sync && init 0
冷靜下來,一定有辦法的,大不了佈景主題重抓,設定的筆記自己重寫吧><||||||||| 我把硬碟電源線拔掉,發現他的jump竟然是在cable select的地方(一般而言應為master的位置) 可是心想,跟這個應該沒關係吧...可是我已經沒招了, 在這之前,我已經試圖重建superblock, 但都還是被終止,反正我已經沒招了,已經有一切從零開始的心理準備了,
把jump調到master之後,開機, 一樣執行
reiserfsck --rebuild-tree /dev/sdb1
一樣經歷漫長的等待,咦,有眉目了,一直不斷的替我flushing,
也不抱任何希望的整理我的書本,沒想到完成了,沒有之前被中斷的錯誤訊息,
我還不敢相信,把他mount起來眼見為憑:
mount -t reiserfs -o defaults,user,exec,noatime
令人感動得說不出話來:nautilus自動彈出了視窗,是我心愛的設定檔跟themes!
趁剛剛才修復好的硬碟還沒出差錯之前之前,趕快備份!
終於了解平時備份的重要性了!
沒有留言:
張貼留言