ขยายฟังก์ชัน WDS: เพิ่มความสามารถในการบูต UEFI

Hello!

บทความนี้อธิบายขั้นตอนที่คุณต้องปฏิบัติตามเพื่อเพิ่มความสามารถในการบูต UEFI ให้กับ WDS ของคุณ

เหล่านั้น. คำแนะนำในบทความนี้ถือว่าคุณมีการกำหนดค่าต่อไปนี้แล้ว:

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

นอกจากนี้ ต่อไปนี้เป็นการกระทำที่ไม่ได้ให้ผลลัพธ์ที่เหมาะสมแก่ฉัน
ฉันอธิบายไว้เพื่ออำนวยความสะดวกในการค้นหาและประหยัดเวลาของคุณ

คำปรารภ

ฉันสร้าง WDS ในที่ทำงานพร้อมกับสารพัดมากมาย tk เหนื่อยกับการวิ่งไปมาตลอดเวลากับแฟลชไดรฟ์จำนวนมากและเขียนทับมัน

บทความเหล่านี้ช่วยฉันได้:
เพิ่มความเก่งกาจของ WDS
เมนูบูต PXE พร้อม System Center Configuration Manager


ดูเหมือนว่านี้

ขยายฟังก์ชัน WDS: เพิ่มความสามารถในการบูต UEFI

และทุกอย่างเรียบร้อยดี มีการเพิ่มรูปภาพใหม่สำหรับการโหลด อิมเมจ winPE เต็มไปด้วยคุณสมบัติใหม่และทุกอย่างทำงานได้

แต่นอกเหนือจากอุปกรณ์ทั้งหมดที่รองรับโหมดการบู๊ต BIOS / Legacy หรือถ้าเป็นเช่นนั้นการรวมไว้ในตำแหน่งที่ไม่ชัดเจน

ใช่ และการติดตั้ง windows ในโหมดดั้งเดิมเมื่อสามารถติดตั้งใน UEFI ได้นั้นไม่เจ๋งเลย

ด้วยเหตุนี้ ฉันจึงตัดสินใจเพิ่มความสามารถในการบูตเข้าสู่ UEFI และไปที่ Google

แต่ฉันไม่พบข้อมูลที่มีโครงสร้างเกี่ยวกับวิธีรับ 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
หรือถ้าด้วยเหตุผลบางอย่างไฟล์นี้หายไปสำหรับคุณ ฉันได้โพสต์ไว้ Google.
สำหรับวิธีแก้ปัญหานี้ ขอบคุณพวกคุณจาก เรดดิท.

ด้วยปัญหานี้ ฉันฆ่าเวลามากที่สุดเพราะ ฉันคิดว่าปัญหาอยู่ที่การกำหนดค่า WDS หรือ DHCP

กำหนดค่านโยบายโดยการเพิ่ม Vendor Classes สำหรับสถาปัตยกรรมต่างๆ และตั้งค่าตัวเลือก DHCP 060, 066, 067 การแนะนำ สำหรับกำหนดค่านโยบาย DHCP

สถาปัตยกรรมใน ASCII สำหรับกำหนดค่า DHCP

PXEClient:Arch:00000 - BIOS/Legacy.dll
PXEClient:ซุ้ม:00006 - UEFI x86
PXEClient:ซุ้ม:00007 - UEFI x64

ฉันยังลองใช้ตัวเลือกต่าง ๆ สำหรับไฟล์สำหรับบู๊ต .efi

  • syslinux
  • ด้วง 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.efi, ระหว่างทาง: 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

ในการทำเช่นนี้ คุณต้องเพิ่มประเภท MIME ในแผงควบคุม IIS ตามนั้น
พร้อมนามสกุลไฟล์ที่คุณจะดาวน์โหลดผ่าน http.

ฉันไม่ได้มองหาประเภท MIME ที่ดีที่สุดสำหรับจุดประสงค์นี้ และถาม application/octet-streamหลังจากนั้นทุกอย่างก็ทำงาน

สำหรับไฟล์ที่ไม่มีนามสกุล ให้ใช้จุด

เช่นนี้

ขยายฟังก์ชัน WDS: เพิ่มความสามารถในการบูต UEFI

ข้อสรุป

ในที่สุด เราได้รับความสามารถในการบูตผ่านเครือข่ายท้องถิ่นผ่าน UEFI

หากเราทำทุกอย่างถูกต้องจะมีเมนูการเลือกบูตดังนี้:

ขยายฟังก์ชัน WDS: เพิ่มความสามารถในการบูต UEFI

หากคุณได้เตรียมเครื่องมือพื้นฐานไว้แล้วและคุณไม่กังวลกับการกำหนดค่า จะใช้เวลาประมาณ 10-20 นาทีในการนำคุณลักษณะนี้ไปใช้
ฉันใช้เวลา 2 วันทำการเพราะ ฉันต้อง google มาก

ดำเนินการสำเร็จ!

ขอบคุณสำหรับความสนใจของคุณและขอบคุณมากสำหรับคนที่บทความช่วยฉัน!
ในHabréมันคือ: อิงตาร์ и ดีปทาวน์.

ที่มา: will.com

เพิ่มความคิดเห็น