В этой статье мы рассмотрим, как установить Windows 10 или 11 по сети без использования загрузочной USB флешки (установочного DVD диска). Для загрузки компьютера по сети через PXE мы будем использовать небольшой Tiny PXE Server. Инструкция применима для установки Windows на устройствах как с UEFI, так и с BIOS прошивкой.
В корпоративных сетях для разливки образов Windows по сети используются более функциональные Windows Deployment Services (WDS) и Microsoft Deployment Toolkit (MDT). В этой статье мы покажем, как быстро запустить PXE сервер на любом имеющемся компьютере (будь то устройство с Windows или Linux) и использовать его для сетевой установки Windows на компьютеры в этой же LAN с помощью простых средств.
Нам понадобятся:
- Установочный ISO образ с Windows 10 или 11 (проще всего создать его с помощью Windows Media Creation Tool согласно инструкции https://winitpro.ru/index.php/2013/12/31/sozdaem-zagruzochnuyu-fleshku-s-windows-7-dlya-uefi-sistemy/ )
- Образ Windows PE — можно использовать свой образ WinPE, извлечь его из образа восстановления MS DART, получить оригинальный WinPE с помощью Windows Assessment and Deployment Kit (Windows ADK), или использовать готовый образ типа Hiren’s BootCD PE.
- Сервер Tiny PXE (http://reboot.pro/files/file/303-tiny-pxe-server/ )
Содержание:
- Создаем загрузочный образ Windows PE с помощью ADK
- Подготовка сервера сетевой установки TinyPXE
- Сетевая установка Windows 10 и 11 с PXE сервера
Создаем загрузочный образ Windows PE с помощью ADK
Скачайте Windows ADK для Windows 11 и Windows PE add-on for the Windows ADK по ссылкам на странице https://docs.microsoft.com/en-us/windows-hardware/get-started/adk-install .
При установке Windows ADK выберите минимальную установку Deployment Tools.
Затем аналогично установите Windows PE add-on for Windows ADK.
После окончания установки запустите Deployment and Imaging Tool из стартового меню Windows. Или запустите вручную команду:
"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\DandISetEnv.bat"
Теперь скопируйте файлы для среды WinPE в указанный каталог (создавать не нужно):
copype amd64 C:\tools\winpe
В данном случае я создаю файлы для среды WinPE x64. Можно использовать другие опции в зависимости от архитектуры: x86, arm или arm64.
Теперь можно создать загрузочный ISO образ с WinPE:
MakeWinPEMedia /ISO C:\tools\winpe c:\tools\WinPE.iso
Подготовка сервера сетевой установки TinyPXE
Теперь нужно настроить ваш PXE сервер:
- Распакуйте архив pxesrv.zip в каталог C:\tools\pxesrv;
- Перейдите в каталог C:\tools\pxesrv и создайте текстовый файл pxe_menu.txt со следующим содержимым:
#!ipxe set boot-url http://${dhcp-server} #================ Main Menu ================= menu iPXE boot menu item WinPEISO WindowsPE ISO choose target && goto ${target} #============ Main Menu Options ============= :WinPEISO sanboot ${boot-url}/iso/WinPE.iso boot
- Скопируйте полученный ранее файл WinPE.iso в каталог C:\tools\pxesrv\files\iso;
- Смонтируйте установочный ISO образ в виртуальный привод Windows и откройте общий сетевой доступ к нему (если хотите, можете открыть к нему анонимный доступ, но это не обязательно);
- Запустите файл pxesrv.exe с правами администратора;
- Включите опцию HTTPd;
- Если ваш компьютер сам будет раздавать IP адреса по DHCP (Tiny PXE это умеет), отключите опцию ProxyDHCP. Убедитесь, что в полях Option 54 DHCP Server и Next-Server указан IP адрес вашего компьютера. В поле IP Pool start указано начало диапазона DHCP, убедитесь что этот диапазон не занят в вашей сети;
- В разделе Boot File укажите ipxe.pxe (для загрузки на BIOS устройствах) или ipxe-x86_64.efi (для UEFI устройств);
- В поле Filename if user-class=gPXE or IPXE укажите имя файла меню, который вы создали ранее pxe_menu.txt;
- Запустите PXE сервер, нажав кнопку Online;
Итак, ваш PXE сервер запущен и готов к работе. Если в Windows включен брандмауэр (проще), отключите его или разрешите входящий трафик для процесса pxesrv.exe по протоколам DHCP, PXE, HTTP, TFTPS и SMB.
Сетевая установка Windows 10 и 11 с PXE сервера
Теперь вам нужно загрузить ваш компьютер, на который вы хотите установить Windows, с PXE сервера. Компьютер должен находится в той же локальной сети (VLAN), что и компьютер с PXE сервером.
В настройках BIOS/UEFI компьютера выберите в качестве первичного устройства загрузки PXE.
При запуске среды PXE компьютер обнаружит в сети DHCP сервер, получит IP адрес и получит доступных опции в меню iPXE.
Компьютер загрузится по сети в среде WinPE.
В моем случае при тестировании загрузки с PXE сервера виртуальной машины VMWare с UEFI прошивкой появилась ошибка:
Could not describe SAN devices: Operation not supported
Could not boot image: Operation not supported https://ipxe.org/err/3c2220
Как оказалось, в UEFI прошивки виртуальной машины на моем хосте VMware ESXi есть баг:
This error indicates that your UEFI firmware has a bug that prevents the installation of the iSCSI boot firmware table (iBFT). Switch to booting in “legacy” BIOS mode rather than UEFI mode.
Пришлось переключить ВМ в режим BIOS и запускать PXE сервер с опцией ipxe.pxe. После этого пошла нормальная установка Windows по сети.
Вам осталось подключить по SMB сетевой каталог, в котором хранится ваш установочный ISO образ Windows 11.
После инициализации среды командой
wpeinit
подключите ваш сетевой каталог, в который смонтирован установочный образ Windows. Выполните команду:
Net use E: \\192.168.13.202\e
Где
192.168.13.202
– имя компьютера на котором хранится установочный образ, а
E
– название общей папки.
Введите имя пользователя, с правами доступа к вашей Windows с PXE сервером.
Запустите знакомый мастер установки Windows.
В этой статье мы рассмотрим шаги, необходимые для того, чтобы установить и настроить систему автоматической установки клиентских операционных систем на основе Windows Deployment Services. Мы добавим на сервер необходимые загрузочные образы и драйверы, создадим образ для захвата и воспользуемся им для создания установочного образа на основе подготовленной эталонной инсталляции операционной системы Windows 7.
Установка Windows Deployment Services.
Начнем с установки роли Windows Deployment Services на компьютере с операционной системой Windows Server 2008 R2.
Откроем Server Manager, выберем Roles и щелкнем на Add Roles.
Нажмем Next.
В следующем окне ставим галочку в пункте Windows Deployment Services и нажмем Next.
Еще раз Next.
Здесь нам нужно выбрать службы роли Windows Deplotment Services.
Deployment Server позволяет создавать образы операционных систем и управлять ими. Также он позволяет устанавливать эти операционные системы на компьютеры по сети. Для задач передачи данных использует Transport Server.
Transport Server содержит функционал, необходимый для доставки данных по сети, включая доставку с использованием мультикастинга, и может устанавливаться как отдельно, так и с Deployment Server.
Нам понадобятся обе службы. Нажимаем Next.
На странице Confirmation нажимаем Install.
И по завершении установки на странице Results нам сообщают о ее результатах. Нажимаем Close.
Настройка Windows Deployment Services.
Итак, мы установили роль Windows Deployment Services, и теперь нам нужно произвести его первоначальную настройку.
Нажимаем правой кнопкой на имя нашего сервера и выбираем Configure Server.
Откроется окно Before You Begin мастера Windows Deployment Services Configuration Wizard. Здесь нам сообщают, что после конфигурации сервера нам нужно будет добавить как минимум один загрузочный и один установочный образ. Этим мы займемся чуть позже.
Также здесь перечислены требования, соответствие которым является необходимым для работы Windows Deployment Services, а именно, что настраиваемый нами сервер является членом домена (или же контроллером) Active Directory, что в сети существуют активные DHCP и DNS серверы, а также, что на нашем сервере присутствует раздел диска с файловой системой NTFS, на котором предполагается хранить образы операционных систем.
Нажимаем Next.
В окне мастера Remote Installation Folder Location нам предлагается выбрать каталог, который будет содержать загрузочные и установочные образы, загрузочные файлы PXE (Pre-Boot Execution Environment) и средства управления Windows Deployment Services. Также здесь нам напоминают о том, что раздел, на котором предполагается создать требуемую папку должен содержать файловую систему NTFS.
Выбираем папку и нажимаем Next.
В окне DHCP Option 60 нам сообщают, что на нашем сервере обнаружен DHCP сервер, и предлагают отметить обе присутствующие в окне галочки. Первая, Do not listen on port 67, предписывает службе развертывания Windows не прослушивать порт 67, так как это будет делать присутствующий на нашем сервере DHCP сервер. Вторая галочка, Configure DHCP Option 60 to ‘PXEClient’, добавляет в свойства DHCP сервера опцию 60 со значением ‘PXEClient’, что будет указывать подключающимся клиентам, что данный сервер, кроме DHCP также содержит службу развертывания Windows.
В соответствии с рекомендациями мы поставим обе галочки.
Нажимаем Next.
В окне PXE Server Initial Settings нам предлагают выбрать будет ли отвечать наш WDS сервер клиентам, и если будет, то каким и как.
У нас есть три варианта на выбор.
Do not respond to any client computers. При выборе этого варианта, служба развертывания Windows не будет отвечать на запросы клиентов. Эту опцию стоит выбирать, если вы не хотите чтобы сервер принимал запросы от клиентов, пока вы полностью его не сконфигурируете.
Respond to only known client computers. При выборе этого параметра, сервер будет отвечать на запросы только тех машин, информация о которых уже содержится в Active Directory. То есть, чтобы сервер развертывания Windows ответил на запрос компьютера, необходимо, чтобы учетная запись для этого компьютера уже присутствовала в Active Directory. Сделать это можно из оснастки Active Directory Users and Computers, которая устанавливается вместе с ролью Windows Deployment Services. (Из оснастки Active Directory Users and Computers контроллера домена, на котором нет роли WDS это сделать не получится, так как при создании учетной записи компьютера страницы, запрашивающей GUID или MAC-адрес компьютера там не будет.)
Кроме оснастки, для добавления информации о компьютере можно воспользоваться утилитой wdsutil.exe с ключом /Add-Device.
Respond to all client computers (known and unknown). Результатом выбора этой опции будет то, что сервер будет отвечать на все запросы, вне зависимости от того, если ли учетная запись компьютера в Active Directory или нет.
При выборе этого варианта становится доступной галочка Requre administrator approval for unknown computers.
Установка этой галочки приведет к тому, что компьютер с отсутствующей в Active Directory учетной записью сможет продолжить установку только после утверждения администратором. Компьютер появится в списке Pending Devices оснастки Windows Deployment Services, где администратор может либо разрешить установку, либо запретить ее.
Также администратор может просмотреть список ожидающих компьютеров и разрешить или запретить установку используя уже упомянутую утилиту wdsutil.exe с ключами /Get-AutoAddDevices, /Approve-AutoAddDevices и /Reject-AutoAddDevices.
Выбираем вариант Respond only to known client computers и нажимаем Next.
На странице Operation Complete нам предлагают добавить загрузочные и установочные образы по завершении работы мастера. Сейчас мы не будем добавлять образы, поэтому оставим галочку снятой и нажмем Finish.
Свойства сервера WDS.
Как мы видим, теперь наш сервер настроен и мы можем начать добавлять образы. Но сначала стоит посмотреть где содержатся настройки сервера, в том числе те, которые мы только что сконфигурировали.
Щелкаем правой кнопкой мыши ни имени нашего сервера и выбираем Properties.
Перед нами откроется окно WDS Properties, содержащее несколько вкладок. Рассмотрим их внимательнее.
Вкладка General.
Здесь указаны имя нашего сервера, каталог, выбранный нами для хранения образов, а также режим работы сервера WDS.
На вкладке PXE Response мы можем обнаружить опции, отвечающие за поведение сервера при ответе на запросы компьютеров, а также величину интервала задержки перед отправкой ответа.
Вкладка AD DS содержит поле шаблона именования компьютеров, учетные записи которых отсутствуют в Active Directory. То есть компьютеры, учетные записи которых не представлены в службе каталогов будут получать имена в соответствии с этим шаблоном. Нажав на ссылку How to specify this format можно узнать о правилах составления данного шаблона.
Кроме того, на этой вкладке можно задать местоположение учетных записей компьютеров, которые будут созданы в процессе установки. В данном случае также имеются в виду те компьютеры, которые не имеют учетной записи в Active Directory.
На вкладке Boot можно задать как будет инициализироваться загрузка по сети (PXE boot).
При выборе Require the user to press the F12 key to continue PXE boot, при старте PXE загрузки будет выведено предложение нажать клавишу F12 для продолжения загрузки по сети. Если же в течение определенного периода времени нажатия клавиши не произойдет, то PXE загрузка будет отменена и компьютер попытается загрузиться с помощью следующего в списке метода загрузки.
Результатом выбора Always continue the PXE boot будет то, что PXE загрузка будет продолжена без какого-либо требования нажать клавишу.
И третий вариант, Continue the PXE boot unless the user presses the ESC key, указывает, что загрузка по сети будет продолжена если в течение определенного интервала времени пользователь не нажмет клавишу ESC.
Для чего это нужно?
Например, вы выбрали вариант Always continue to PXE boot. Он удобен тем, что для загрузки компьютера по сети не нужно будет нажимать никаких клавиш, и пользователь, находящийся в этот момент около компьютера не сможет прервать PXE загрузку нажатием клавиши ESC.
Но с другой стороны, если загрузка по сети стоит первой в списке загрузки компьютера, то это может привести к тому, что компьютер начнет установку операционной системы по сети, но после первой же перезагрузки, процесс повторится, так как компьютер будет пытаться загрузаиться не с жесткого диска (как следовало бы), а опять же при помощи PXE. В этом случае опция Require the user to press the F12 key to continue PXE boot становится весьма полезной.
Какая же опция подходит для вашей сети – решать вам, в зависимости от настройки сервера WDS и используемых вами методов развертывания операционных систем.
Также на этом экране можно задать загрузочный образ по умолчанию для компьютеров архитектуры x86, x64 или же ia64.
На вкладке Client мы можем выбрать файл ответов клиента WDS для каждой из поддерживаемых архитектур.
Существует два вида файлов ответов – файл ответов клиента WDS и файл ответов установочного образа.
Файл ответов клиента WDS позволяет автоматизировать ту часть установки, в которой, после загрузки компьютера с помощью загрузочного образа, предоставленного ему сервером WDS, вводятся данные об учетной записи для доступа к серверу WDS, размечается жесткий диск и выбирается образ для установки.
Файл ответов установочного образа применяется при автоматизации установки операционной системы, т.е. после того, как комьютер загрузит установочный образ и запустится уже со своего жесткого диска, и настраивается на уровне установочного образа. Файлы ответов этого типа отличаются для операционных систем Windows 7 и Windows XP.
Установка галочки Do not join the client to a domain after an installation приведет к тому, что сервер WDS не будет вводить установленные компьютеры в домен, хотя по умолчанию он это делает.
И последняя галочка отвечает за ведение журнала установки операционной системы. Установив эту галочку, вы получаете доступ к выпадающему списку, где вы можете выбрать типы регистрируемых событий.
Параметры, представленные на вкладке DHCP уже знакомы нам по мастеру первоначальной настройки и относятся к конфигурации, когда службы WDS и DHCP находятся на одном сервере.
Первая галочка, Do not listen on port 67, предотвращает прослушивание сервером WDS порта 67, так как этот порт будет прослушиваться сервером DHCP.
Вторая галочка, Configure DHCP option 60 to indicate that this server is also a PXE server, отвечает за добавление опции 60 в параметры DCHP сервера. Эта опция будет указывать клиентам DHCP, что данный компьютер также является и PXE сервером.
Вкладка Multicast, содержит опции, относящиеся к развертыванию операционных систем одновеременно на множество компьютеров при помощи мультикастинга. В данной статье мы не будем касаться настройки многоадресного вещания, так что пропустим подробное рассмотрение параметров данной вкладки и перейдем к следующей.
На вкладке Advanced у нас есть возможность предоставить серверу WDS динамически выбирать серверы службы каталога либо мы можем сами выбрать контроллер домена и сервер глобального каталога для использования сервером WDS.
Также на этой вкладке мы можем выбрать, нужно ли авторизовывать сервер WDS в DHCP.
Что это такое?
В сущности, авторизация сервера развертывания операционных систем заключается в добавлении записи о сервере в раздел конфигурации Active Directory по пути cn=NetServices,cn=Services, как это происходит при авторизации DHCP сервера.
Эту процедуру также можно выполнить при помощи утилиты wdsutil.exe с командой /Set-Server /Authorize:Yes.
Но в отличие от сервера DHCP, отсутствие авторизации которого приведет к тому, что он не будет обслуживать клиентов, для сервера WDS эту проверку нам нужно включить. Сделать это можно при помощи уже упомянутой утилиты wdsutil.exe с командой /Set-Server /RogueDetection:Yes.
Здесь есть одна особенность. Если серверы DHCP и WDS установлены на одной машине, то авторизация сервера WDS не будет иметь смысла, так как в этом случае запросы на порт 67 будут обрабатываться сервером DHCP и проверяться будет именно его авторизация.
Таким образом, для того, чтобы проверка авторизации проходила как для DHCP, так и для WDS, каждая из этих служб должна функционировать на отдельной машине.
На вкладке Network мы можем настроить диапазон портов, используемый сервером WDS для передачи клиентам образов операционных систем как при использовании мультикастинга, так и протокола TFTP.
Также на этой вкладке содержатся опции выбора сетевого профиля для использования сервером WDS.
Драйверы.
Теперь поговорим о драйверах.
При загрузке по сети, компьютер загружается при помощи полученого с сервера WDS загрузочного образа. В случае, если данный образ не содержит требуемых драйверов сетевой карты, то у компьютера не получится установить соединение с сервером WDS для выбора и последующей загрузки установочного образа.
В таком случае нужно добавить необходимый драйвер в загрузочный образ (равно как и в образ захвата операционной системы, Capture Image, и в образ обнаружения сервера WDS, Discovery Image, но об этом позже). И первым шагом будет добавление этого драйвера на сервер WDS.
В этом примере мы добавим драйвер для сетевых карт Realtek. Начнем с 64-х битной версии драйвера.
Щелкаем правой кнопкой мыши на узле Drivers и выбираем Add Driver Package…
Появляется окно Driver Package Location мастера добавления драйверов. Здесь нам требуется указать расположение файлов драйвера.
Оставляем параметр Select driver packages from an .inf file, выбираем требуемый .inf файл и щелкаем Next.
В окне Available Driver Packages нас информируют о том, какие пакеты драйверов были найдены в указанном нами месте. Здесь мы можем снять галочку с тех пакетов, которые мы не желаем добавлять на сервер. Также у нас есть возможность подробнее ознакомиться с содержимым пакета, дважды щелкнув на соответствующей ему строке.
Так как в предыдущем окне мы выбрали вариант указания .inf файла, в нашем случае здесь представлен всего один пакет. Дважды щелкнем на нем левой кнопкой мыши.
В открывшемся окне мы можем узнать общую информацию о пакете, список входящих в него драйверов (вкладка Drivers) и список файлов, составляющих данный пакет (вкладка Files).
Закроем окно нажатием на кнопку OK и перейдем к следующему окну мастера.
В окне Summary мы видим выбранный нами пакет драйверов. Нажатием на кнопку Next этот пакет будет добавлен на сервер WDS.
В следующем окне нас информируют об успешном добавлении пакета драйверов. Нажимаем Next.
В окне Driver Groups нам предлагают добавить этот пакет в группу драйверов, чтобы он был доступен для клиентов во время установки. Мы не будем этого делать и выберем вариант Do not put the driver package in a driver group at this time. Нажимаем Next.
В последнем окне мастера мы видим галочку Modify the filters for this group now, установив которую, в случае если бы мы добавили пакет в какую-либо группу в предыдущем окне, мы бы могли создать или изменить фильтры для этой группы.
Нажимаем Finish и повторяем процедуру для 32-х битной версии драйверов.
В итоге, узел All Packages, находящийся под узлом Drivers будет выглядеть следующим образом.
Загрузочные образы (Boot Images).
Теперь мы можем заняться добавлением загрузочных образов.
Щелкаем правой кнопкой мыши на узле Boot Images и выбираем Add Boot Image…
Откроется мастер добавления образов.
Необходимый нам загрузочный образ мы можем найти на диске дистрибутива Windows 7. Он находится в папке Sources и имеет название boot.wim. 64-х разрядная и 32-х разрядная версия образа находится соответственно на дисках 64-х и 32-х разрядной версии Windows 7.
В нашем случае образы уже скопированы на локальный жесткий диск.
Итак, указываем местоположение 64-х разрядной версии загрузочного образа и нажимаем Next.
В следующем окне нам предлагают указать имя и описание добавляемого образа и предлагают для этого значения по умолчанию.
Стоит изменить предлагаемые значения на что-нибудь более понятное. Например, вы можете указать имя, отражающее назначение данного образа.
Мы в качестве имени и описания укажем Boot (x64) и нажмем Next.
На странице Summary в поле Selected Images мы видим выбранный нами образ. Мы можем нажать кнопку Back и внести изменения, либо добавить образ на сервер, нажав на кнопку Next.
Как мы видим на странице Task Progress, образ успешно добавлен.
Проделаем ту же операцию для добавления 32-х разрядного образа.
Добавление драйверов в загрузочные образы.
Теперь добавим драйверы сетевых карт в загрузочные образы.
Щелкнем правой кнопкой мыши на требуемом загрузочном образе и выберем Add Driver Packages to Image…
Откроется окно мастера, предупреждающее о том, что добавление поврежденного драйвера может привести к порче загрузочного образа и рекомендующее перед добавлением сделать резервную копию образа путем закрытия мастеры и выбора в контекстном меню пункта Export Image.
Так как это тестовая среда, мы пропустим этот шаг и нажмем Next.
В следующем окне мы имеем возможность указать критерии поиска нужного нам пакета драйверов. Указав необходимые параметры (или оставив значения по умолчанию, как в нашем случае), нажмем кнопку Search for Packages.
Так как в нашей системе присутствует только один драйвер 64-х разрядной архитектуры, то в нижней части окна мастера отобразится только он. Здесь мы можем снять галочки с тех пакетов, добавлять которые мы не собираемся. Оставим галочку на нашем пакете драйверов для сетевых карт Realtek и нажмем Next.
В окне Selected Driver Packages нам еще раз показывают выбранные нами драйверы и сообщают, что нажатием кнопки Next они будут добавлены в загрузочный образ. Нажимаем Next.
При выполнении этой процедуры загрузочный образ будет смонтирован во временное месторасположение, к нему будут добавлены требуемые пакеты драйверов, после чего образ будет сохранен и размонтирован.
Стоит отметить, что для того, чтобы посмотреть какие драйверы уже присутствуют в определеннном загрузочном образе, а также для их удаления из него вам нужно будет воспользоваться утилитой dism.exe. Процесс будет состоять из следующих шагов: вы экспортируете требуемый образ, после чего монтируете его в файловую систему при помощи вышеупомянутой утилиты с ключом /Mount-Wim.
Выполнив эти действия, можно будет просмотреть список уже присутствующих в образе драйверов при помощи ключа /Get-Drivers, либо удалить некоторые из них использую ключ /Remove-Driver.
Если вашей целью было удаление драйверов из образа, то перед размонтированием его необходимо будет сохранить. После завершения работы с образом нужно будет импортировать его на сервер WDS.
Повторим операцию по добавлению драйверов для 32-х разрядного образа.
Образы захвата (Capture Images).
Теперь на основе содержащего требуемые драйверы загрузочного образа создадим образ для захвата операционной системы (Capture Image).
Щелкнем правой кнопкой мыши на нужном загрузочном образе и выберем Create Capture Image…
Откроется окно мастера, предлагающее ввести имя и описание создаваемого образа, а также его будущее расположение в файловой системе.
Введем необходимые данные и нажмем Next.
Мастер выполнит необходимые действия по созданию образа и сохранит его по указанному пути.
По завершении работы мастера мы имеем возможность добавить созданный образ на сервер WDS. Для этого поставим галочку Add Image to the Windows Deployment Server now и нажмем Next.
Откроется окно мастера с уже указанным расположением созданного нами в предыдущем шаге образа. Нажмем Next.
В следующем окне мастерамы имеем возможность изменить имя и описание добавляемого образа. В данном случае существующие значения удовлетворяют нашим требованиям, так что мы не станем их менять и сразу нажмем Next.
В окне Summary нам еще раз показывают выбранный образ и в случае ошибки предлагают нажать кнопку Back и внести требуемые изменения. Для добавления образа на сервер предлагается нажать кнопку Next.
После завершения работы мастера нам сообщают что процесс прошел успешно. Закроем окно нажатием кнопки Finish.
Повторим вышеописанные шаги для создания образа захвата из 32-х разрядного загрузочного образа.
Подготовка к созданию установочных образов.
Перед тем как приступить к добавлению установочных образов, нам нужно выполнить некоторые действия.
Первое из них — это создание группы установочных образов.
Щелкнем правой кнопкой мыши на пункте Install Images консоли Windows Deployment Services и выберем Add Image Group…
Введем имя группы и нажмем OK.
Кроме того, нам потребуется изменить настройку PXE Response Policy сервера WDS, находящуюся в окне WDS Properies на вкладке PXE Response, выбрав пункт Respond to all client computers (known and unknown) вместо установленного нами при первоначальной настройке Respond only to known client computers.
Делается это для того, чтобы компьютер, с которого мы будем снимать образ операционной системы смог загрузиться с сервера WDS, что было бы невозможно при предыдущей настройке, так как серверу WDS ничего не известно об этом компьютере.
Также это можно сделать из командной строки, выполнив команду wdsutil.exe /Set-Server /AnswerClients:All.
Установочные образы (Install Images).
Теперь мы можем заняться добавлением на сервер установочного образа.
Для этого нам нужен компьютер с установленной и настроенной операционной системой, на основе которого мы создадим эталонный образ для развертывания. В нашем случае это будет 64-х разрядная редакция Windows 7 Professional.
Перед захватом образа нам нужно подготовить операционную систему. Делается это при помощи утилиты sysprep.exe, находящейся в папке %SystemRoot%\System32\sysprep.
Можно воспользоваться ею как из графического интерфейса, так и из командной строки.
При работе с ее графическим интерфейсом в выпадающем меню System Cleanup Action нам нужно будет выбрать пункт Enter System Out-of-Box Experience (OOBE) и поставить галочку Generalize.
В выпадающем меню Shutdown Options выберем Reboot.
При вызове утилиты из командной строки нам нужно будет указать ключи, соответствующие вышеуказанным параметрам.
sysprep.exe /generalize /oobe /reboot
Параметр Enter System Out-of-Box Experience (OOBE) указывает, что при следующем запуске операционной системы пользователю (или, скорее, администратору) будет предложено произвести первоначальную настройку компьютера путем указания имени компьютера и некоторых других параметров.
Установка параметра Generalize приводит к тому, что из системы удаляется вся уникальная информация, сбрасывается SID, удаляются точки восстановления и журналы событий.
После нажания кнопки OK, Sysprep.exe подготовит систему к захвату образа и перезагрузит компьютер. Во время перезагрузки компьютера вам нужно будет выбрать PXE-загрузку.
Нужно сказать, что при загрузке компьютера без поддержки 64-х разрядной архитектуры, в меню загрузки будут видны только 32-х разрядные загрузочные образы, тогда как для компьютера с поддержкой 64-х разрядной архитектуры будут доступны как 32-х так и 64-х разрядные загрузочные образы.
Далее, при выборе 32-х разрядного загрузочного образа вы получите доступ к списку как 32-х, так и 64-х разрядных установочных образов, в то время как выбор 64-х разрядного загрузочного образа дает доступ только 64-х разрядным установочным образам.
Мы выберем 64-х разрядный образ захвата и нажмем Enter.
После загрузки компьютера из выбранного образа мы увидим начальное окно мастера захвата образов.
Нажмем Next.
В окне Directory to Capture выберем логический диск, содержащий подготовленную операционную систему и введем имя и описание создаваемого установочного образа.
В следующем окне в поле Name and location выберем имя и расположение файла образа. Захваченный образ будет сохранен в указанном месте.
Также, для того, чтобы загрузить образ на сервер WDS, поставим галочку Upload image to a Windows Deployment Services server (optional), введем имя сервера в строке Server name и нажмем Connect.
Появится окно для ввода учетных данных для подключения к серверу WDS. Предоставим необходимую информацию и нажмем OK.
В выпадающем списке Image Group name выберем группу, в которую мы хотим поместить создаваемый образ и нажмем Next.
Начнется процесс захвата образа.
После загрузки образа на сервер WDS он появится в списке установочных образов в указанной нами группе.
Кроме использования образа захвата создать образ подготовленной операционной системы можно, загрузившись с диска Windows Preinstallation Environment и воспользовавшиь утилитой imagex. Создать образ Windows PE можно при помощи утилиты oscdimg. Обе эти программы входят в набор Windows Automated Installation Kit, который можно загрузить с сайта http://www.microsoft.com.
Завершив добавление установочных образов можно вернуть настройку PXE Response Policy в состояние Respond only to known client computers.
Итак,
в данной статье мы рассмотрели шаги, необходимые для установки и первоначальной настройки Windows Depoyment Services, а также познакомились с процессами создания загрузочных образов, добавлением в них драйверов, созданием образов захвата на основе существующих загрузочных образов и в завершение мы воспользовались образом захвата для содания установочного образа из подготовленной при помощи утилиты sysprep.exe этaлонной инсталляции операционной системы.
Вторую часть этого цикла статей вы можете найти здесь:
Автоматизация установки клиентских операционных систем при помощи Windows Deployment Services. Часть II. Создание файлов ответов.
Страницы в социальных сетях:
Twitter: https://twitter.com/vsseth
Facebook: https://fb.com/inpowershell
VKontakte: https://vk.com/inpowershell
1. Устанавливаем TFTP и DHCP сервера для организации сетевой загрузки.
2. Устанавливаем загрузчик Windows Boot Manager на TFTP сервер.
3. Создаем общий сетевой ресурс на котором будут размещаться установочные файлы. Общий доступ может быть организован по протоколу CIFS или SMB.
4. Размещение установочных файлов необходимых версий Windows на общем сетевом ресурсе.
5. Размещаем среду предустановки на TFTP сервере, и выполняем ее настройку.
6. Настраиваем меню загрузчика.
7. Проверяем итоговый результат.
Первые два пункта представлены с ссылками, так как данные темы уже рассматривались ранее. Рекомендую ознакомиться с ними.
Общий сетевой ресурс
Нам необходимо создать папку, и организовать к ней общий доступ по сети. Сделать это можно в свойствах выбранного вами каталога, на вкладке Доступ.
Для организации общего доступа по отдельной учетной записи, потребуется создать отдельного пользователя. Сделать это можно в оснастке Локальные пользователи и группы (Win+R > lusrmgr.msc > OK).
На вкладке Безопасность, в свойствах папки с общим доступом, нужно добавить созданного пользователя с выставлением ему прав на чтение и выполнение.
Общая папка настроена.
Копирование дистрибутивов в общую папку
В качестве установочной версии ОС Windows мною была выбрана Windows 10 в 32 и 64 битном исполнении. То есть это два дистрибутива. Создадим для каждого, отдельную папку в директории с общим доступом.
В моем случае это папки Setup_Win10x64 и Setup_Win10x86.
Теперь скопируем папку sources каждого из дистрибутивов в созданные для них директории.
Установочные файлы готовы к использованию.
Среда предустановки
В качестве среды предустановки, будет использована та, что идет в комплекте с установочным дистрибутивом. Располагается она в папке sources и представлена образом boot.wim.
Текущий файл boot.wim (обоих дистрибутивов), настроен на запуск установки Windows с диска на котором он расположен. Наша задача, настроить данный образ так, чтобы процесс установки запускался из сети.
Изменения которые необходимо будет сделать, это — интегрировать в образ boot.wim сетевые драйвера, и внедрить скрипт установки.
Сетевые драйвера необходимы для того, чтобы загруженная WinPE могла корректно определить сетевой адаптер(ы) компьютера на котором она будет запущена.
Скрипт установки, будет выполнять подключение к ранее созданному сетевому ресурсу, с установочными файлами, и запускать процесс установки ОС Windows.
Так как у нас два дистрибутива, x86 и x64, среду предустановки каждого, нужно настраивать по отдельности. Данный процесс одинаков, поэтому я приведу пример настройки только для boot.wim x86 версии, с необходимыми поправками там, где это необходимо для boot.wim x64 версии.
Подготовка сетевых драйверов
Каких то особенных наборов драйверов, или специальных сборок не потребуется. Для создания своего пака драйверов можно поступить так.
Первым делом скачиваем установщик драйверов SDI (Snappy
Driver Installer). Нужна именно Lite версия. Страница скачивания https://sdi-tool.org/download/.
Распаковываем скачанный архив с SDI Lite.
Запускаем исполняемый файл SDI_Rxxxx.exe (32-битная версия) или SDI_x64_Rxxxx.exe (64-битная), в зависимости от разрядности вашей ОС. Или скрипт SDI_auto.bat, он сам определит разрядность запустит подходящий исполняемый файл. После запуска, скачиваем только сетевые драйверпаки.
По завершении загрузки, закрываем SDI и переходим в папку drivers. В ней будут располагаться скачанные архивы с драйверами.
Распакуем в отдельные директории следующие драйверпаки — DP_LAN_Intel_18054.7z, DP_LAN_Others_18053.7z, DP_LAN_Realtek-NT_18055.7z.
В каждой распакованной директории с драйверами, присутствуют поддиректории вида *x86* и *x64*.
Это разделение драйверов по разрядности. Тут возникает одна проблема. К примеру, для WinPE x86 интеграция x64 драйверов будет избыточным и нецелесообразным действием. Поэтому удалим все поддиректории с именем *x64* (для WinPE x64 будет ровно противоположенное действие). Для этой цели удобнее всего воспользоваться каким-нибудь файловым менеджером (Far Manager, Total Commander, Double Commander).
Драйвера сетевых адаптеров для WinPE x86 готовы. Теперь имеющиеся директории можно перенести в отдельную папку, например LAN_x86. Думаю вам не составит труда самостоятельно организовать папку с драйверами LAN_x64.
Размещаем среду предустановки на TFTP
Корень TFTP сервера на данный момент выглядит так (конкретно, это состояние на момент завершения предыдущей статьи).
Расположим в папке Image образы boot_x86.wim и boot_x64.wim (то есть это обычные boot.wim, взятые из папки sources, скопированные и переименнованные). Данные образы, это не измененные, образы сред предустановок соответствующих дистрибутивов ОС Windows.
Общая файловая структура TFTP на следующем скриншоте.
Интеграция сетевых драйверов в среду предустановки
Перед интеграцией драйверов в образ boot_x86.wim, его предварительно необходимо смонтировать. Делается это с помощью команд dism.exe /get-imageinfo /imagefile:D:\TFTP\Image\boot_x86.wim (получение информации о указном *.wim образе, чтобы определить индекс монтируемого содержимого)
и dism.exe /mount-wim /wimfile:D:\TFTP\Image\boot_x86.wim /index:2 /mountdir:E:\mnt (монтирование указанного *.wim образа к указанному каталогу).
После того как образ смонтиорован, можно приступить к интеграции в него ранее подготовленных драйверов. Выполним для этого команду dism.exe /image:E:\mnt /Add-Driver /Driver:C:\Users\x7z3\Desktop\SDI\drivers\LAN_x86 /Recurse.
Этим действием мы интегрировали сетевые драйвера из директории LAN_x86 в образ boot_x86.wim. Для образа boot_x64.wim все будет идентично, разница будет лишь в имени подключаемого файла и директории с драйверами.
Интеграция скрипта запуска установки ОС
Скрипт установки — это обычный командный файл с расширением *.cmd. Его задача, подключить сетевой диск с установочными файлами и запустить установщик ОС.
Для того чтобы организовать запуск скрипта, во время загрузки среды предустановки, нам потребуется создать файл winpeshl.ini (текстовый файл) в директории E:\mnt\Windows\System32 с следующим содержимым:
[LaunchApps]
init.cmd
Файл winpeshl.ini, является конфигурационным файлом для среды предустановки. Он позволяет задать программу(ы) выполняемые вместо стандартной оболочки. Подробнее о нем можно почитать тут.
Теперь создадим сам скрипт установки init.cmd (текстовый файл) в той же директории. Исходный текст init.cmd:
:::::::::::::::::::::::::::::::::::::::
:: INIT SCRIPT ::
:::::::::::::::::::::::::::::::::::::::
@echo off
title INIT NETWORK SETUP
color 37
cls
:: INIT Variables
:: Тут мы указываем сетевой путь до папки содержащей установочные файлы
set netpath=\\192.168.0.254\share\Setup_Win10x86
:: Имя пользователя для подключения к вышеуказанной сетевой папке
set user=guest
:: Пароль от указанной выше учетной записи
set password=guest
:: WPEINIT start
echo Start wpeinit.exe...
wpeinit
echo.
:: Mount Net Drive
echo Mount net drive N:\ ...
net use N: %netpath% /user:%user% %password%
IF %ERRORLEVEL% GEQ 1 goto NET_ERROR
echo Drive mounted!
echo.
:: Run Windows Setup
color 27
echo Starting Windwos Setup...
pushd N:\sources
setup.exe
goto SUCCESS
:NET_ERROR
color 47
cls
echo ERROR: Cant mount net drive. Check network status!
echo Check network connections, or access to network share folder...
echo.
cmd
:SUCCESS
:: Тут, можно добавить команды которые выполнятся после первого этапа установки,
:: то есть в момент, когда установщик скажет что, будет выполнена перезагрузка.
::
:: К примеру, вы можете организовать копирование необходимых установочных программ с
:: сетевого ресурса в свежераспакованную систему...
Учитывайте что установочный скрипт для x64 системы, будет содержать немного другой путь до установочных файлов.
Все необходимое сделано. Осталось только отключить подключенный образ boot_x86.wim с сохранением выполненных изменений. Делается это командой dism.exe /unmount-wim /mountdir:E:\mnt /commit. Предварительно, ОБЯЗАТЕЛЬНО закройте открытые папки или файлы в смонтированном каталоге.
Все вышеописанное нужно будет проделать и для файла образа boot_x64.wim.
Настройка меню загрузчика
Подробно описывать создание меню я не буду. Данный процесс уже подробно рассматривался в этой статье. Приведу лишь скриншоты программы BOOTICE с настройками меню.
Параметры для загрузки boot_x86.wim.
Параметры для загрузки boot_x64.wim.
Проверка итогового результата
Теперь все готово. Осталось только проверить результат проделанной работы. Проверять будем как всегда в виртуальной машине VirtualBox.
Загруженное меню. В шапке видно что загрузчик загружен по сетию
Загрузка образа boot_x86.wim в оперативную память компьютера.
Выполнение интегрированного нами скрипта.
Уведомление скриптом об успешности подключения сетевого ресурса.
Запущенный скриптом установщик ОС Windows.
На этом скриншоте видно, что установка идет реально по сети.
Итог
Технология сетевой установки ОС проста и доступна. Минимум необходимых инструментов. Все что нужно, это установочный образ Windows 10 (нет необходимости скачивать WAIK или ADK). Все описанное выше будет работать для ОС Windows начиная с 7-ки и выше (7, 8.1, 10).
Надеюсь данный материал будет полезен для вас 😉.
Автоматическая установка Windows по локальной сети или настройка WDS (Windows Deployment Services — служб развертывания Windows )
В прошлом видео мы рассмотрели процесс создания образа с автоматической установкой Windows 10.
В данном видео рассмотрим процесс установки Windows 10 по локальной сети использую встроенные средства Windows Server, такие как WDS (Windows Deployment Services — служб развертывания Windows)
⇓ Запись видеоурока во ВКонтакте ⇓
⇓ Запись видеоурока на RuTuBe ⇓
⇓ Запись видеоурока на YouTuBe ⇓
План урока следующий:
— Установка роли WDS
— Настройка WDS
— и тестовая установка Windows по локальной сети
Требования для системы установки ОС по сети:
— Active Directory желательно
— DHCP обязательно
— DNS обязательно
— NTFS файловая система раздела, на котором хранятся образы для развертывания
В общем все, что мы настраивали в курсе «Установка и настройка Windows Server 2016». Получить доступ к курсу вы можете по ссылке в описании к данному видео!
Установка WDS
Первым делом необходимо эту роль установить (Управление \ Добавить роли и компоненты \ Далее \ Установка ролей или компонентов \ Далее \ Службы развертывания Windows \ Добавить компоненты \ Далее \ Далее \ Оставляем службы по умолчанию \ Далее \ Установить)
Настройка WDS
Перейдём к настройке Служб развертывания Windows (Диспетчер серверов \ WDS \ Server \ ПКМ \ Консоль управления службами развертывания Windows \ Серверы \ Server.office.loc \ ПКМ \ Настроить сервер \ Интеграция с доменными службами Active Directory \ Местоположение папки удаленной установки E:\RemoteInstall \ Если в вашей сети поднята роль DHCP на Windows Server, то оставляем обе галочки \ Отвечать всем клиентским компьютерам (известным и неизвестным) \ Далее \ Готово \ Перезагрузка)
Образы установки
Добавим образ, с которого будет устанавливаться операционная система (Службы развертывания Windows \ Server \ Образы установки \ ПКМ \ Добавить образ установки \ Создание группы образов с именем: Windows 10 \ Расположение файла, мы возьмем образ, который использовали для создания файла ответов \ E:\Windows_10\sources\install.wim \ Windows 10 Pro \ Далее \ Готово)
Аналогичным образом можно добавить сюда разные образы операционных систем, тогда у нас будет выбор, какой ОС устанавливать на конечной рабочей станции.
Добавление файла ответов
Добавим ранее созданный нами файл ответов, для автоматизации процесса установки (Службы развертывания Windows \ Server \ Образы установки \ Windows 10 \ Windows 10 Pro \ ПКМ \ Свойства \ Разрешить установку образа в автоматическом режиме \ Обзор, указываем файл ответов \ ОК \ ОК)
Образы загрузки
Добавим образ загрузки, именно он запускает весь процесс установки операционной системы (Службы развертывания Windows \ Server \ Образы загрузки \ ПКМ \ Добавить загрузочный образ \ Обзор: E:\Windows_10\sources\boot.wim \ Далее \ Далее \ Готово)
Установка Windows 10 по локальной сети
Сервер у нас подготовлен, так что перейдем непосредственно к процессу установки операционной системы Windows 10 по локальной сети.
Я все это дело буду выполнять так же в тестовой среде. В прошлом видео мы уже создавали виртуальную машину для тестов, осталось проверить настройки её сетевой карты, чтобы она также была подключена к той же сети, что и сервер (Виртуальная машина \ ПКМ \ Параметры \ Сетевой адаптер: Только для узла, как и серверная сетевая карты).
Запускаем виртуальную машину и нажимаем F2, чтобы попасть в BIOS виртуальной машины. Тут нам понадобится изменить порядок загрузки устройств (Boot \ Network boot form Intel E100e, как первое в приоритете загрузки \ Exit \ Exit Saving Change)
Запускаем виртуалку, когда появляется надпись Press F12, можем нажать на кнопку Pause, чтобы посмотреть информацию более подробно. В итоге, тут отображается, что данной машине был присвоен IP адрес и определенные сетевые настройки с нашего DHCP сервера. Именно поэтому в сети должен быть DHCP сервер, чтобы машина смогла получить доступ к сети.
Опять же, если вы не понимаете, что такое DHCP, то добро пожаловать в курс «Установка и настройка Windows Server»
Сообщение «Press F12 for network service boot» говорит о том, что нужно нажать F12, если вы хотите загрузиться через сеть.
Начинается загрузка нашего boot.wim образа загрузки, через который будет выполняться установка операционной системы (Выбираем язык \ Вводим данные для подключения к контроллеру домена \ office\администратор \ Выбираем образ, из тех, которые мы загрузили в WDS \ Настраиваем разделы для установки \ Далее \ Выполняется установка операционной системы)
Смотрите, даже если вы не вносили изменения в файл ответов, и он должен автоматически все выполнять, в том числе и разбиение диска на разделы и выбор раздела, куда устанавливать операционную систему, то служба WDS игнорирует эти настройки и в обязательном порядке требует ручного указания настроек, связанных с конфигурацией жесткого диска и разделов. И я считаю, что это правильно, дабы в автоматическом режиме не навредить конечному компьютеру.
Как вы видите, никаких дополнительных диалоговых окон у нас не появлялось, а значит файл ответов у нас тоже отработал корректно.
Проверим Имя компьютера и пользователя, чтобы убедиться, что они действительно были взяты из файла ответов.
Введение
Образы в WIM формате, подготовленные в системе MDT, компания Microsoft предлагает развертывать по сети с помощью WDS-сервера, либо интегрировать в SCCM.
SCCM стоит довольно дорого, а вот WDS-сервер бесплатен в случае, если вы являетесь счастливым обладателем лицензии на Windows Server 2008/2012. Но не всех устраивают возможности WDS-сервера.
Предлагаемый мной способ будет полезен тем:
- у кого нет лицензии на Windows Server, или все ресурсы на имеющихся серверах уже задействованы и нет возможности приобрести еще одну лицензию;
- кого не устраивает скорость загрузки Windows PE по протоколу TFTP, используемому WDS-сервером;
- кому необходимо совместить развертывание ОС Windows и Linux по сети на одном сервере.
Хочу предложить читателям решение на базе ОС Ubuntu Linux, с использованием syslinux и iPXE.
В дальнейшем будет подразумеваться использование ОС Ubuntu 14.04 LTS.
Упомянутые ниже службы не обязательно должны работать на одном и том же сервере.
Установка и настройка tftp-сервера
Для организации передачи данных по TFTP-протоколу будет использован сервер tftpd-hpa. Он обладает необходимыми возможностями, а также поддерживает remapping.
Установим соответсвующий пакет:
aptitude install tftpd-hpa
Настройки находятся в конфигурационном файле
/etc/default/tftpd-hpa
RUN_DAEMON="yes"
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/lib/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure --listen --verbose --verbosity 10 --map-file /etc/tftpd.remap --refuse blksize"
Также нам потребуется файл с правилами для remapping
/etc/tftpd.remap
rg \\ /
ri (.*)ÿ$ \1
ri (.*)M-\^\?$ \1
ri (pxelinux\.0).*$ \1
Первая строка переопределяет слэши для ОС Windows, последующие предупреждают возможные проблемы с загрузкой на некоторых сетевых адаптерах, когда клиент пытается запросить у tftp-сервера файл «pxelinux.0M-^» или «pxelinux.0ÿ» вместо «pxelinux.0».
Настройка http-сервера
Для чего вообще нам нужен http-сервер, ведь для загрузки WIM-образов по сети достаточно tftp-сервера?
Так получилось, что Trivial FTP хоть и обеспечивает базовые функции для передачи файлов по сети, но не может обеспечить высокую надежность и скорость передачи данных.
Как показывает практика, образы с Windows PE размером около 250МБ, скачиваются по сети 1Гбит с использованием http-протокола в несколько раз быстрее (5-10 секунд, против 30-60 секунд соответственно).
Также по протоколу http можно загружать preseed-файлы для установщика debian-installer.
В качестве http-сервера можно использовать apache, nginx или любой другой сервер который вам нравится. Каких-либо особенных настроек не требуется. Главное, чтоб перечисленные ниже файлы *.ipxe, *.wim и другие файлы, размещенные на http-сервере, были доступны для чтения.
Настройка dhcp-сервера
Согласно RFC1232 необходимо настроить опцию 66 TFTP server name, где указать IP-адрес вашего tftp-сервера, например 192.168.1.1; и опцию 67 Bootfile name, где указать имя файла для загрузки «pxelinux.0»;
Если вы используете, например isc-dhcp-server под управлением Ubuntu, то нужно будет добавить примерно такие настройки в файл
/etc/dhcp/dhcpd.conf
shared-network PXE-Netwotk {
subnet 192.168.1.0 netmask 255.255.255.0 {
# Общие настройки для подсети
range 192.168.1.2 192.168.1.254;
option routers 192.168.1.1;
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.1.1;
# Настройки опций для сетевой загрузки в подсети
filename "pxelinux.0";
next-server 192.168.1.1;
option root-path "192.168.1.1:/var/lib/tftpboot/"; # необязательный параметр
}
}
Установка и настройка загрузчика syslinux
Установка загрузчика
Нам потребуется syslinux версии 5.03 или выше.
Я бы рекомендовал собрать загрузчик из исходных кодов, ничего страшного и сложного в этом нет
Для сборки из исходников нужно установить make, gcc, nasm, uuid-dev, и выполнить команды:
# Скачаем архив с исходными кодами
wget https://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-6.03.zip
# распакуем его
unzip syslinux-6.03.zip -d syslinux-6.03
# Собственно сама сборка с помощью make
cd syslinux-6.03
make
# Скопируем полученные файлы в каталог tftp-сервера:
cd ..
cp syslinux-6.03/bios/memdisk/memdisk /var/lib/tftpboot/
find ./syslinux-6.03/bios/ -name "pxelinux.0"|xargs -I {} cp '{}' /var/lib/tftpboot/
find ./syslinux-6.03/bios/ -name "*.c32"|xargs -I {} cp '{}' /var/lib/tftpboot/
Настройка меню загрузчика
Создадим каталог для файлов меню syslinux:
mkdir -p /var/lib/tftpboot/pxelinux.cfg/
И создадим файл с меню по умолчанию
/var/lib/tftpboot/pxelinux.cfg/default
ui vesamenu.c32
PROMPT 0
menu background background.jpg
menu title PXE boot menu
# По умолчанию загружаемся с первого жесткого диска
LABEL bootlocal
menu label Boot from first HDD
kernel chain.c32
append hd0 0
# Таймаут для автоматической загрузки 12 секунд
timeout 120
TEXT HELP
The system will boot after the time is up
ENDTEXT
# Подменю для центрального офиса
LABEL Central Office ->
KERNEL vesamenu.c32
APPEND pxelinux.cfg/CentralOffice
# Подменю для региональных офисов
LABEL Regional Offices ->
# menu PASSWD $1$15opgKTx$dP/IaLNiCbfECiC2KPkDC0 # раскомментировать если требуется вход в подменю по паролю, пароль Qwerty, алгоритм MD5
KERNEL vesamenu.c32
APPEND pxelinux.cfg/RegionalOffices
А теперь создадим подменю непосредственно для загрузки ОС:
/var/lib/tftpboot/pxelinux.cfg/CentralOffice
PROMPT 0
UI vesamenu.c32
MENU BACKGROUND background.jpg
MENU TITLE Central Office
# Возврат в главное меню
LABEL <- Main Menu
KERNEL vesamenu.c32
APPEND pxelinux.cfg/default
# Загрузка через http
LABEL PE via http
KERNEL ipxe.lkrn
APPEND dhcp && chain http://192.168.2.1/winpe.ipxe
# Для сравнения загрузка через tftp
LABEL PE via tftp
KERNEL ipxe.lkrn
APPEND dhcp && chain tftp://192.168.2.1/winpe.ipxe
# Можно также загрузить debian-installer
LABEL Ubuntu
KERNEL ubuntu-installer/i386/linux
APPEND initrd=ubuntu-installer/i386/initrd.gz preseed/url=http://192.168.1.1/preseed/custom.seed debconf/priority=high auto-install/enable=true debian-installer/language=ru debian-installer/locale=ru_RU.UTF-8 debian-installer/country=RU ipv6.disable=1 netcfg/hostname=testname DEBCONF_DEBUG=5 --
, где winpe.ipxe — конфигурационный файл с настройками для ipxe, который мы разберем ниже, в соответствующем разделе.
Не стоит забывать, что tftp-сервер не умеет работать с символическими ссылками, поэтому нужно будет сделать отдельную копию файла winpe.ipxe в каталоге tftp-сервера, если захочется сравнить скорость загрузки по http и tftp.
Некоторые сетевые карты не успевают поднять link с первого раза, поэтому можно сделать вторую попытку загрузки в случае неудачи, с использованием оператора «||». Если после второй попытки нас снова постигнет неудача, то можно вывести статистику интерфейса и открыть командную строку для диагностики проблемы:
APPEND dhcp && chain http://192.168.2.1/winpe.ipxe || dhcp && chain http://192.168.2.1/winpe.ipxe || ifstat && shell
iPXE
Установка iPXE
iPXE я тоже предлагаю собирать из исходных кодов, к тому же это тоже очень просто:
git clone git://git.ipxe.org/ipxe.git
cd ipxe/src
make
cp bin/ipxe.lkrn /var/lib/tftpboot
Если какая-либо сетевая карта отказывается поднимать link с любой попытки, то скорее всего проблема в драйвере iPXE.
Особенно эта проблема касается новых сетевых карт от Intel. У меня возникли проблемы с картами i218lm и с i218v-2, при принудительно выставленной скорости 1Гбит на свиче.
Перед сборкой нужно поправить ipxe/src/drivers/net/intel.c: для i218lm и i218v-2 выставить флаг INTEL_NO_PHY_RST:
PCI_ROM ( 0x8086, 0x155a, "i218lm", "I218-LM", INTEL_NO_PHY_RST),
PCI_ROM ( 0x8086, 0x15a1, "i218v-2", "I218-V", INTEL_NO_PHY_RST ),
Установка wimboot
Для загрузки WIM-образов через iPXE потребуется утилита wimboot.
Установка этой утилиты также очень проста:
wget http://git.ipxe.org/releases/wimboot/wimboot-latest.zip
unzip wimboot-latest.zip
cp wimboot-2.5.1-signed/wimboot /var/lib/tftpboot/
Создание конфигурационных файлов .ipxe
Конфигурационные файлы .ipxe (расширение может быть любым, но так удобнее) содержат инструкции для ядра ipxe: что именно загружать дальше.
Мы будем загружать утилиту wimboot, и передадим ей в параметрах пути к файлу данных конфигурации загрузки BCD, файлу конфигурации RAM-диска boot.sdi и к образу boot.wim. Структуру каталогов сохранять не обязательно, wimboot сама позаботиться об этом. Все файлы можно сложить в один каталог.
winpe.ipxe
#!ipxe
kernel http://192.168.1.1/boot/wimboot
initrd http://192.168.1.1/boot/DeploymentShare/Boot/x86/Boot/bcd BCD
initrd http://192.168.1.1/boot/DeploymentShare/Boot/x86/Boot/boot.sdi boot.sdi
initrd http://192.168.1.1/boot/DeploymentShare/Boot/LiteTouchPE_x86.wim boot.wim
boot
В данном примере на http-сервере сделана символическая ссылка для 192.168.1.1/boot/DeploymentShare прямо на корень MDT DeploymentShare. Этот способ не подходит в качестве основного рабочего варианта. Т.к. если Вы вдруг соберете «кривой» wim-образ, то сразу же испортите загрузку по сети для тех, кто с этим работает. Но этот способ хорошо подходит для тестирования новых wim-образов.
Желающие могут заменить в .ipxe файле протокол http на tftp — тоже будет работать, но медленно.
Все. Теперь можно загружаться и ставить ОС.