隨着虛擬機管理軟件的廣泛使用,雙系統安裝場合越來越少了,但還存在這樣的地方,尤其是學習一些硬件的場合。本文針對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,實驗證明完全可行。(可行!)
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
3 UEFI時代的雙啓動思考
- 微軟依舊很霸道,所以多系統安裝時,Windows要首先安裝,省的它在安裝是破壞別的已安裝系統;
- 這個時代的啓動加載器尚未完全成熟穩定,grub就是個例子,它的鏈式加載有問題存在;
- UEFI主板功能還不完善,設置修改不方便,不好用;
- 理論上多啓動更加簡單;
- 目前作爲啓動管理器的rEFInd確實非常好用。