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:
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
Đối với giải pháp này, cảm ơn các bạn từ
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.
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:
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
Ở đâ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
Nếu mọi thứ đều theo thứ tự thì bạn sẽ nhận được kết quả đầu ra sau trong terminal:
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
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
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.
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
Ngoài ra còn có tiếng Nga
tôi đã tận hưởng
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
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
.
Để 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à:
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:
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à:
Nguồn: www.habr.com