UEFI的MB會使用NVRAM來儲存你設定的開機選項,或你曾使用過的開機選項。
這幾筆紀錄有時候會自己不見,又有些時候沒有裝上任何硬碟也會顯示。
找到自定義的UEFI的開機紀錄時:
就照著MB中設定的優先權順序跑。
當找不到任何自定義的UEFI的開機紀錄時:
UEFI會去找所有儲存媒體上的/EFI/boot/bootx64.efi來啟動x86_64的系統。
類似BIOS去/dev/sd*找bootloader這樣。
但如果只是這樣,就顯不出UEFI跟BIOS的分別。
可以存放數種的bootloader在EFI分割區,再去選擇自己要啟動的bootloader。
在Linux上可以用efibootmgr來管理NVRAM,通常是會跟grub-efi一起裝上。
Windows也有自帶管理工具bcdedit。
以前的習慣通常是先安裝windows,再安裝Linux。
用grub來管理多重開機的選項,但使用UEFI後就有些不太一樣。
debian Jessie目前的行為是將grub安裝到/EFI/debian/grubx64.efi。
但不會去動到原本的/EFI/boot/bootx64.efi。
所以如果是先安裝windows,再安裝debian。
重開機後要看到grub的畫面,必須在boot時選用efibootmgr建立的grubx64.efi的選項。
ubuntu 13.04的行為則是把grub安裝到/EFI/boot/bootx64.efi。
13.04之後的ubuntu我還沒有試用過,就不清楚 。
如果原本的硬碟上已有安裝windows,必須要先把windows的bootx64.efi備份起來。
以UEFI模式安裝的windows,這檔案似乎是必須存在才能啟動。
我常用來備份Windows的Clonezilla,對於UEFI模式安裝的windows也可以正常使用。
但不知道為了什麼原因,Clonezilla還原後會把UEFI的NVRAM通通清掉。
因此最後我還是把windows的bootx64.efi給搬了出來。
再把grubx64.efi丟到/EFI/boot/bootx64.efi 。

最後,grub好像沒有辦法chainloader clover。