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 следующим образом

Читайте также:  Экран загрузки windows 10 разрешение

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

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

2.3 samba

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

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

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

Читайте также:  Тип раздела для установки windows

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

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

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 с файлом автоматической установки, который можно найти на сервере загрузки
Читайте также:  Windows forms app что это

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

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

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

Источник

Установка Windows 10 через PXE посредством Autounattend

В дополнении к уже опубликованным заметкам не хватает разбора шагов, как же все таки развернуть образ Windows 10 по сети через PXE (Ubuntu 18.04 Server amd64) с применением файла ответов. В моей локальной сети уже функционирует для быстрого разворачивания сервис PXE , постепенно какие проблемы возникают они находят свое отражение в заметках и по мере моего настроения я публикую их. Заметка опирается:

  • Mikrotik (выступает, как шлюз между локальной сетью и интернетом)
  • Хранилище: HP MicroServer Gen8 (ESXi 6.0) соединено через ethernet gigabyte соединение на его основе имеются виртуальные машины, одна из них:
  • srv-pxe:PXE + NFS ( for Ubuntu,Debian и т.д.) + SMB ( for Windows ) + Apt-cacher-ng ( for deb package )
  • и стенд для тестирования разворачивания образа по сети на базе: Qemu+KVM (Ubuntu 18.04 Server amd64):tips_ubuntu_18_04_kvm_qemu_v1.odt Данная система (мой тестовый полигон) у меня собрана система исключительно для отладки в противовес ранее используемому Virtualbox которую я применял в повседневности на домашне/рабочем ноутбуке Lenovo E555
  • Материнская плата: Материнская плата GIGABYTE GA-970A-DS3P, SocketAM3+, AMD 970, ATX, Ret
  • Процессор: Процессор AMD FX 6300, SocketAM3+ OEM [fd6300wmw6khk]
  • Кулер: Устройство охлаждения(кулер) DEEPCOOL GAMMA ARCHER PRO, 120мм, Ret
  • Видеокарта: Видеокарта PALIT nVidia GeForce GTX 1080 , PA-GTX1080 GameRock Premium 8G, 8Гб, GDDR5X, Ret
  • RAM: 12Gb
  • Корпус: Сделан риг, так что с охлаждение проблем нет.

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

Шаг №1: Загрузочный файл предустановки Windows 10 полученный опираясь на опубликованную заметку кладу по пути на PXE сервисе: /media/pxeboot/windows/windows10/x64/winpe_amd64.iso

$ ls -lh /media/pxeboot/windows/windows10/x64/

-rw-r—r— 1 nobody nogroup 171M Jan 1 16:01 winpe_amd64.iso

Шаг №2: После на PXE сервисе создаю структуру каталогов где будет находится распакованный iso образ с определенным install.wim необходимой редакции для установки:

$ sudo mkdir -p /windows/windows10/

Из заметки: tips_windows_10_iso_file_answered_v1.odt созданный образ копирую на PXE сервис в каталог: /windows/windows10/x64

$ scp Documents/Win10_Pro_x64.iso ekzorchik@172.40.40.8:/home/ekzorchik

$ sudo mount -o loop Win10_Pro_x64.iso /mnt

mount: /mnt: WARNING: device write-protected, mounted read-only.

$ sudo cp -fr /mnt/* /windows/windows10/x64/

Шаг №3: Проверяю что в каталоге где распакован образ находится мой собственный файл ответов Autounattend.xml

Шаг №4: Создаю/Добавляю к уже существующему PXE меню установки:

$ sudo nano /media/pxeboot/pxelinux.cfg/default

LABEL Install Windows 10 Pro SP1 x64

Шаг №5: Поправляю права доступа для PXE

$ sudo chown -R nobody:nogroup /media/pxeboot/

$ sudo chown -R nobody:nogroup /windows/

Шаг №6: Создаю на своем полигоне тестовую виртуальную машину и указываю что загрузка должна происходить по сети с моего опубликованного PXE сервера на домашнем роутере Mikrotik. (Как это сделать, см. предыдущие заметки касательно настройки PXE). Диск у VM — это SSD накопитель KINGSTON A400 SA400S37/480G 480Гб, 2.5″, SATA III

выбираю в своем PXE меню: Install Windows 10 Pro SP1 x64 и нажимаю клавишу Enter

Загружается среда предустановки wpeinit , далее по аналогии как устанавливал Windows 7 x64 через файл ответов подключаюсь к SAMBA сервису:

net use M: \\172.40.40.8\install\windows10\x64

cd /d M:\

setup.exe /unattend:Autounattend.xml

И мастер инсталляции Windows 10 Pro x64 успешно запускается и применяет к установке подмонтированный файл ответов. По итогу система установилась с помощью моего файла ответов. Работает. На этом я прощаюсь, с уважением, автор блога Олло Александр aka ekzorchik.

Источник

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