現(xiàn)在隨著電腦應(yīng)用知識的普及,我想,很多朋友對WINDOWS注冊表的修改已經(jīng)有不少經(jīng)驗(yàn)和心得。在圖形界面下對注冊表的維護(hù)和修改,就不必再提了,但有時(shí)候,我們可能會遇到更辣手的事情,如由于人為錯(cuò)誤操作或者惡性病毒感染而使系統(tǒng)切底崩潰,不能進(jìn)入WINDOWS圖形界面時(shí),我們對此是否只有重裝這種方法呢?本文將就在DOS下面盡量挽救系統(tǒng)這方面作出闡述。
一、使用scanreg/restore
我想這種方法大家也比較熟悉了,只要在DOS界面下輸入該命令,就可以在最近的5個(gè)注冊表備份里恢復(fù),如果幸運(yùn)的話,系統(tǒng)就可以馬上恢復(fù)。但,事實(shí)上,用這種方法有個(gè)致命的缺陷就是你只有最近5天的注冊表備份可以選擇。因?yàn)榭刂浦詣觽浞莸膕canreg.exe只會在每天第一次啟動電腦時(shí)備份,如果哪天你安裝的程序或者對注冊表的修改比較多,那么你的努力就大多白費(fèi)了。這種方法就正如是眉毛胡子一起抓,正確和錯(cuò)誤的都一起改掉,是否能為恢復(fù)系統(tǒng)幫上忙,總有一種聽天由命的感覺。所以,筆者鼓勵大家使用第二種方法。
二、使用DOS界面的regedit.exe
如果把scanreg/restore比作是一刀切的話,這種方法更像是一次高明的外科手術(shù),只一矢中的地針對病,把錯(cuò)誤修復(fù)而完全不影響注冊表的其他健康部分。這樣,我們就能在最大限度上保留我們的工作成果了。使用regedit.exe對注冊表實(shí)行局部修改的思路是:首先,把注冊表里有嫌疑的分支導(dǎo)出;然后,使用edit對它進(jìn)行分析和修改;最后,把健康的分支重新導(dǎo)入注冊表里。好了,我們來看看整個(gè)過程的具體操作。
1 導(dǎo)出注冊表分支
在DOS下導(dǎo)出注冊表分支的命令格式是:Regedit[/L:system] [/R:user] /E filename [regpath1]。/L:system是指定system.dat的路徑,/R:user是指定user.dat的路徑,如果不說明,系統(tǒng)就會在默認(rèn)的路徑下找;/E:是導(dǎo)出注冊表分支的文件名,regpath1是要導(dǎo)出的注冊表分支。比如,我們要導(dǎo)出默認(rèn)注冊表關(guān)于控制系統(tǒng)啟動的分支到test.reg里,命令如下:regedit /e test.reg HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\Run。
2 對注冊表進(jìn)行分析、修改
在DOS下面只要運(yùn)行edit就能對*.reg文件進(jìn)行編輯了,因?yàn)槲覀儗?dǎo)出的注冊表實(shí)際上就是文本文件。不過,要正確找出引起錯(cuò)誤的地方并修改,需要我們平時(shí)對注冊表積累的經(jīng)驗(yàn)。下面,我們看一下它的基本結(jié)構(gòu),以使我們在對它的修改時(shí)可以有的放矢。
我們知道,注冊表里面有6個(gè)主分支,其中容易引起致命錯(cuò)誤而使WINDOWS不能正常啟動的分支有: [HKEY_LOCAL_MACHINE],記錄著本地機(jī)器的硬件配置以及安裝的相應(yīng)軟件,特別是[HKEY-LOCAL-MACHINE\Enum\PCI]這個(gè)分支下面的主鍵值,一旦出錯(cuò),WINDOWS往往不能啟動。如[HKEY-LOCAL-MACHINE\Enum\PCI\VEN_8086&DEV-7111&SUBSYS_00000000&REV-01\BUS_00&DEV_07&FUNC-01]記錄的是硬盤控制器的詳細(xì)信息,下面的Logconfig記錄著它的各種參數(shù);[HKEY_LOCAL-MACHINE\Enum\PCI\VEN-1002&DEV-4C42&SUBSYS_4C421071&REV-DC\000800]記錄的則是顯示卡的重要資料和參數(shù),一旦這里出錯(cuò),往往會導(dǎo)致WINDOWS在啟動時(shí)黑屏,然后死掉。
另外還有[HKEY-LOCAL-M ACHINE\Software\Microsoft\Windows\CurrentVersion]里記錄著WINDOWS當(dāng)前版本的信息以及啟動時(shí)執(zhí)行的程序等,這是病毒最愛攻擊和修改的地方。
至于還有[HKEY-CLASS-ROOT]是記錄文件種類及其關(guān)聯(lián)信息的,[HKEY-CURRENT-USER]里記錄著當(dāng)前用戶的各種信息,包括登陸的密碼和各方面的設(shè)置等,這些一般不會引起WINDOWS的致命錯(cuò)誤,這里也不再詳細(xì)分析了。
當(dāng)我們對這些鍵值分析和修改時(shí),如果碰到什么不清處的地方,可以通過第1點(diǎn)的導(dǎo)出注冊表方法,把一些備份注冊表的相應(yīng)分支導(dǎo)出,進(jìn)行比較。WINDOWS的注冊表備份都放在C:\windows\sysbackup里面,如我們要導(dǎo)出第一個(gè)注冊表備份的[HKEY_LOCAL_MACHINE]分支,那么我們可以先進(jìn)入該目錄,然后鍵入命令:extract /e rb000.cab *.*,先把system.dat和user.dat解壓出來,再鍵入命令:regedit /L:system.dat /R:user.dat /e backup.reg HKEY-LOCAL-MACHINE。 筆者在這里提醒一下,這是一個(gè)很好的解決問題的方法,再用上一些文件比較軟件可以很快的找出錯(cuò)誤的,請諸位慢慢體會。
3 把修改好的注冊表分支重新導(dǎo)入
命令的格式為:regedit /L:system /R:user file1.reg file2.reg。我們一般都要修改默認(rèn)的注冊表文件,所以在實(shí)際使用中只需鍵入:regedit file1.reg就行了。
好了,講了這么久,我們看看一個(gè)具體的案例。
學(xué)院機(jī)房里的一臺機(jī)器在重新啟動后,無論用正常模式或者安全模式都不能進(jìn)入WINDOWS界面,表現(xiàn)為啟動過程中硬盤突然不讀。用SCANDISK檢查過硬盤,并沒有發(fā)現(xiàn)問題。在啟動過程中選擇生成BOOTLOG.TXT文件,發(fā)現(xiàn)啟動到硬盤控制器后就斷掉了。本來想用scanreg/restore恢復(fù)備份的注冊表,可是該機(jī)器為了加快啟動,并沒有自動備份。于是,用regedit把[HKEY-LOCAL-MACHINE\Enum\PCI]分支導(dǎo)出,鍵入:regedit /e hdc.reg HKEY-LOCAL-MACHINE\Enum\PCI;接著用EDIT查看關(guān)于硬盤控制器的部分,發(fā)現(xiàn)有"ChannelOptions"=hex:00,問題到這里終于發(fā)現(xiàn)了,原來是有人把IDE控制器設(shè)置成不使用,造成在加載硬盤控制器后,系統(tǒng)不能訪問硬盤,所以把它改為:hex:02;再鍵入命令:regedit hdc.reg,把修改后的信息導(dǎo)入。重新啟動機(jī)器,一切正常運(yùn)行了。
這樣,在不損壞任何數(shù)據(jù)的情況下,就把問題解決了。希望這個(gè)例子能給大家?guī)磉@種DOS下維護(hù)注冊表技巧的啟發(fā),畢竟,我們硬盤上面有很多都是無價(jià)的數(shù)據(jù)。
|