linux & Windows 多重開機並存研究

※一般PC正常開機程序
由BIOS依設定開機順序開機(如光碟 -> 硬碟 -> 軟碟)。

※磁碟 Mapping
比較新的BIOS(應該是2000年以後的),幾乎都有支援磁碟 Mapping的功能,
在BIOS中除了可以調整上述的開機裝置的順序外,也可以針對某類裝置選置優先順序,例如多顆硬碟時,可以設定第一磁碟,另外一些多重開機管理系統也可以使用此功能達到調整開機磁碟的動作。

※硬碟開機順序
使用硬碟開機時,如果有設定某顆磁碟為第一顆優先碟,則該磁碟會變成第一顆磁碟,不然會以預設值(通常預設值IDE優先於SATA),找到該顆磁碟後,會先尋找MBR(Master Boot Record)是否有開機管理程式,否則從分割表中尋找標記為啟動(Active)的主分割區來啟動。

※Windows 98/DOS啟動方式
由啟動分割區的啟動磁區來載入啟動程式(已經沒人在用了)

※Windows 2000/NT/XP等啟動方式
由第一顆磁碟的啟動分割區(NTFS/VFAT)載入NT Loader開機管理程式,再啟動Windows,Windows可以位於邏輯分割區,但NT Loader一定要位於主分割區,且載入NT Loader時,必須是第一顆磁碟(BIOS中設定的第一顆),另外在安裝Windows時,就算將Windows裝在非第一顆硬碟上,還是會在第一顆硬碟的啟動分割上安裝NT Loader,該分割上會多出boot.ini等檔案。

※linux 啟動使用 Grub 管理
目前Grub已取代lilo成為linux主流開機管理程式,Grub可以存在linux分割區,也可以存在MBR中,相當有彈性。Grub亦可管理其他非linux作業系統的啟動,很適合管理Windows及linux並存的環境,不過設定時要注意一下。

※使用 Grub 讓linux與windows並存開機
原則上在安裝linux時,如果已經有windows,Grub應該會加上Windows的選單,但如果硬碟對應錯誤,這個Windows可能還是不能開的,可能需要自己加上map

※範例
硬碟有兩顆,一顆為IDE,另一顆為 SATA,安裝Windows在SATA硬碟上,但是安裝時IDE硬碟為第一磁碟,所以Windows的NT Loader被安裝到IDE上的第一個碟碟上去了,此時在安裝linux,選然將Grub安裝在SATA的MBR上,接著調整SATA為第一顆磁碟,linux可正常開機..Windows卻開不了

title Microsoft Windows XP Professional
root (hd0,0)
chainloader +1
因為sata已經改為第一顆碟磁了,所以ide自動變成第二顆磁碟,於是NT Loader應該是在(hd1,0),所以 root應改為 (hd1,0),但這樣還是開不了機。
前面提過Windows的開機系統需要在第一顆磁碟,而現在ide已經變成第二顆磁碟了,所以要透過map讓進入NT Loader時,兩顆硬碟對調

title Microsoft Windows XP Professional
root (hd1,0)
map (hd0) (hd1)
map (hd1) (hd0)
chainloader +1
整個Grub Windows的部份應該會變成像上述所示,在安裝linux時,造成windows不能開機時,千萬別驚慌,別急著重灌windows或linux,應該是了解正確的設定方式,否則怎麼重灌都是白來。

留言

這個網誌中的熱門文章

[Linux] 如何 hex 字串 與 文字互轉

記下 openssh 中 sftp的log

[linux]用指令來做音量控制