Mở rộng chức năng WDS: Thêm khả năng khởi động UEFI

Xin chào tất cả mọi người!

Bài viết này mô tả các bước bạn cần thực hiện để thêm khả năng khởi động UEFI vào WDS của mình.

Những thứ kia. Các hướng dẫn trong bài viết này giả định rằng bạn đã có cấu hình sau:

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

Ngoài ra, đây là những hành động được mô tả không mang lại cho tôi kết quả thích hợp.
Tôi mô tả chúng để tạo điều kiện thuận lợi cho việc tìm kiếm và tiết kiệm thời gian của bạn.

lời tựa

Tôi đã tạo một WDS tại nơi làm việc với rất nhiều tính năng thú vị, tk. mệt mỏi vì phải liên tục chạy xung quanh với hàng loạt ổ đĩa flash và ghi đè chúng.

Nhân tiện, những bài viết này đã giúp tôi:
Thêm tính linh hoạt của WDS
Menu khởi động PXE với Trình quản lý Cấu hình Trung tâm Hệ thống


Nó trông như thế này

Mở rộng chức năng WDS: Thêm khả năng khởi động UEFI

Và mọi thứ đều ổn, hình ảnh mới đã được thêm vào để tải, hình ảnh winPE được phát triển quá mức với các tính năng mới và mọi thứ đều hoạt động.

Tuy nhiên, không phải tất cả các thiết bị đều hỗ trợ chế độ khởi động BIOS / Legacy, hoặc nếu có, thì việc đưa nó vào có thể ở một nơi rất khó thấy.

Có, và cài đặt windows ở chế độ cũ, khi có thể cài đặt ở UEFI, thì không hay chút nào.

Do đó, tôi quyết định thêm khả năng khởi động vào UEFI và tìm đến Google.

Nhưng tôi không tìm thấy thông tin có cấu trúc về cách để WDS + UEFI hoạt động.
Thực ra đó là lý do tại sao tôi quyết định viết bài này.

Trước khi bắt đầu, tôi sẽ mô tả vấn đề mất nhiều thời gian nhất.

Khi thêm UEFI vào WDS, có thể xảy ra tình huống khá khó hiểu sau:

Nếu bạn thêm tệp khởi động vào WDS và khi bạn cố gắng khởi động trên thiết bị
trong UEFI bạn thấy văn bản sau:
The selected boot device failed. Press <Enter> to Continue.
Hoặc Boot Device Not Found
Nhưng tải trong di sản sẽ có ích cho bạn.
Sau đó, một trong những lựa chọn khả thi là không có tệp wdsmgfw.efi,
dọc theo con đường sau: %WDSpath%Bootx64wdsmgfw.efi

Bạn có thể lấy nó ở đây: C:WindowsSystem32RemInstbootx64wdsmgfw.efi
Hoặc, nếu vì lý do nào đó tập tin này bị thiếu đối với bạn, tôi đã đăng nó lên google.
Đối với giải pháp này, cảm ơn các bạn từ reddit.

Với vấn đề này, tôi đã giết chết nhiều thời gian nhất, bởi vì. Tôi nghĩ vấn đề nằm ở đâu đó trong cấu hình WDS hoặc DHCP.

Chính sách được định cấu hình bằng cách thêm Lớp nhà cung cấp cho các kiến ​​trúc khác nhau và định cấu hình các tùy chọn DHCP 060, 066, 067. Hướng dẫn để cấu hình các chính sách DHCP.

Kiến trúc trong ASCII để định cấu hình DHCP

PXEClient:Arch:00000 - BIOS/Cũ
PXEClient:Arch:00006 - UEFI x86
PXEClient:Arch:00007 - UEFI x64

Ngoài ra, tôi đã thử nhiều tùy chọn khác nhau cho tệp khởi động. .efi

  • syslinux
  • sâu 2

Tôi cũng đã cố gắng tìm sự cố trong Nhật ký sự kiện.
win + r -> eventvwr -> Журналы приложений и служб -> Microsoft -> Windows -> Deployment-Services-Diagnostics

Nhưng, như tôi đã nói ở trên, vấn đề nằm ở tập tin wdsmgfw.efi.
Hoặc là tôi đã vô tình xóa nó hoặc nó không được sao chép trong quá trình cài đặt
và cấu hình WDS.

Vâng, hãy bắt đầu!

Hướng dẫn

Giai đoạn 1 - Xác minh rằng WDS đang hoạt động

Lấy bất kỳ thiết bị hoặc máy ảo nào có hỗ trợ khởi động ở chế độ UEFI qua mạng và thử khởi động.

Bạn nên có hình ảnh sau đây:

Mở rộng chức năng WDS: Thêm khả năng khởi động UEFI

Nếu vậy thì tuyệt vời, bạn có thể tiếp tục.
Nếu không, hãy xem những gì tôi đã viết trong lời nói đầu.

Giai đoạn 2 - Xây dựng tệp khởi động iPXE

Chúng tôi khởi chạy Ubuntu đã chuẩn bị trước, mở một thiết bị đầu cuối và dán dòng này:

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

Mở rộng chức năng WDS: Thêm khả năng khởi động UEFI

Ở đây tôi muốn đưa ra một nhận xét nhỏ là bạn có thể phải thêm các gói vào Ubuntu cần thiết cho việc biên dịch C và C++.
Tôi vừa cài đặt chúng.

Đã tải xuống? - Tuyệt vời!
Bây giờ bạn cần tạo một tập tin cấu hình cho tập hợp.
Trong thiết bị đầu cuối, chúng tôi viết:

cd ipxe/src
gedit chain.ipxe

Và dán đoạn mã sau vào tệp này, rồi lưu:

#!ipxe

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

Chúng tôi quay trở lại thiết bị đầu cuối và bắt đầu quá trình biên dịch:

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

Mở rộng chức năng WDS: Thêm khả năng khởi động UEFI

Nếu mọi thứ đều theo thứ tự thì bạn sẽ nhận được kết quả đầu ra sau trong terminal:

Mở rộng chức năng WDS: Thêm khả năng khởi động UEFI

Và tập tin ipxe.efi, dọc đường: ipxe/src/bin-x86_64-efi/ipxe.efi
Nếu vì lý do nào đó bạn không thể tự mình biên dịch,
Tôi đã đính kèm của tôi tập tin.
Nó được biên dịch để khởi động từ http://192.168.0.100/install.ipxe

Đó là tất cả cho Ubuntu.

Bước 3 - Thêm ipxe.efi vào WDS

Chúng tôi lấy tệp mà chúng tôi nhận được ở giai đoạn thứ hai và sao chép nó trong quá trình thực hiện:
%WDSpath%Bootx64%your-boot-folder%EFIBOOT
Sau khi chúng ta đổi tên nó thành BOOTX64.EFI.
Nó không cần thiết, nó chỉ thuận tiện hơn.

Sau đó chúng tôi khởi động cmd thay mặt quản trị viên và viết các lệnh sau:

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

Điều này sẽ đặt tệp kết quả sẽ được tải xuống qua WDS.

Hãy kiểm tra cấu hình:

wdsutil /get-server /Show:Config

Mở rộng chức năng WDS: Thêm khả năng khởi động UEFI

Tôi cũng đã sao chép tệp ipxe.efi, đổi tên thành BOOTIA32.EFI và định cấu hình khởi động cho nó, đề phòng. architecture:x86uefi
Nhưng nhìn chung, điều này không có ý nghĩa gì, bởi vì. Tệp Bootmgfw.efi không hỗ trợ x86

Hãy kiểm tra xem điều gì đã xảy ra.
Mở rộng chức năng WDS: Thêm khả năng khởi động UEFI
Tuyệt vời, WDS gửi tệp của chúng tôi để tải xuống và lần lượt nó tìm kiếm cấu hình dọc theo đường dẫn: http://192.168.0.100/install.ipxe

Bước 4 - Cấu hình menu

Đi tới thư mục gốc của trang web của bạn.
Mặc định là: C:inetpubwwwroot

Tạo một tập tin văn bản cài đặt.ipxe.

và cấu hình nó theo tài liệu và nhu cầu của bạn.
Ngoài ra còn có tiếng Nga описание lệnh.
tôi đã tận hưởng điều này hướng dẫn khi cấu hình WDS của bạn.

ví dụ về cấu hình 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

Bạn có thể đọc về cấu hình để tải winPE đây.

Giai đoạn 5 - Các loại MIME

Sau khi tạo menu và thêm tất cả các tệp cần thiết vào thư mục gốc IIS,
bạn cần cấp cho họ quyền truy cập.

Bởi vì ngay cả khi bạn cố tải xuống một tệp từ trình duyệt, bạn sẽ gặp lỗi tại địa chỉ của nó: HTTP 404.3 - Not Found.
Mở rộng chức năng WDS: Thêm khả năng khởi động UEFI

Để thực hiện việc này, bạn cần thêm các loại MIME vào bảng điều khiển IIS, theo
với phần mở rộng tệp mà bạn sẽ tải xuống qua http.

Tôi đã không tìm loại MIME nào là tốt nhất cho mục đích này và đã hỏi application/octet-stream, sau đó mọi thứ đều hoạt động.

Đối với các tệp không có phần mở rộng, hãy sử dụng dấu chấm.

Đây là:

Mở rộng chức năng WDS: Thêm khả năng khởi động UEFI

Kết luận

Cuối cùng, chúng tôi có khả năng khởi động qua mạng cục bộ thông qua UEFI.

Nếu chúng tôi đã làm mọi thứ chính xác, thì sẽ có một cái gì đó giống như menu chọn khởi động này:

Mở rộng chức năng WDS: Thêm khả năng khởi động UEFI

Nếu bạn đã chuẩn bị sẵn các công cụ cơ bản và không bận tâm đến việc cấu hình thì sẽ mất khoảng 10-20 phút để thực hiện tính năng này.
Tôi phải mất 2 ngày làm việc, bởi vì. Tôi đã phải google rất nhiều.

Thực hiện thành công!

Cảm ơn bạn đã quan tâm và cảm ơn rất nhiều đến những người có bài viết đã giúp tôi!
Trên Habré đó là: Ingtar и thị trấn sâu.

Nguồn: www.habr.com

Thêm một lời nhận xét