UEFI+GPT安裝Windows8和CentOS雙系統

隨着虛擬機管理軟件的廣泛使用,雙系統安裝場合越來越少了,但還存在這樣的地方,尤其是學習一些硬件的場合。本文針對UEFI時代的雙系統安裝進行了實驗和說明。

前一篇博客已經對UEFI,GPT和安裝CentOS進行了詳細說明,見:http://blog.csdn.NET/smstong/article/details/9408451。本文專門說明雙系統的安裝方式。

1 安裝步驟

(1)使用diskgen工具把硬盤修改爲GPT格式。(可以通過帶有這個工具的光盤、U盤等完成)。

(2)光盤安裝Window8,在建立分區時,安裝程序自動建立額外的兩個分區MSR和ESP。

(3)一步步點擊完成。

此時,ESP分區有/EFI/Microsoft/Boot/文件夾,裏面是Windows8的啓動器,bootmgr.efi,bootmgfw.efi等。


(4)放入CentOS-EFI的光盤,重新啓動機器

(5)安裝程序能夠識別ESP分區,我們需要做的只是把這個ESP分區掛載到/boot/efi。(注:ESP分區類型的GUID是固定的,據此識別之)

(6)在安裝GRUB時,安裝程序自動設置爲安裝到ESP分區,我們看清即可

(7)正常安裝完成。

此時,ESP分區增加了/EFI/redhat/文件夾,裏面是grub.efi和grub.conf。

2 雙系統啓動的方式

目前爲止,只是安裝了兩個系統,UEFI的nvram啓動菜單有了這兩個菜單項,但是這款主板啓動時,只顯示一個微軟的選項。這就導致了只能啓動Windows8,不能啓動CentOS。解決思路有如下幾種

  • 使用windows8的bootmgr.efi來鏈式啓動grub.efi。在BIOS時代,ntldr是可以加載grub所在扇區的,現在我還沒找到可行方式;(不可行)
  • 把grub.efi修改路徑及名稱爲bootmgfw.efi,然後通過grub.efi鏈式啓動bootmgfw.efi。這在BIOS時代是相當常見的,但現在我實驗證明Centos所帶的grub.efi不能鏈式加載bootmgfw.efi,提示錯誤。(不可行)
  • 升級主板固件,使得能按下F12時,同時顯示CentOS和Windows兩個啓動選項。還沒找到可行的途徑。(不可行)
  • 通過第三方啓動管理器來代替bootmgfw.efi的位置,讓後由這個管理器提供鏈式加載bootmgfw.efi和grub.efi。我選用的是rEFInd,實驗證明完全可行。(可行!)
目前位置我還沒找到可以修該這款主板UEFI的啓動菜單的可行方式,所以採用把refind.efi改名爲微軟的bootmgfw.efi的方式。而微軟的bootmgfw.efi則修改到其他位置。具體步驟:
(1)通過CentOS光盤recue模式,把/EFI/Microsft/Boot文件夾改名爲 /EFI/weiruan;
(2)把refind文件夾拷貝到/EFI/Microsoft/,並改名爲Boot;
(3)把refind_x64.efi改名爲bootmgfw.efi;修改refind.conf.smaple文件名爲refind.conf,並根據需要修改其中的內容,我修改後的內容如下:

timeout 20
showtools shell, mok_tool, about, reboot, exit, firmware
scanfor internal,external,optical,manual
dont_scan_files shim.efi,MokManager.efi,memtest.efi,bootmgr.efi
scan_all_linux_kernels
default_selection weiruan

至此,文件夾佈局爲:
EFI/weiruan (裏面是Windows8的啓動器)
EFI/Microsoft/Boot(裏面是refind的文件)
EFI/redhat  (裏面是grub啓動器)

完成後,重新啓動機器,喜人的rEFInd界面出現,上圖顯擺一下:


3 UEFI時代的雙啓動思考

  • 微軟依舊很霸道,所以多系統安裝時,Windows要首先安裝,省的它在安裝是破壞別的已安裝系統;
  • 這個時代的啓動加載器尚未完全成熟穩定,grub就是個例子,它的鏈式加載有問題存在;
  • UEFI主板功能還不完善,設置修改不方便,不好用;
  • 理論上多啓動更加簡單;
  • 目前作爲啓動管理器的rEFInd確實非常好用。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章