我最早在C盤裝了Windows XP,然後接著在D盤裝的Windows7。這樣用著一切正常,因為我原來備份的有XP系統,所以我用一鍵還原把C盤給還原了,但問題也就出來了,在系統啟動項那只有Windows XP和一鍵還原兩個選項,沒有辦法進入Windows 7系統,因為我沒有接觸過Windows Vista,直接從XP到Windows 7,所以對它的啟動原理不很了解,所以我研究了一下午才把問題解決了,順便也了解了Windows 7系統的啟動原理。
解決問題前我們先來了解一下Windows XP和Windows 7的啟動原理有何不同,雙系統又是如何啟動的:
在Windows 7+XP雙系統中,Windows 7使用bootmgr接管系統啟動模式。電腦自檢完成後,開始查找活動主分區(一般情況是C:)並加載它。
接著會繼續讀取活動分區下的啟動配置文件(即C:BOOTBCD)和c:boot.ini,根據BCD和Boot.ini存儲的啟動信息列出啟動菜單(也就是雙系統啟動菜單)。對於雙系統用戶通常列出“Microsoft Windows 7”和“舊版本的Windows”。
如果選擇前者,Bootmgr將控制權交給Windows 7系統目錄下的Winload.exe (在Windowssystems下)然後開始啟動Windows 7。選擇後者,Bootmgr將控制權交給NTLDR,接著開始讀取c:boot.ini並列出其中配置的啟動菜單。
啟動故障就主要出現在Bootmgr(如該文件丟失)、BCD(啟動信息配置錯誤)、Winload.exe(該文件丟失導致Vista無法啟動)、Ntldr(該文件丟失導致XP無法啟動)這些文件上。(我的情況屬於bootmgr文件丟失,BCD文件啟動信息配置錯誤)
下面我們來解決問題:
1、首先我們需要幾個備份文件(bootmgr,ntldt,bcd,bootsect),如果你有Windows 7系統盤或者鏡像的話可以直接從中提取。
還有一個工具——EasyBCD
注意:在XP下EasyBCD的運行需要Microsoft .NET Framework2.0的支持。
2、以下操作都是在Windows XP中進行,因為又隱藏文件和系統文件,所以最好顯示系統和隱藏文件,在文件夾選項裡點擊查看,去掉隱藏受保護的系統文件(推薦)並選擇選擇顯示所以文件和文件夾。
把bootmgr,ntldt(一般C盤下有,不用復制)復制到C盤下。(此C盤為默認為系統,按具體情況而定)
把bcd,bootsect復制到C:boot目錄下
3、然後運行EasyBCD
切換到左側的“ADD/Remove Entries”,在右側窗格選中原來無效的啟動菜單,單擊Delete刪除,接著在Add An Entry下添加啟動項。添加XP啟動則在Version選擇“Windows NT/200/XP”、Drive選擇C:、Name設置為Windows XP(圖3)。同上,添加Windows 7的啟動項(Version選擇Windows Vista/longhom、Drive選擇D:、Name設置為Windows 7),完成後單擊ADD Entry保存配置。
4、然後打開“運行” (開始〉運行), 輸入cmd
進入C:boot目錄下輸入“bootsect /nt60 C:” (刪除是nt52,不帶雙引號)