گسترش عملکرد WDS: افزودن قابلیت بوت UEFI

خوش آمدید!

این مقاله مراحلی را که باید برای افزودن قابلیت بوت 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 پشتیبانی نمی‌کنند، یا اگر پشتیبانی می‌کنند، ممکن است گنجاندن آن در یک مکان بسیار غیر واضح باشد.

بله، و نصب ویندوز در حالت legacy، زمانی که امکان نصب در UEFI وجود دارد، جالب نیست.

در نتیجه تصمیم گرفتم قابلیت بوت شدن را به 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
یا اگر به دلایلی این فایل برای شما گم شده است، آن را در سایت قرار دادم گوگل.
برای این راه حل، با تشکر از بچه ها از reddit.

با این مشکل، من بیشترین زمان را کشتم، زیرا. من فکر کردم مشکل از پیکربندی WDS یا DHCP است.

سیاست‌ها را با افزودن کلاس‌های فروشنده برای معماری‌های مختلف و پیکربندی گزینه‌های DHCP 060، 066، 067 پیکربندی کرد. دستور العمل برای پیکربندی سیاست های DHCP.

معماری در ASCII برای پیکربندی DHCP

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

همچنین، من گزینه های مختلفی را برای فایل های بوت امتحان کردم. .efi

  • syslinux
  • گراب 2

من همچنین سعی کردم مشکل را در گزارش رویداد پیدا کنم.
win + r -> eventvwr -> Журналы приложений и служб -> Microsoft -> Windows -> Deployment-Services-Diagnostics

اما همانطور که در بالا گفتم مشکل در فایل بود wdsmgfw.efi.
یا تصادفاً خودم پاکش کردم یا موقع نصب کپی نشد
و پیکربندی WDS

خوب، بیایید شروع کنیم!

دستور العمل

مرحله 1 - بررسی کنید که WDS کار می کند

هر دستگاه یا ماشین مجازی با پشتیبانی از بوت شدن در حالت UEFI را از طریق شبکه بگیرید و سعی کنید بوت شود.

شما باید تصویر زیر را داشته باشید:

گسترش عملکرد WDS: افزودن قابلیت بوت UEFI

اگر چنین است، عالی است، می توانید ادامه دهید.
اگر نه، پس ببینید در مقدمه چه نوشتم.

مرحله 2 - ساخت فایل بوت iPXE

ما اوبونتو از پیش آماده شده را راه اندازی می کنیم، یک ترمینال باز می کنیم و این خط را می چسبانیم:

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

گسترش عملکرد WDS: افزودن قابلیت بوت UEFI

در اینجا می‌خواهم یک نکته کوچک بگویم که ممکن است مجبور شوید بسته‌هایی را به اوبونتو اضافه کنید که برای کامپایل C و C ++ ضروری هستند.
من فقط آنها را نصب کردم.

دانلود شده؟ - عالی!
اکنون باید یک فایل پیکربندی برای اسمبلی ایجاد کنید.
در ترمینال می نویسیم:

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

این همه برای اوبونتو است.

مرحله 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

یک فایل متنی ایجاد کنید install.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 روز کاری طول کشید، زیرا. مجبور شدم خیلی در گوگل سرچ کنم.

اجرای موفق!

از توجه شما متشکرم و از افرادی که مقالاتشان به من کمک کرد سپاسگزارم!
در هابره این است: اینگتار и دیپ تاون.

منبع: www.habr.com

اضافه کردن نظر