在解決故障之前,我們先來了解一下啟動管理器的工作模式。在XP+Vista雙系統中,Vista使用bootmgr接管系統啟動模式。電腦自檢完成后,開始查找活動主分區(一般情況是C:)并加載它。
接著會繼續讀取活動分區下的啟動配置文件(即C:BOOTBCD)和c:boot.ini,根據BCD和Boot.ini存儲的啟動信息列出啟動菜單(也就是雙系統啟動菜單)。對于雙系統用戶通常列出“Microsoft WindowsVista”和“舊版本的Windows”。
如果選擇前者,Bootmgr將控制權交給Vista系統目錄下的Winload.exe 然后開始啟動Vista。選擇后者,Bootmgr將控制權交給NTLDR,接著開始讀取c:boot.ini并列出其中配置的啟動菜單。
啟動故障就主要出現在Bootmgr(如該文件丟失)、BCD(啟動信息配置錯誤)、Winload.exe(該文件丟失導致Vista無法啟動)、Ntldr(該文件丟失導致XP無法啟動)這些文件上。
在本例故障中,由于上述文件均已備份,因此恢復后導致雙系統啟動故障的原因應該就是BCD啟動信息出錯。把故障電腦的C:BOOTBCD復制到正常電腦上的d:,運行“bcdedit.exe d:bcd”(bcdedit.exe可以從安裝Vista電腦上的c:windows" onclick="tagshow(event)" class="t_tag">windowssystem32提取)可以看到其中Device顯示為unknown。
故障是由于Bootmgr找不到啟動分區所致,因此修復的方法就是重建正常的啟動配置文件。
現在兩個系統都無法進入,如何重建BCD啟動信息?一般的方法是借助Vista安裝光盤進行自動修復。如果沒有安裝光盤怎么辦?可以通過修改Boot.ini文件“曲線”進入XP,然后在XP中使用EasyBCD重建BCD。因為在加載Bootmgr時,還會讀取c:boot.ini中根目錄啟動信息。
比如,安裝一鍵Ghost的用戶,Boot.ini中一鍵Ghost啟動菜單也會出現在多重啟動中。這時,我們要進入DOS修改Boot.ini文件,在其中添加NTLDR啟動項即可繞開BCD進入XP。


