Pxe windows from linux

Установка Windows 7 поверх PXE из Linux без использования WAIK

1. Обзор

1.1. Введение

В статье приводится описание, как из Linux по сети (PXE) развернуть для работы систему Windows 7. Не нужно пользоваться «рабочим компьютером» с установленным пакетом WAIK (Windows Automated Installation Kit — пакет автоматической установки Windows), нужна лишь система Linux. Я использую 32-битный инсталлятор Centos 5.3, но если вы разбираетесь в том, что делаете, то я уверен, что вы сможете выполнить эту работу на том варианте Linux, который вы лично предпочитаете использовать. Для этого вам нужно следующее:

  • сервер tftp
  • сервер dhcp
  • сервер samba
  • пакет ris для linux
  • PXELinux
  • hivex
  • мой скрипт (wimlib/bcdedit.pl/getbcdlocation.sh)

Последние четыре пакета, объединенные вместе в один пакет, вы можете скачать с сайта www.ultimatedeployment.org. Скачайте пакет отсюда .

Все остальное либо есть в вашем дистрибутиве Linux, либо может быть достаточно просто установлено с помощью менеджера пакетов вашего дистрибутива Linux (um, apt-get и т.д.).

Загрузите пакет и распакуйте его корневой каталог системы. Будет создан каталог /work, в котором все будет происходить. В остальной части этого документа я предполагаю, что вы это уже сделали и что там же находятся скрипты и конфигурационные файлы. Конечно, вы всегда можете распаковать его в другое место, куда захотите .

Отказ от ответственности: Настоящий подход все еще находится в стадии разработки, и в нем могут быть (очевидные) ошибки. В действительности здесь описывается, как я развернул систему Windows 7 для работы в UDA. Это моя рабочая среда, поэтому дайте мне знать, если у вас есть исправления или другие советы и подсказки.

1.2. Что должны получить

Как только вы закончите подготавливать вашу файловую систему, она должна выглядеть следующим образом. Большинство файлов уже заранее подготовлены в архиве, но, конечно, не те, которые я не должен был самостоятельно распространять, например, двоичные файлы загрузки windows. В данном руководстве будет рассказано, откуда их получить или как их найти на вашем носителе с инсталлятором windows 7.

1.3. Ссылки

Я нашел в сети интересную информацию, объединил ее и при помощи некоторых проб и ошибок придумал этот метод. Вот некоторые ссылки для получения дополнительной информации.

Дайте мне знать, если вы найдете более интересные статьи! (пожалуйста, сделайте это в форуме на www.ultimatedeployment.org ).

2. Конфигурирование и запуск сервисов

2.1 dhcp

Запустите сервер dhcp следующим образом

Файл dhcpd.conf должен выглядеть приблизительно следующим образом. Если захотите, вы можете внести изменения в ip-адреса, выделенные красным цветом:

Файл pxelinux.0 является загрузочным файлом, который запускает весь процесс pxe. Когда клиент загружается, этот файл загружается первым и, в свою очередь, загружает конфигурационный файл pxelinux.cfg/default. Этот файл выглядит следующим образом:

2.2 tftpd

Запустите демон tftp следующим образом

Эта команда запускает tftpd со следующими параметрами:

Конфигурационный файл /work/conf/tftpd.conf лишь заменяется обратный слэш на прямой слэш:

2.3 samba

Запустите сервер samba следующим образом

Убедитесь, что каталог /work/sambashare экспортируется как sambashare REMINST. Это важная часть файла smb.conf:

Читайте также:  Linux mint смена языка системы

2.4 binl

Запустите сервер binl следующим образом

Эта команда запустит сервис binl со следующими параметрами:

Здесь журнальный файл важен, поскольку в дальнейшем он должен быть прочитан. Сервис binl определяет, какой загрузочный файл клиент скачал последним, для этого выполняется следующий скрипт. Скрипт ищет журнальный файл tftpd и возвращает место, где расположен файл bcd, который находится в том же самом каталоге, что и найденный файл wdsnbp.com. Это необходимо, т.к. мы хотим знать, какой вариант был выбран в меню загрузки PXE.

3. Подготовка загрузочных файлов Windows

3.1. Импорт загрузочного файла, используемого по умолчанию

Прежде всего нам нужно смонтировать установочный DVD. Я смею предположить, что он находится в плейере DVD, известным как /dev/cdrom. Вы должны смонтировать его следующим образом:

Если у вас есть файл iso, то вы должны сделать что-то вроде следующего:

Как только вы это сделаете, файлы, расположенные на DVD (внутри образа), можно будет опубликовать с помощью samabashare. Затем нам нужно извлечь отдельные файлы из файла boot.wim, который находится на DVD в каталоге /sources. Они должны быть в самом конце каталога /work/tftproot, поэтому мы сначала выполняем следующее:

Обратите внимание, что мы извлекли файл pxeboot.n12, а затем переименовали его в pxeboot.com!

3.2. Подготовка файла WIM

Что ж, теперь нам нужно создать файл winpe.wim. Мы делаем следующее:

3.2.1. Создаем файл winpehl.ini

В нем должно быть что-то вроде следующего:

Убедитесь, что он имеет формат dos (а не формат unix)

3.2.2. Создаем скрипт install.cmd

Создайте скрипт install.cmd, который позаботится о установке сразу, как будет запущен Winpe:

3.2.3. Добавляем сетевые драйверы

Идем дальше. Сетевые драйверы являются трудной темой. Вам нужны будут сетевые драйверы, которые поставляются для вашей сетевой карты, их можно скачать с сайта поставщика сетевой карты, а некоторые из них могут быть уже в дистрибутиве Windows 7 WINPE на инсталляционном носителе. Я предполагаю, что вы будете с помощью PXE (загрузка по сети) загружать виртуальную машину vmware с сетевой картой AMD (которая во многих случаях, является сетевой картой, используемой по умолчанию для новой виртуальной машины).

Если вы загрузили виртуальную машину и, когда загрузка идет из сети, то сообщается о сетевой карте Intel E1000, вам придется остановить виртуальную машину, удалить следующие строки из файла .vmx и перезапустить виртуальную машину.

Если вы теперь запустите виртуальную машину, то вам будет сообщено, что есть сетевая карта AMD . Так что теперь нам нужно драйвера windows PE для этой сетевой карты AMD. Есть станица , на которой вы можете узнать откуда их можно скачать:

Для windows PE вы можете использовать драйвера windows XP. В общем, вам нужен файл .inf и файл .sys. Файл inf обычно содержит список файлов идентификаторов сетевое устройств и соответствующих им драйверов .sys). Если вы не знаете, сетевая с каким идентификатором используется в вашей системе, то просто скопируйте в каталог /work/wim несколько драйверов (файлы inf и sys).

3.2.4. Создаем файл actionfile

Ниже указаны действия, которые нам нужно выполнить, когда из файла boot.wim создается файл winpe.wim. Вы можете захотеть отредактировать список драйверов, которые указываются в файле /work/wim/actionfile.txt. Этот файл может выглядеть следующим образом:

3.2.5. Создаем файл WIM

Теперь мы можем создать файл winpe.wim

cd /work/wim /work/bin/updatewim /work/sambashare/win7/sources/boot.wim /work/tftproot/winpe.wim /work/wim/actionfile.txt

3.3. Создание загрузочных файлов для конкретных систем

Сначала нам нужно инструментальное средство hivex. Архивы RPM, которые я использую, находятся в этом пакете .

Возможно, что для вашего любимого дистрибутива Linux вам потребуются другие пакеты с дистрибутивами. Нам нужны эти инструментальные средства для того, чтобы иметь возможность отредактировать файлы windows BCD (Boot Cofiguration Data — конфигурационные данные для загрузки). Теперь мы выполняем три операции для обеих систем, которые мы хотим установить дистанционно:

  • Копируем данные Boot Cofiguration Data с установочного DVD в загрузочный каталог систем pxe
  • Изменяем их для того, чтобы получить PXE BCD
  • Копирует в этот каталог программу сетевой загрузки сервиса развертывания Windows (wdsnbp.com) и также и переименовываем ее в wdsnbp.0
Читайте также:  Как переустановить windows через bios без загрузочного диска

Вы можете легко выполнить эти операции для более, чем двух систем .

4. Подготовка файлов автоматической установки

4.1. Поддерживаемый язык

Сначала узнаем, какие языки поддерживаются на данном установочном носителе.

Вы должны найти что-то вроде следующего

По-видимому, на этом DVD есть язык en-US (и еще en-us).

4.2. Определение версии ОС

Теперь нам нужно проверить, какая версия поддерживается установочным DVD

Вы должны получить нечто вроде следующего:

Так что это Windows 7 Ultimate OEM DVD с лицензией (non Volume). Нам нужна эта информация для того, чтобы иметь возможность выбрать образ в следующем разделе:

4.3. Выбор образа подходящего инсталлятора

Сначала мы сделаем дамп информации XML файла install.wim:

Вы должны получить приблизительно следующее:

Поскольку мы знаем с каким языком и какой версией windows 7 мы имеем дело, мы можем отредактировать файлы автоматической установки. Я выделил третий образ, поскольку это версия Ultimate Edition, которую мы нашли в предыдущем разделе. Это Architecture 0, что означает — x86.

4.4. Создаем/редактируем файлы автоматической установки

Файл автоматической установки может выглядеть, например, следующим образом (вероятно, вы захотите изменить значения, выделенные красным цветом):

Итак, как только вы это сделаете, вы должны быть в состоянии загрузить (загрузка pxe) новую систему, и вы должны иметь возможность выбирать из двух систем, которые вы настроили для автоматического развертывания. Если этого сделать не удастся, то, пожалуйста, перейдите к следующему разделу «Решение возникших проблем» и поделитесь своим опытом на форуме на сайте ultimatedeployment.org .

5. Решение возникших проблем

Ниже приведен упрощенный обзор процесса загрузки, через который проходят клиенты PXE, когда используется этот метод.

  • C обозначает клиентскую систему (система, которая должна быть развернута)
  • S обозначает сервер (систему, на которой находятся конфигурационные файлы и на которой запущены сервисы, позволяющие установить клиентскую систему)

Сервер ищет в файле находит в tftpd.log, откуда клиент загрузил свой файл wdsnbp и предполагает, что файл BCD находится в том же самом каталоге.

Клиент читает файл BCD и определяет, откуда нужно скачивать файлы boot.sdi и winpe.wim

Затем клиент загружается в Windows PE. Когда это будет сделано, то от нас потребуется подготовить следующее:

  1. Найти в реестре адрес IP сервера загрузки
  2. Найти в реестре конкретные данные о загрузке
  3. Загрузить сетевые драйверы и запустить сервис сети
  4. Переместить файлы setup.exe и sources\setup.exe на прежнее место
  5. Подключиться через Samba к серверу загрузки
  6. Разбить диск на разделы с помощью файла diskpart, который можно найти через samba на сервере загрузки
  7. Переместить файлы setup.exe и sources\setup.exe на прежнее место
  8. Удалить из реестра ответ PXE binl для того, чтобы предотвратить установку WDS вместо обычной установки
  9. Запустить setup.exe с файлом автоматической установки, который можно найти на сервере загрузки

Когда возникают проблемы, то, очевидно, что нужно заглянуть в следующие журнальные файлы:

  • журнальный файл tftpd (/work/log/tftpd.log)
  • журнальный файл dhcpd (/var/log/messages)
  • журнальный файл binl (/work/log/binl.log)

Если я найду дополнительную информацию, то я ее добавлю.

Pxe windows from linux

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-00

Всем привет сегодня расскажу как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5. Представьте ситуацию что у вас ситуация что вам по сети нужно установить на голый сервер Windows, Linux, ESXI 5.5 или диагностические утилиты, прошивающие железо или позволяющие загрузить DOS, да еще и чтобы сервер был один, который мог все это делать так, что WDS нам не подходит в данном случае. Ниже будет расписано более нескольких десятков уроков, как все это чудо вам реализовать.

Читайте также:  Обновление windows 10 20h2 время установки

Так вот представим ситуацию пришли к вам новые сервера, вы в BIOS выставляете загрузку по PXE и у вас появляется меню в котором можно выбрать установку Windows, Debian, Ubuntu, VMware ESXI 5.5, CentOS, можете загрузить диагностические утилиты по тесту памяти или диски обновления драйверов для каждого вендора железа, неправда ли круто, давайте посмотрим как это сделать, в основу статьи была положена реализация ребят из ServerClub. В качестве плацдарма будет выступать Debian 8. Как установить Debian читайте тут. Вот как будет выглядеть ваше меню установки.

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-18

Нам потребуется установить данный список компонентов. Единственное у вас уже может быть установлен свой DHCP сервер и мы поговорим про его реализацию для данного сервера.

  • TFTP сервер
  • Samba
  • Syslinux
  • DHCP сервер
  • HTTP сервер
  • NFS сервер

Приступим первым мы рассмотрим как установить TFTP сервер в Debian. Вводим команду.

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-01

приведем конфиг /etc/default/tftpd-hpa к виду

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-02

и поместим в /etc/tftpd.remap вот такую строку. Создадим файл tftpd.remap командой

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-03

И вписываем в него вот такую строку.

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-04

Еще может быть проблема с ThinkPad X201i и в VirtualBox с tftp. Что на ThinkPad X201i, что в VirtualBox загрузка отваливалась с: PXE-E32: TFTP Open timeout

Судя по всему, PXE агенты умудрились быть не полностью совместимыми, полечилось добавлением «-r blksize»:
TFTP_OPTIONS=»—secure -l -v -r blksize»

Далее смотрим как установить Samba в Debian. Устанавливается командой:

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-05

В конец файла /etc/samba/smb.conf добавим информацию о папке, где будут лежать инсталляционные файлы Windows.

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-06

Прописываем в конфиге

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-07

Cоздаем папку для обозов, даем права и перезапускаем самбу

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-08

Далее рассмотрим как установить Syslinux в Debian. Скачиваем и заливаем в корень TFTP сервера все необходимое

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-10

# tar -xf syslinux-4.02.tar.gz
# cd syslinux-4.02/
# find ./ -name «memdisk» -type f|xargs -I <> cp ‘<>‘ /srv/tftp/
# find ./ -name «pxelinux.0″|xargs -I <> cp ‘<>‘ /srv/tftp/
# find ./ -name «*.c32″|xargs -I <> cp ‘<>‘ /srv/tftp/

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-11

Перейдем к настройке Syslinux

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-12

Далее создадим конфиг основного меню и внесем начальные настройки

LABEL bootlocal
menu label Boot from first HDD
kernel chain.c32
append hd0 0
timeout 120 # время в меню на выборе пункта загрузки, 120 это 12 секунд
TEXT HELP
The system will boot after the time is up
ENDTEXT

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-13

Во второй части как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5 мы разберем как установить DHCP сервер или настроить существующий DHCP server на Windows или Cisco.

Оцените статью