擴展 WDS 功能:添加 UEFI 引導功能

大家好!

本文介紹將 UEFI 引導功能添加到 WDS 需要遵循的步驟。

那些。 本文中的說明假定您已經具有以下配置:

1. Windows Server 2012R2 (или новее)
2. Полностью настроенный DHCP для работы с WDS
3. Собственно сам WDS
4. IIS
5. Виртуальная машина или ПК с Ubuntu

此外,這裡描述了沒有給我帶來正確結果的操作。
我描述它們是為了方便搜索並節省您的時間。

前言

我用很多好東西製作了一個 WDS,tk。 厭倦了不斷地帶著一堆閃存驅動器跑來跑去並覆蓋它們。

這些文章順便幫助了我:
添加 WDS 多功能性
System Center Configuration Manager 的 PXE 引導菜單


看起來像這樣

擴展 WDS 功能:添加 UEFI 引導功能

一切都很好,添加了新圖像以供加載,winPE 圖像上長滿了新功能,一切正常。

但是,並非所有設備都支持 BIOS / Legacy 啟動模式,或者如果支持,那麼它可能位於一個非常不明顯的地方。

是的,當可以在 UEFI 中安裝時,以傳統模式安裝 Windows 並不酷。

因此,我決定添加啟動到 UEFI 的功能,然後去谷歌。

但我沒有找到關於如何獲得工作 WDS + UEFI 的結構化信息。
事實上,這就是我決定寫這篇文章的原因。

在開始之前,我將描述花費最多時間的問題。

將 UEFI 添加到 WDS 時,可能會出現以下不太明顯的情況:

如果您將啟動文件添加到 WDS 並且當您嘗試在設備上啟動時
在 UEFI 中,您會看到以下文本:
The selected boot device failed. Press <Enter> to Continue.
Boot Device Not Found
但是加載舊版適合你。
那麼可能的選擇之一是缺少文件 wdsmgfw.efi,
沿著以下路徑: %WDSpath%Bootx64wdsmgfw.efi

你可以在這裡拿走: C:WindowsSystem32RemInstbootx64wdsmgfw.efi
或者,如果由於某種原因你找不到這個文件,我把它貼在 谷歌.
對於這個解決方案,感謝來自 紅迪網.

有了這個問題,我殺了最多的時間,因為。 我認為問題出在 WDS 或 DHCP 配置中。

通過為各種體系結構添加供應商類別並設置 DHCP 選項 060、066、067 來配置策略。 指令 用於配置 DHCP 策略。

用於配置 DHCP 的 ASCII 體系結構

PXEClient:Arch:00000 - BIOS/舊版
PXEClient:Arch:00006 - UEFI x86
PXEClient:Arch:00007 - UEFI x64

另外,我嘗試了各種引導文件選項。 .efi

  • SYSLINUX
  • grub 2

我還嘗試在事件日誌中查找問題。
win + r -> eventvwr -> Журналы приложений и служб -> Microsoft -> Windows -> Deployment-Services-Diagnostics

但是,正如我上面所說,問題出在文件中 wdsmgfw.efi.
要么是我自己不小心刪了,要么是安裝的時候沒有復制
並配置 WDS。

好吧,讓我們開始吧!

指令

第 1 階段 - 驗證 WDS 是否正常工作

使用任何支持通過網絡以 UEFI 模式啟動的設備或虛擬機並嘗試啟動。

你應該有下圖:

擴展 WDS 功能:添加 UEFI 引導功能

如果是這樣,很好,你可以繼續。
如果沒有,那就看我在前言裡寫的。

第 2 階段 - 構建 iPXE 啟動文件

我們啟動預先準備好的 Ubuntu,打開終端並粘貼此行:

git clone https://git.ipxe.org/ipxe.git ipxe

擴展 WDS 功能:添加 UEFI 引導功能

在這裡我想做一個小小的評論,您可能必須將編譯 C 和 C++ 所必需的包添加到 Ubuntu。
我剛剛安裝了它們。

下載了嗎? - 偉大的!
現在您需要為程序集製作一個配置文件。
在終端中,我們寫:

cd ipxe/src
gedit chain.ipxe

並將以下代碼粘貼到此文件中,然後保存:

#!ipxe

dhcp
chain http://%IP-address-your-IIS-server%/install.ipxe

我們回到終端開始編譯:

make bin-x86_64-efi/ipxe.efi EMBED=chain.ipxe

擴展 WDS 功能:添加 UEFI 引導功能

如果一切正常,那麼您應該在終端中獲得以下輸出:

擴展 WDS 功能:添加 UEFI 引導功能

和文件 ipxe文件, 一路上: ipxe/src/bin-x86_64-efi/ipxe.efi
如果由於某種原因你不能自己編譯,
我附上了我的 文件.
它被編譯為從 http://192.168.0.100/install.ipxe

這就是 Ubuntu 的全部內容。

第 3 步 - 將 ipxe.efi 添加到 WDS

我們獲取在第二階段收到的文件並沿途複製它:
%WDSpath%Bootx64%your-boot-folder%EFIBOOT
我們將其重命名為 BOOTX64.EFI 之後。
沒必要,只是更方便。

然後我們發射 CMD 代表管理員,編寫如下命令:

wdsutil /set-server /bootprogram:Bootx64%your-boot-folder%EFIBOOTBOOTX
64.EFI /architecture:x64uefi
и
wdsutil /set-server /N12bootprogram:Bootx64%your-boot-folder%EFIBOOTBOOTX
64.EFI /architecture:x64uefi

這會將生成的文件設置為通過 WDS 下載。

讓我們檢查一下配置:

wdsutil /get-server /Show:Config

擴展 WDS 功能:添加 UEFI 引導功能

我還復制了 ipxe.efi 文件,將其重命名為 BOOTIA32.EFI 並為其配置啟動,以防萬一。 architecture:x86uefi
但總的來說,這是沒有意義的,因為。 Bootmgfw.efi 文件不支持 x86

讓我們檢查一下發生了什麼。
擴展 WDS 功能:添加 UEFI 引導功能
很好,WDS 發送我們的文件以供下載,然後它會沿著路徑查找配置: http://192.168.0.100/install.ipxe

第 4 步 - 菜單配置

轉到您網站的根文件夾。
默認值是: C:inetpubwwwroot

創建一個文本文件 安裝.ipxe.

並根據配置 文檔 和你的需要。
也有俄語 описание 命令。
我喜歡 配置 WDS 時的說明。

install.ipxe 配置示例

#!ipxe

:start
menu Please choose an operating system to start/install
item --gap Start Win PE
item WinPE-x64 WinPE x64
item --gap ipxe shell
item shell       Drop to iPXE shell

choose target && goto ${target}

:failed
echo Booting failed, dropping to shell
goto shell

:shell
echo Type 'exit' to get the back to the menu
shell
set menu-timeout 0
set submenu-timeout 0
goto start

:WinPE-x64
kernel http://192.168.0.100/wimboot
initrd http://192.168.0.100/peSE/Boot/bcd
initrd http://192.168.0.100/peSE/Boot/boot.sdi
initrd http://192.168.0.100/peSE/Boot/peSE64.wim
boot || goto failed

您可以閱讀有關加載 winPE 的配置 這裡.

階段 5 - MIME 類型

創建菜單並將所有必要的文件添加到 IIS 根文件夾後,
您需要授予他們訪問權限。

因為即使您嘗試從瀏覽器下載文件,您也會在其地址處收到錯誤消息: HTTP 404.3 - Not Found.
擴展 WDS 功能:添加 UEFI 引導功能

為此,您需要在 IIS 控制面板中添加 MIME 類型,按照
帶有您將通過 http 下載的文件擴展名。

我沒有尋找最適合此目的的 MIME 類型,並詢問 application/octet-stream,之後一切正常。

對於沒有擴展名的文件,請使用點。

像這樣:

擴展 WDS 功能:添加 UEFI 引導功能

結論

最終,我們能夠通過 UEFI 在本地網絡上啟動。

如果我們做的一切都正確,那麼就會有類似這個引導選擇菜單的東西:

擴展 WDS 功能:添加 UEFI 引導功能

如果你已經準備好基本的工具並且不會為配置而煩惱,那麼實現這個功能大約需要10-20分鐘。
我花了 2 個工作日,因為。 我不得不穀歌很多。

實施成功!

感謝您的關注,也非常感謝那些文章對我有幫助的人!
在哈布雷上它是: 英塔 и 深城.

來源: www.habr.com

添加評論