DOS下維護登錄檔的高階技巧

2021-03-31 11:59:15 字數 2903 閱讀 7201

現在隨著電腦應用知識的普及,我想,很多朋友對windows登錄檔的修改已經有不少經驗和心得。在圖形介面下對登錄檔的維護和修改,就不必再提了,但有時候,我們可能會遇到更辣手的事情,如由於人為錯誤操作或者惡性病毒感染而使系統切底崩潰,不能進入windows圖形介面時,我們對此是否只有重灌這種方法呢?本文將就在dos下面盡量挽救系統這方面作出闡述。

一、使用scanreg/restore

我想這種方法大家也比較熟悉了,只要在dos介面下輸入該命令,就可以在最近的5個登錄檔備份裡恢復,如果幸運的話,系統就可以馬上恢復。但,事實上,用這種方法有個致命的缺陷就是你只有最近5天的登錄檔備份可以選擇。因為控制著自動備份的scanreg.exe只會在每天第一次啟動電腦時備份,如果哪天你安裝的程式或者對登錄檔的修改比較多,那麼你的努力就大多白費了。這種方法就正如是眉毛鬍子一起抓,正確和錯誤的都一起改掉,是否能為恢復系統幫上忙,總有一種聽天由命的感覺。所以,筆者鼓勵大家使用第二種方法。

二、使用dos介面的regedit.exe

如果把scanreg/restore比作是一刀切的話,這種方法更像是一次高明的外科手術,只一矢中的地針對病,把錯誤修復而完全不影響登錄檔的其他健康部分。這樣,我們就能在最大限度上保留我們的工作成果了。使用regedit.exe對登錄檔實行區域性修改的思路是:首先,把登錄檔裡有嫌疑的分支匯出;然後,使用edit對它進行分析和修改;最後,把健康的分支重新匯入登錄檔裡。好了,我們來看看整個過程的具體操作。

1 匯出登錄檔分支

在dos下匯出登錄檔分支的命令格式是:regedit[/l:system] [/r:user] /e filename [regpath1]。/l:system是指定system.dat的路徑,/r:user是指定user.dat的路徑,如果不說明,系統就會在預設的路徑下找;/e:是匯出登錄檔分支的檔名,regpath1是要匯出的登錄檔分支。比如,我們要匯出預設登錄檔關於控制系統啟動的分支到test.reg裡,命令如下:regedit /e test.reg hkey-local-machine/software/microsoft/windows/currentversion/run。

2 對登錄檔進行分析、修改

在dos下面只要執行edit就能對*.reg檔案進行編輯了,因為我們匯出的登錄檔實際上就是文字檔案。不過,要正確找出引起錯誤的地方並修改,需要我們平時對登錄檔積累的經驗。下面,我們看一下它的基本結構,以使我們在對它的修改時可以有的放矢。

我們知道,登錄檔裡面有6個主分支,其中容易引起致命錯誤而使windows不能正常啟動的分支有:   [hkey_local_machine],記錄著本地機器的硬體配置以及安裝的相應軟體,特別是[hkey-local-machine/enum/pci]這個分支下面的主鍵值,一旦出錯,windows往往不能啟動。如[hkey-local-machine/enum/pci/ven_8086&dev-7111&subsys_00000000&rev-01/bus_00&dev_07&func-01]記錄的是硬碟控制器的詳細資訊,下面的logconfig記錄著它的各種引數;[hkey_local-machine/enum/pci/ven-1002&dev-4c42&subsys_4c421071&rev-dc/000800]記錄的則是顯示卡的重要資料和引數,一旦這裡出錯,往往會導致windows在啟動時黑屏,然後死掉。

另外還有[hkey-local-m achine/software/microsoft/windows/currentversion]裡記錄著windows當前版本的資訊以及啟動時執行的程式等,這是病毒最愛攻擊和修改的地方。

至於還有[hkey-class-root]是記錄檔案種類及其關聯資訊的,[hkey-current-user]裡記錄著當前使用者的各種資訊,包括登陸的密碼和各方面的設定等,這些一般不會引起windows的致命錯誤,這裡也不再詳細分析了。

當我們對這些鍵值分析和修改時,如果碰到什麼不清處的地方,可以通過第1點的匯出登錄檔方法,把一些備份登錄檔的相應分支匯出,進行比較。windows的登錄檔備份都放在c:/windows/sysbackup裡面,如我們要匯出第乙個登錄檔備份的[hkey_local_machine]分支,那麼我們可以先進入該目錄,然後鍵入命令:extract /e rb000.cab *.*,先把system.dat和user.dat解壓出來,再鍵入命令:regedit /l:system.dat /r:user.dat /e backup.reg hkey-local-machine。 筆者在這裡提醒一下,這是乙個很好的解決問題的方法,再用上一些檔案比較軟體可以很快的找出錯誤的,請諸位慢慢體會。

3 把修改好的登錄檔分支重新匯入

命令的格式為:regedit /l:system /r:user file1.reg file2.reg。我們一般都要修改預設的登錄檔檔案,所以在實際使用中只需鍵入:regedit file1.reg就行了。   

好了,講了這麼久,我們看看乙個具體的案例。

學院機房裡的一台機器在重新啟動後,無論用正常模式或者安全模式都不能進入windows介面,表現為啟動過程中硬碟突然不讀。用scandisk檢查過硬碟,並沒有發現問題。在啟動過程中選擇生成bootlog.txt檔案,發現啟動到硬碟控制器後就斷掉了。本來想用scanreg/restore恢復備份的登錄檔,可是該機器為了加快啟動,並沒有自動備份。於是,用regedit把[hkey-local-machine/enum/pci]分支匯出,鍵入:regedit /e hdc.reg hkey-local-machine/enum/pci;接著用edit檢視關於硬碟控制器的部分,發現有"channeloptions"=hex:00,問題到這裡終於發現了,原來是有人把ide控制器設定成不使用,造成在載入硬碟控制器後,系統不能訪問硬碟,所以把它改為:hex:02;再鍵入命令:regedit hdc.reg,把修改後的資訊匯入。重新啟動機器,一切正常執行了。

這樣,在不損壞任何資料的情況下,就把問題解決了。希望這個例子能給大家帶來這種dos下維護登錄檔技巧的啟發,畢竟,我們硬碟上面有很多都是無價的資料。

本文出自《21**科技中心》

在DOS方式下維護登錄檔

在windows95 98視窗環境下維護登錄檔對大多數人來說並不陌生,但是,如果碰上登錄檔損壞,以致連視窗環境都無法進入時,該怎樣對登錄檔進行維護?這裡介紹幾個在dos方式下維護登錄檔的小竅門。登錄檔編輯器一定要在視窗環境下才能執行嗎?不!regedit.exe在dos方式下照常可以執行。在dos方...

在DOS方式下維護登錄檔

在windows95 98視窗環境下維護登錄檔對大多數人來說並不陌生,但是,如果碰上登錄檔損壞,以致連視窗環境都無法進入時,該怎樣對登錄檔進行維護?這裡介紹幾個在dos方式下維護登錄檔的小竅門。登錄檔編輯器一定要在視窗環境下才能執行嗎?不!regedit.exe在dos方式下照常可以執行。在dos方...

DOS下匯入登錄檔

在ms dos或命令列方式下匯入登錄檔檔案 ms dos或命令列方式下匯入登錄檔檔案。1 直接在 執行 對話方塊中輸入以下命令 regedit path regfile.reg 如 regedit c regbak.reg 如果加上引數 s則表示在匯入登錄檔檔案時沒有提示資訊。如 regedit s...