本帖最後由 阿達金田一 於 2020-6-15 07:39 編輯
這應該要看主機板
因為 bootmenu 是主機板 在處理的
在早期的 legacy/csm 說謂的 bootmenu
其實應該說是 device boot menu
是選擇用哪一個 裝置 來 boot , 而 裝置 不是固定的
例如 hdd cd floppy usb-hd usb-cd
所以這就要看 主機板 是怎麼處理的
不同主機板可能處理上就不一樣
但因為 legacy/csm 是選擇 device 來 boot
所以基本上大多是 主機板 有偵測到 並支援 boot 的 device 都可以選(算是動態偵測)
但也只是可以選 , 能不能 legacy/csm boot
還要看該裝置中 boot 區有沒有加入 boot 程序
拿 hdd 來說就是 MBR PBR
基本上 legacy/csm 的 boot 都是載入 device 的 boot 區
對 hdd floppy usb-hd usb-flash 來說就是 第1個磁區
而 UEFI (這裡只說 UEFI x64)...
這就要說到 UEFI 是怎麼啟動的
簡單說就是 載入裝置中 efi 程序
對 HDD 類的裝置來說就是載入 fat/fat32 中的 efi
預設是大多是 第1個 fat/fat32 \efi\boot\bootx64.efi
嚴格來說應該說是 可支援分割表 中 可支援分區
而通常 分割表 GPT/MBR 都支援 , 分區最少支援 FAT/FAT32
(我的主機板好像有支援 NTFS)
而 UEFI 本身有一個功能
這個功能其實也可以叫 bootmenu
不過為了簡單的分別...就叫 {fwbootmgr}
沒錯就是 bcdedit 中的 {fwbootmgr}
簡單說就是 UEFI FirmWare Boot Manager
那問題來說...主機板 的 bootmenu 功能
顯示的是 {fwbootmgr}
還是顯示 bootmenu (device boot menu)
或是 混合顯示
又或是 顯示 {fwbootmgr} 但會自動更新 {fwbootmgr}
還是其它處理方式
例如
僅指定 device boot 時 , 是否會預先判斷是否能 boot , 若不能 boot 是否顯示
這一些都要看 主機板 是如何處理
例如 我的主機板
在 UEFI BIOS 中設了 boot device (其它還有 Net , UEFI CD/DVD , UEFI Floppy)
1. UEFI HDD
2. UEFI USB HDD
3. UEFI USB CD/DVD
4. UEFI USB Flash
主機板 UEFI HDD , 2個 SSD , 1個 HDD (裝置位置 SSD 在前)
按順序
UEFI HDD1 = SSD1 , hd0 , 1個 NTFS(hd0,0) , 1個 FAT32(hd0,1) , FAT32 有 \efi\boot\bootx64.efi
UEFI HDD2 = SSD2 , hd1 , 2個 NTFS(hd1,0) (hd1,1) ... 用來放 遊戲 和 備份
UEFI HDD3 = HDD1 , 1個 FAT32(hd2,0) , 3個NTFS (hd2,1-3) , FAT32 沒 \efi\boot\bootx64.efi
然後我插上了一個 usb-flash
USB-Flash , 1個 FAT分區 , 但沒有 \efi\boot\bootx64.efi
{fwbootmgr} 先用 bootice 清空
重開機 ... 我的 主機板 開機時按 F11 時, 顯示 bootmenu
會顯示
1. Windows Boot Manager
2. USB-Flash
這裡我推測 我的主機板 會偵測 \EFI\MICROSOFT\BOOT\BOOTMGFW.EFI
因為 \efi\boot\bootx64.efi 不一定是 windows 的 bootmgr
而清空 {fwbootmgr} 後, 按 F11 會顯示 Windows Boot Manager
推測是主機偵測到 SSD1 (hd0,1) 的 \EFI\MICROSOFT\BOOT\BOOTMGFW.EFI
然後 USB-Flash 雖然什麼 efi 都沒有, 但還是顯示
所以我推測若是沒有 \EFI\MICROSOFT\BOOT\BOOTMGFW.EFI , 大概是會顯示
1. UEFI HDD HDD1
2. USB-Flash
或是
1. UEFI HDD HDD1
2. UEFI HDD HDD2
3. UEFI HDD HDD3
4. USB-Flash
回到
1. Windows Boot Manager
2. USB-Flash
選2 開不了...因為沒 \efi\boot\bootx64.efi
選1 進 windows (是用 \EFI\MICROSOFT\BOOT\BOOTMGFW.EFI 不是 bootx64.efi)
先用 bootice 看 UEFI Boot Menu ( {fwbootmgr} )
會有3個 boot menu
2個 Windows Boot Manager 的 boot (皆是用 SSD1 的 \EFI\MICROSOFT\BOOT\BOOTMGFW.EFI)
1個 USB-Flash 的 boot (僅指向裝置)
如果再次重開機, F11
1. Windows Boot Manager
2. USB-Flash
進 windows 用 bootice 看 , 會只剩 2個 boot menu
1個 Windows Boot Manager 的 boot (SSD1 , \EFI\MICROSOFT\BOOT\BOOTMGFW.EFI)
1個 USB-Flash 的 boot
這可能是 主機板 或 windows 自動修正重覆
一開始 3個 是因為 {fwbootmgr} 一開始是空的
然後我的 主機板 開機會 device 偵測, 然後自動刷新 {fwbootmgr}
這時 {fwbootmgr} 有2個 (1個 windows , 1個 usb-flash)
然後進 windows , windows 自動修正增加 1個
用 bcdedit /enum {fwbootmgr} 看...增加的是 {bootmgr}
如果用 bootice 故意把 {bootmgr} 這一個砍了...再執行 bcdedit
windows 還是會自動修復 {bootmgr}
然後重開機變的剩2個boot, 是剩下 {bootmgr} 那一個
(我推測是 主機板 自動修正的)
如果這時把 UEFI boot device 設成
1. UEFI HDD
2. UEFI USB HDD
3. UEFI USB CD/DVD
重開機 F11
只會顯示 Windows Boot Manager ... 但是
進 windows 後用 bootice 看 {fwbootmgr}
還是2個
1. windows
2. usb-flash
不管 boot device 有沒有設 UEFI USB-Flash
如果把 USB-Flash 拔了...重開機
直接進 windows , bootice 看 {fwbootmgr}
usb-flash 的 uefi boot menu 就不見了...
所以整體推測
我的主機板 開機時會偵測 device , 然後會刷新 {fwbootmgr}
但 F11 boot menu , 會依 boot device 的設定來定決定是否顯示
如果 boot device 沒有設定 device...即時 {fwbootmgr} 有也不會顯示該項
然後我用 bootice 新增 {fwbootmgr} 給 Windows PE 用的 SSD1 的 \EFI\PE\bootx64.efi
重開機進 UEFI BIOS
UEFI HDD 的 BBS(開機順序) 會多出 Windows PE , 這裡設定順序
1. Windows Boot Manager
2. Windows PE
說一下我的主機板在處理
UEFI HDD
UEFI USB-HDD
UEFI USB-Flash
應該都有各別的 BBS , 我插 USB-Flash 時
USB-Flash 的 BBS 設定是另外一個, 不在 HDD BBS 中
簡單說我主機板 開機...不按F11
boot device 1 -> device 1 BBS 1 失敗 -> device 1 BBS 2 失敗 .... -> boot device 2 -> device 2 BBS 1 .....
照上面的設定 ... 不按F11
UEFI HDD -> Windows Boot Manager 啟動失敗 -> Windows PE 啟動失敗 -> UEFI USB-HDD
按 F11 會顯示 {fwbootmgr} 的 啟動項
且啟動項的 device 要有設定在 boot device , 若沒有則不會顯示
所以最後我的主機板...
沒插 USB-Flash 或 boot device 沒設 USB-Flash
1. Windows Boot Manager
2. Windows PE
插 USB-Flash ( boot device 有設 USB-Flash )
1. Windows Boot Manager
2. Windows PE
3. USB-Flash
|