測試環境為 Windows server 2016 x64 (虛擬機).
關於 WDS 與 DHCP 設定請參考 – https://benjr.tw/100848 ,這邊將說明關於 WDS Boot images 的 BCD 設定.
參考文章 – https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc731245(v=ws.10)
關於 BCDEdit 使用請參考 – https://benjr.tw/3599
WDS (預設 Boot 與 Install Images 檔案存放位置 c:\RemoteInstall) 設定好 Boot Image 的 BCD 設定檔在哪裡?如果你用檔案搜尋可以找到下列幾個相關目錄與檔案.
C:\RemoteInstall\Tmp\x64{AB9CB194-4157-4AFF-AB06-63E66A4A7CD4}.bcd
C:\RemoteInstall\Boot\x64\default.bcd
C:\RemoteInstall\Boot\x64\Images\boot.wim.bcd
在 C:\RemoteInstall\Boot\ 會依據 WDS 可以支援的平台區分成以下的目錄,這邊主要以 x64 目錄來說明 (WDS 的 Boot image / Architecture 可以查你匯入的平台是哪一種).
- arm
- ia64
- x64
- x64uefi
- x86
- x86uefi
- x86x64
C:\RemoteInstall\Tmp\x64{AB9CB194-4157-4AFF-AB06-63E66A4A7CD4}.bcd
這個檔案就是透過 WDS PXE 安裝時所使用的 BCD 檔,不過這個檔案會依據你 WDS 改變時中間字串 {} 名稱也會跟著變動,所以我們是無法將 BCD 的設定寫在這裡.
C:\Users\Administrator>bcdedit /store C:\RemoteInstall\Tmp\x64{AB9CB194-4157-4AFF-AB06-63E66A4A7CD4}.bcd /enum all Windows Boot Manager -------------------- identifier {bootmgr} fontpath \boot\fonts inherit {dbgsettings} displayorder {a9a774fa-812f-450e-a177-00fb59de47e4} {4b4fbd51-3dc3-4e68-8c9b-4a1fc5ad27ba} timeout 30 Windows Boot Loader ------------------- identifier {4b4fbd51-3dc3-4e68-8c9b-4a1fc5ad27ba} device ramdisk=[boot]\Boot\x64\Images\boot1.wim,{00f21a60-0a19-4b94-a045-ca3ed2a983f8} description 2.Microsoft Windows PE (x64) osdevice ramdisk=[boot]\Boot\x64\Images\boot1.wim,{68d9e51c-a129-4ee1-9725-2ab00a957daf} systemroot \WINDOWS detecthal Yes winpe Yes Windows Boot Loader ------------------- identifier {a9a774fa-812f-450e-a177-00fb59de47e4} device ramdisk=[boot]\Boot\x64\Images\boot.wim,{79e6f830-06d7-476a-8c0f-199f8f943a4a} description Microsoft Windows PE (x64) osdevice ramdisk=[boot]\Boot\x64\Images\boot.wim,{68d9e51c-a129-4ee1-9725-2ab00a957daf} systemroot \WINDOWS detecthal Yes winpe Yes Debugger Settings ----------------- identifier {dbgsettings} debugtype Serial debugport 1 baudrate 115200 Device options -------------- identifier {00f21a60-0a19-4b94-a045-ca3ed2a983f8} inherit {68d9e51c-a129-4ee1-9725-2ab00a957daf} ramdiskmcenabled No ramdiskmctftpfallback Yes Device options -------------- identifier {68d9e51c-a129-4ee1-9725-2ab00a957daf} ramdisksdidevice boot ramdisksdipath \Boot\Boot.SDI ramdisktftpblocksize 1456 ramdisktftpwindowsize 4 ramdisktftpvarwindow Yes Device options -------------- identifier {79e6f830-06d7-476a-8c0f-199f8f943a4a} inherit {68d9e51c-a129-4ee1-9725-2ab00a957daf} ramdiskmcenabled No ramdiskmctftpfallback Yes
C:\RemoteInstall\Boot\x64\default.bcd
這邊只能針對 boot manager 的部分設定,如果要針對 operating system entry (for OSLoader) 需要修改 C:\RemoteInstall\Boot\x64\Images\boot.wim.bcd 的設定.
C:\Users\Administrator>bcdedit /store C:\RemoteInstall\Boot\x64\default.bcd /enum all Windows Boot Manager -------------------- identifier {bootmgr} fontpath \boot\fonts inherit {dbgsettings} timeout 30 Debugger Settings ----------------- identifier {dbgsettings} debugtype Serial debugport 1 baudrate 115200 Device options -------------- identifier {68d9e51c-a129-4ee1-9725-2ab00a957daf} ramdisksdidevice boot ramdisksdipath \Boot\Boot.SDI ramdisktftpblocksize 1456 ramdisktftpwindowsize 4 ramdisktftpvarwindow Yes
下面範例用來設定 bootmgr 開啟 bootdebug 的功能.
C:\Users\Administrator>bcdedit /store C:\RemoteInstall\Boot\x64\default.bcd /set {bootmgr} bootdebug on The operation completed successfully.
可以直接 restart WDS 會是透過指令的方式讓 C:\RemoteInstall\Tmp\ 檔案做更新.
C:\Users\Administrator>sc control wdsserver 129
C:\RemoteInstall\Boot\x64\Images\boot.wim.bcd
這個檔案是針對 operating system entry (for OSLoader) 的部位做修改,不過這個檔案有點奇怪,他無法透過 virtual BCD Editor (圖形化介面的 BCD 編輯程式) 來查看資料.
當有多筆 operating system entry 時會有相對應的 BCD 設定檔 (如 boot.wim.bcd , boot1.wim.bcd etc…)
C:\Users\Administrator>bcdedit /store C:\RemoteInstall\Boot\x64\Images\boot.wim.bcd /enum all Windows Boot Loader ------------------- identifier {a9a774fa-812f-450e-a177-00fb59de47e4} device ramdisk=[boot]\Boot\x64\Images\boot.wim,{79e6f830-06d7-476a-8c0f-199f8f943a4a} description Microsoft Windows PE (x64) osdevice ramdisk=[boot]\Boot\x64\Images\boot.wim,{68d9e51c-a129-4ee1-9725-2ab00a957daf} systemroot \WINDOWS detecthal Yes winpe Yes Device options -------------- identifier {79e6f830-06d7-476a-8c0f-199f8f943a4a} inherit {68d9e51c-a129-4ee1-9725-2ab00a957daf} ramdiskmcenabled No ramdiskmctftpfallback Yes
下面範例設定 TESTSIGNING (是否載入任何未經過數位簽章 digital signature 的驅動程序, ON – 是) ,其他可設定的 BCD 參數請參考 – https://docs.microsoft.com/en-us/windows-hardware/drivers/devtest/bcdedit–set
C:\Users\Administrator>bcdedit /store C:\RemoteInstall\Boot\x64\Images\boot.wim.bcd /set {a9a774fa-812f-450e-a177-00fb59de47e4} TESTSIGNING ON The operation completed successfully.
可以直接 restart WDS 會是透過指令的方式讓 C:\RemoteInstall\Tmp\ 檔案做更新.
C:\Users\Administrator>sc control wdsserver 129