大家好!
本文介紹將 UEFI 引導功能添加到 WDS 需要遵循的步驟。
那些。 本文中的說明假定您已經具有以下配置:
1. Windows Server 2012R2 (или новее)
2. Полностью настроенный DHCP для работы с WDS
3. Собственно сам WDS
4. IIS
5. Виртуальная машина или ПК с Ubuntu
此外,這裡描述了沒有給我帶來正確結果的操作。
我描述它們是為了方便搜索並節省您的時間。
前言
我用很多好東西製作了一個 WDS,tk。 厭倦了不斷地帶著一堆閃存驅動器跑來跑去並覆蓋它們。
這些文章順便幫助了我:
一切都很好,添加了新圖像以供加載,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 的 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 模式啟動的設備或虛擬機並嘗試啟動。
你應該有下圖:
如果是這樣,很好,你可以繼續。
如果沒有,那就看我在前言裡寫的。
第 2 階段 - 構建 iPXE 啟動文件
我們啟動預先準備好的 Ubuntu,打開終端並粘貼此行:
git clone https://git.ipxe.org/ipxe.git ipxe
在這裡我想做一個小小的評論,您可能必須將編譯 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
如果一切正常,那麼您應該在終端中獲得以下輸出:
和文件 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
我還復制了 ipxe.efi 文件,將其重命名為 BOOTIA32.EFI 並為其配置啟動,以防萬一。 architecture:x86uefi
但總的來說,這是沒有意義的,因為。 Bootmgfw.efi 文件不支持 x86
讓我們檢查一下發生了什麼。
很好,WDS 發送我們的文件以供下載,然後它會沿著路徑查找配置: http://192.168.0.100/install.ipxe
第 4 步 - 菜單配置
轉到您網站的根文件夾。
默認值是: C:inetpubwwwroot
創建一個文本文件 安裝.ipxe.
並根據配置
也有俄語
我喜歡
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
.
為此,您需要在 IIS 控制面板中添加 MIME 類型,按照
帶有您將通過 http 下載的文件擴展名。
我沒有尋找最適合此目的的 MIME 類型,並詢問 application/octet-stream
,之後一切正常。
對於沒有擴展名的文件,請使用點。
像這樣:
結論
最終,我們能夠通過 UEFI 在本地網絡上啟動。
如果我們做的一切都正確,那麼就會有類似這個引導選擇菜單的東西:
如果你已經準備好基本的工具並且不會為配置而煩惱,那麼實現這個功能大約需要10-20分鐘。
我花了 2 個工作日,因為。 我不得不穀歌很多。
實施成功!
感謝您的關注,也非常感謝那些文章對我有幫助的人!
在哈布雷上它是:
來源: www.habr.com