Библиотека сайта rus-linux.net
Установка Windows 7 поверх PXE из Linux без использования WAIK
Оригинал: "Install Windows 7 over PXE from Linux without WAIK"Автор: Carl Thijssen
Перевод: Н.Ромоданов
Дата перевода: март 2014 г.
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.
/work/tftproot /work/tftproot/pxelinux.0 /work/tftproot/pxelinux.cfg/default /work/tftproot/pxeboot.com /work/tftproot/boot.sdi /work/tftproot/bootmgr.exe /work/tftproot/winpe.wim /work/tftproot/system1/bcd /work/tftproot/system1/wdsnbp.0 /work/tftproot/system2/bcd /work/tftproot/system2/wdsnbp.0 /work/sambashare /work/sambashare/win7 /work/sambashare/system1.xml /work/sambashare/system2.xml /work/bin /work/bin/bcdedit.pl /work/bin/wimextract /work/bin/wiminfo /work/bin/updatewim /work/bin/wimxmlinfo /work/bin/binlsvr.py /work/bin/binl /work/bin/getbcdlocation.sh /work/drivers /work/drivers/netamd.inf /work/drivers/pxntpci5.sys /work/wim/actionfile.txt /work/wim/install.cmd /work/wim/winpeshl.ini /work/conf/dhcpd.conf /work/conf/tftpd.conf /work/conf/smb.conf /work/log /work/log/tftpd.log /work/doc/default.css /work/doc/win7pxelinux1.html /work/doc/win7pxelinux2.html /work/doc/win7pxelinux3.html /work/doc/win7pxelinux4.html /work/doc/win7pxelinux5.html
1.3. Ссылки
Я нашел в сети интересную информацию, объединил ее и при помощи некоторых проб и ошибок придумал этот метод. Вот некоторые ссылки для получения дополнительной информации.
- Моя отправная точка на сайте savelono.com
- Сетевые драйверы VMWare для WinPE на сайте the-d-spot.org
- Справочник по автоматической установке на сайте Microsoft.com
- Получение IP-адреса сервера WDS из реестра WinPE
- Об использовании hivex для редактирования файлов BCD files на сайте rwmj.wordpress.com
- Интересная статья о DHCP и WDS на сайте nssadoc.blogspot.com
- Пакет RIS для linux на сайте oss.netfarm.it
- Пакет hivex на сайте libguestfs.org
- Пакет PXELINUX на сайте syslinux.zytor.com
Дайте мне знать, если вы найдете более интересные статьи! (пожалуйста, сделайте это в форуме на www.ultimatedeployment.org).
2. Конфигурирование и запуск сервисов
2.1 dhcp
Запустите сервер dhcp следующим образом
/work/init.d/dhcpd start
Файл dhcpd.conf должен выглядеть приблизительно следующим образом. Если захотите, вы можете внести изменения в ip-адреса, выделенные красным цветом:
log-facility local6; ddns-update-style ad-hoc; ddns-hostname = concat("station-",binary-to-ascii(10,8,"-",leased-address)); option host-name = config-option server.ddns-hostname; next-server 192.168.178.105 ; if substring ( option vendor-class-identifier, 0, 9) = "PXEClient" { filename "pxelinux.0" ; next-server 192.168.178.105 ; } subnet 192.168.178.0 netmask 255.255.255.0 { option routers 192.168.178.105; option domain-name-servers 192.168.178.105 ; range 192.168.178.150 192.168.178.200 ; max-lease-time 300; }
Файл pxelinux.0 является загрузочным файлом, который запускает весь процесс pxe. Когда клиент загружается, этот файл загружается первым и, в свою очередь, загружает конфигурационный файл pxelinux.cfg/default. Этот файл выглядит следующим образом:
default menu.c32 prompt 0 noescape 1 allowoptions 0 menu title Choose the system to install menu color tabmsg 37;40 #80ffffff #00000000 menu color hotsel 30;47 #40000000 #20ffffff menu color sel 30;47 #40000000 #20ffffff menu color scrollbar 30;47 #40000000 #20ffffff menu width 80 menu margin 22 menu passwordmargin 26 menu rows 6 menu tabmsgrow 15 menu cmdlinerow 15 menu endrow 24 menu passwordrow 12 menu timeoutrow 13 menu vshift 6 menu passprompt Enter Password: label LOCALBOOT menu label ^Boot local disk localboot 0 timeout 100 label system1 menu label system1 kernel system1/wdsnbp.0 label system2 menu label system2 kernel system2/wdsnbp.0
2.2 tftpd
Запустите демон tftp следующим образом
/work/init.d/tftpd start
Эта команда запускает tftpd со следующими параметрами:
/usr/sbin/in.tftpd -l -v -v -v -m /work/conf/tftpd.conf -s /work/tftproot
Конфигурационный файл /work/conf/tftpd.conf лишь заменяется обратный слэш на прямой слэш:
rg \\ /
2.3 samba
Запустите сервер samba следующим образом
/work/init.d/smb start
Убедитесь, что каталог /work/sambashare экспортируется как sambashare REMINST. Это важная часть файла smb.conf:
[REMINST] browsable = true read only = no guest ok = yes path = /work/sambashare
2.4 binl
Запустите сервер binl следующим образом
/work/init.d/binl start
Эта команда запустит сервис binl со следующими параметрами:
/work/bin/binlsrv.py -d -l /work/log/tftpd.log /work/conf/devlist.cache
Здесь журнальный файл важен, поскольку в дальнейшем он должен быть прочитан. Сервис binl определяет, какой загрузочный файл клиент скачал последним, для этого выполняется следующий скрипт. Скрипт ищет журнальный файл tftpd и возвращает место, где расположен файл bcd, который находится в том же самом каталоге, что и найденный файл wdsnbp.com. Это необходимо, т.к. мы хотим знать, какой вариант был выбран в меню загрузки PXE.
#!/bin/sh IPADDR=$1 MACADDR=$2 LOGFILE=/work/log/tftpd.log tail -1000 $LOGFILE | \ grep "RRQ from $IPADDR " | \ grep wdsnbp.0 | \ tail -1 | \ awk '{print $2 }' FS=\/
3. Подготовка загрузочных файлов Windows
3.1. Импорт загрузочного файла, используемого по умолчанию
Прежде всего нам нужно смонтировать установочный DVD. Я смею предположить, что он находится в плейере DVD, известным как /dev/cdrom. Вы должны смонтировать его следующим образом:
mount -t udf /dev/cdrom /work/sambashare/win7
Если у вас есть файл iso, то вы должны сделать что-то вроде следующего:
mount -o loop -t udf /work/windows7.iso /work/sambashare/win7
Как только вы это сделаете, файлы, расположенные на DVD (внутри образа), можно будет опубликовать с помощью samabashare. Затем нам нужно извлечь отдельные файлы из файла boot.wim, который находится на DVD в каталоге /sources. Они должны быть в самом конце каталога /work/tftproot, поэтому мы сначала выполняем следующее:
cd /work/tftproot /work/bin/wimextract /work/sambashare/win7/sources/boot.wim //windows/boot/pxe pxeboot.n12 mv pxeboot.n12 pxeboot.com /work/bin/wimextract /work/sambashare/win7/sources/boot.wim //windows/boot/pxe bootmgr.exe /work/bin/wimextract /work/sambashare/win7/sources/boot.wim //windows/boot/pxe wdsnbp.com cp /work/sambashare/win7/boot/boot.sdi /work/tftproot
Обратите внимание, что мы извлекли файл pxeboot.n12, а затем переименовали его в pxeboot.com!
3.2. Подготовка файла WIM
Что ж, теперь нам нужно создать файл winpe.wim. Мы делаем следующее:
3.2.1. Создаем файл winpehl.ini
В нем должно быть что-то вроде следующего:
[LaunchApps] %SYSTEMDRIVE%\sources\new\install.cmd %SYSTEMDRIVE%\windows\system32\cmd.exe
Убедитесь, что он имеет формат dos (а не формат unix)
unix2dos winpeshl.ini
3.2.2. Создаем скрипт install.cmd
Создайте скрипт install.cmd, который позаботится о установке сразу, как будет запущен Winpe:
3.2.3. Добавляем сетевые драйверы
Идем дальше. Сетевые драйверы являются трудной темой. Вам нужны будут сетевые драйверы, которые поставляются для вашей сетевой карты, их можно скачать с сайта поставщика сетевой карты, а некоторые из них могут быть уже в дистрибутиве Windows 7 WINPE на инсталляционном носителе. Я предполагаю, что вы будете с помощью PXE (загрузка по сети) загружать виртуальную машину vmware с сетевой картой AMD (которая во многих случаях, является сетевой картой, используемой по умолчанию для новой виртуальной машины).
Если вы загрузили виртуальную машину и, когда загрузка идет из сети, то сообщается о сетевой карте Intel E1000, вам придется остановить виртуальную машину, удалить следующие строки из файла .vmx и перезапустить виртуальную машину.
ethernet0.virtualDev = "e1000"
Если вы теперь запустите виртуальную машину, то вам будет сообщено, что есть сетевая карта AMD ... Так что теперь нам нужно драйвера windows PE для этой сетевой карты AMD. Есть станица, на которой вы можете узнать откуда их можно скачать:
cp netamd.inf /work/wim/ cp pcntpci5.sys /work/wim/
Для windows PE вы можете использовать драйвера windows XP. В общем, вам нужен файл .inf и файл .sys. Файл inf обычно содержит список файлов идентификаторов сетевое устройств и соответствующих им драйверов .sys). Если вы не знаете, сетевая с каким идентификатором используется в вашей системе, то просто скопируйте в каталог /work/wim несколько драйверов (файлы inf и sys).
3.2.4. Создаем файл actionfile
Ниже указаны действия, которые нам нужно выполнить, когда из файла boot.wim создается файл winpe.wim. Вы можете захотеть отредактировать список драйверов, которые указываются в файле /work/wim/actionfile.txt. Этот файл может выглядеть следующим образом:
rename //setup.exe setup.new rename //sources/setup.exe setup.new add //windows/system32 winpeshl.ini mkdir //sources new add //sources/new netamd.inf add //sources/new pcntpci5.sys add //srouces/new install.cmd
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, которые я использую, находятся в этом пакете.
cd /work/rpm rpm -ivh hivex*
Возможно, что для вашего любимого дистрибутива Linux вам потребуются другие пакеты с дистрибутивами. Нам нужны эти инструментальные средства для того, чтобы иметь возможность отредактировать файлы windows BCD (Boot Cofiguration Data — конфигурационные данные для загрузки). Теперь мы выполняем три операции для обеих систем, которые мы хотим установить дистанционно:
- Копируем данные Boot Cofiguration Data с установочного DVD в загрузочный каталог систем pxe
- Изменяем их для того, чтобы получить PXE BCD
- Копирует в этот каталог программу сетевой загрузки сервиса развертывания Windows (wdsnbp.com) и также и переименовываем ее в wdsnbp.0
cp /work/sambashare/win7/boot/bcd /work/tftproot/system1 /work/bin/bcdedit.pl /work/tftproot/system1/bcd /winpe.wim /boot.sdi INFO=10.0.0.1:system1 cp /work/tftproot/wdsnbp.com /work/tftproot/system1/wdsnbp.0 cp /work/sambashare/win7/boot/bcd /work/tftproot/system2 /work/bin/bcdedit.pl /work/tftproot/system2/bcd /winpe.wim /boot.sdi INFO=10.0.0.1:system2 cp /work/tftproot/wdsnbp.com /work/tftproot/system2/wdsnbp.0
Вы можете легко выполнить эти операции для более, чем двух систем ...
4. Подготовка файлов автоматической установки
4.1. Поддерживаемый язык
Сначала узнаем, какие языки поддерживаются на данном установочном носителе.
cat /work/sambashare/win7/sources/lang.ini
Вы должны найти что-то вроде следующего
[Available UI Languages]
en-US = 3
[Fallback Languages]
en-US = en-us
По-видимому, на этом DVD есть язык en-US (и еще en-us).
4.2. Определение версии ОС
Теперь нам нужно проверить, какая версия поддерживается установочным DVD
cat /work/sambashare/win7/sources/ei.cfg
Вы должны получить нечто вроде следующего:
[EditionID] Ultimate [Channel] OEM [VL] 0
Так что это Windows 7 Ultimate OEM DVD с лицензией (non Volume). Нам нужна эта информация для того, чтобы иметь возможность выбрать образ в следующем разделе:
4.3. Выбор образа подходящего инсталлятора
Сначала мы сделаем дамп информации XML файла install.wim:
/work/bin/wimxmlinfo /work/sambashare/win7/install.wim | sed 's/\(<\/[A-Z]*>\)/\1\n/g' | sed 's/>\n
Вы должны получить приблизительно следующее:
<WIM>
<TOTALBYTES>2073978321</TOTALBYTES>
<IMAGE INDEX="1">
<DIRCOUNT>9350</DIRCOUNT>
<FILECOUNT>46415</FILECOUNT>
<TOTALBYTES>7661093433</TOTALBYTES>
<CREATIONTIME>
<HIGHPART>0x01CA0443</HIGHPART>
<LOWPART>0x6568BDF8</LOWPART>
</CREATIONTIME>
<LASTMODIFICATIONTIME>
<HIGHPART>0x01CA0463</HIGHPART>
<LOWPART>0x5D745FDC</LOWPART>
</LASTMODIFICATIONTIME>
<WINDOWS>
<ARCH>0</ARCH>
<PRODUCTNAME>Microsoft? Windows? Operating System</PRODUCTNAME>
<EDITIONID>Starter</EDITIONID>
<INSTALLATIONTYPE>Client</INSTALLATIONTYPE>
<HAL>acpiapic</HAL>
<PRODUCTTYPE>WinNT</PRODUCTTYPE>
<PRODUCTSUITE>Terminal Server</PRODUCTSUITE>
<LANGUAGES>
<LANGUAGE>nl-NL</LANGUAGE>
<DEFAULT>nl-NL</DEFAULT>
</LANGUAGES>
<VERSION>
<MAJOR>6</MAJOR>
<MINOR>1</MINOR>
<BUILD>7600</BUILD>
<SPBUILD>16385</SPBUILD>
<SPLEVEL>0</SPLEVEL>
</VERSION>
<SYSTEMROOT>WINDOWS</SYSTEMROOT>
</WINDOWS>
<NAME>Windows 7 STARTER</NAME>
<DESCRIPTION>Windows 7 STARTER</DESCRIPTION>
<FLAGS>Starter</FLAGS>
<HARDLINKBYTES>2918646231</HARDLINKBYTES>
<DISPLAYNAME>Windows 7 Starter</DISPLAYNAME>
<DISPLAYDESCRIPTION>Windows 7 Starter</DISPLAYDESCRIPTION>
</IMAGE>
<IMAGE INDEX="2">
<DIRCOUNT>9359</DIRCOUNT>
<FILECOUNT>46487</FILECOUNT>
<TOTALBYTES>7681290464</TOTALBYTES>
<CREATIONTIME>
<HIGHPART>0x01CA0443</HIGHPART>
<LOWPART>0x6568BDF8</LOWPART>
</CREATIONTIME>
<LASTMODIFICATIONTIME>
<HIGHPART>0x01CA0463</HIGHPART>
<LOWPART>0x7466EEDC</LOWPART>
</LASTMODIFICATIONTIME>
<WINDOWS>
<ARCH>0</ARCH>
<PRODUCTNAME>Microsoft? Windows? Operating System</PRODUCTNAME>
<EDITIONID>HomeBasic</EDITIONID>
<INSTALLATIONTYPE>Client</INSTALLATIONTYPE>
<HAL>acpiapic</HAL>
<PRODUCTTYPE>WinNT</PRODUCTTYPE>
<PRODUCTSUITE>Terminal Server</PRODUCTSUITE>
<LANGUAGES>
<LANGUAGE>nl-NL</LANGUAGE>
<DEFAULT>nl-NL</DEFAULT>
</LANGUAGES>
<VERSION>
<MAJOR>6</MAJOR>
<MINOR>1</MINOR>
<BUILD>7600</BUILD>
<SPBUILD>16385</SPBUILD>
<SPLEVEL>0</SPLEVEL>
</VERSION>
<SYSTEMROOT>WINDOWS</SYSTEMROOT>
</WINDOWS>
<NAME>Windows 7 HOMEBASIC</NAME>
<DESCRIPTION>Windows 7 HOMEBASIC</DESCRIPTION>
<FLAGS>HomeBasic</FLAGS>
<HARDLINKBYTES>2933760608</HARDLINKBYTES>
<DISPLAYNAME>Windows 7 Home Basic</DISPLAYNAME>
<DISPLAYDESCRIPTION>Windows 7 Home Basic</DISPLAYDESCRIPTION>
</IMAGE>
<IMAGE INDEX="3">
<DIRCOUNT>9576</DIRCOUNT>
<FILECOUNT>47496</FILECOUNT>
<TOTALBYTES>8123123919</TOTALBYTES>
<CREATIONTIME>
<HIGHPART>0x01CA0443</HIGHPART>
<LOWPART>0x6568BDF8</LOWPART>
</CREATIONTIME>
<LASTMODIFICATIONTIME>
<HIGHPART>0x01CA0463</HIGHPART>
<LOWPART>0x8F7022C4</LOWPART>
</LASTMODIFICATIONTIME>
<WINDOWS>
<ARCH>0</ARCH>
<PRODUCTNAME>Microsoft? Windows? Operating System</PRODUCTNAME>
<EDITIONID>HomePremium</EDITIONID>
<INSTALLATIONTYPE>Client</INSTALLATIONTYPE>
<HAL>acpiapic</HAL>
<PRODUCTTYPE>WinNT</PRODUCTTYPE>
<PRODUCTSUITE>Terminal Server</PRODUCTSUITE>
<LANGUAGES>
<LANGUAGE>nl-NL</LANGUAGE>
<DEFAULT>nl-NL</DEFAULT>
</LANGUAGES>
<VERSION>
<MAJOR>6</MAJOR>
<MINOR>1</MINOR>
<BUILD>7600</BUILD>
<SPBUILD>16385</SPBUILD>
<SPLEVEL>0</SPLEVEL>
</VERSION>
<SYSTEMROOT>WINDOWS</SYSTEMROOT>
</WINDOWS>
<NAME>Windows 7 HOMEPREMIUM</NAME>
<DESCRIPTION>Windows 7 HOMEPREMIUM</DESCRIPTION>
<FLAGS>HomePremium</FLAGS>
<HARDLINKBYTES>3313218351</HARDLINKBYTES>
<DISPLAYNAME>Windows 7 Home Premium</DISPLAYNAME>
<DISPLAYDESCRIPTION>Windows 7 Home Premium</DISPLAYDESCRIPTION>
</IMAGE>
<IMAGE INDEX="4">
<DIRCOUNT>9632</DIRCOUNT>
<FILECOUNT>47924</FILECOUNT>
<TOTALBYTES>8004750393</TOTALBYTES>
<CREATIONTIME>
<HIGHPART>0x01CA0443</HIGHPART>
<LOWPART>0x6568BDF8</LOWPART>
</CREATIONTIME>
<LASTMODIFICATIONTIME>
<HIGHPART>0x01CA0463</HIGHPART>
<LOWPART>0x9DC7BC24</LOWPART>
</LASTMODIFICATIONTIME>
<WINDOWS>
<ARCH>0</ARCH>
<PRODUCTNAME>Microsoft? Windows? Operating System</PRODUCTNAME>
<EDITIONID>Professional</EDITIONID>
<INSTALLATIONTYPE>Client</INSTALLATIONTYPE>
<HAL>acpiapic</HAL>
<PRODUCTTYPE>WinNT</PRODUCTTYPE>
<PRODUCTSUITE>Terminal Server</PRODUCTSUITE>
<LANGUAGES>
<LANGUAGE>nl-NL</LANGUAGE>
<DEFAULT>nl-NL</DEFAULT>
</LANGUAGES>
<VERSION>
<MAJOR>6</MAJOR>
<MINOR>1</MINOR>
<BUILD>7600</BUILD>
<SPBUILD>16385</SPBUILD>
<SPLEVEL>0</SPLEVEL>
</VERSION>
<SYSTEMROOT>WINDOWS</SYSTEMROOT>
</WINDOWS>
<NAME>Windows 7 PROFESSIONAL</NAME>
<DESCRIPTION>Windows 7 PROFESSIONAL</DESCRIPTION>
<FLAGS>Professional</FLAGS>
<HARDLINKBYTES>3179671026</HARDLINKBYTES>
<DISPLAYNAME>Windows 7 Professional</DISPLAYNAME>
<DISPLAYDESCRIPTION>Windows 7 Professional</DISPLAYDESCRIPTION>
</IMAGE>
<IMAGE INDEX="5">
<DIRCOUNT>9662</DIRCOUNT>
<FILECOUNT>48073</FILECOUNT>
<TOTALBYTES>8162882068</TOTALBYTES>
<CREATIONTIME>
<HIGHPART>0x01CA0443</HIGHPART>
<LOWPART>0x6568BDF8</LOWPART>
</CREATIONTIME>
<LASTMODIFICATIONTIME>
<HIGHPART>0x01CA0463</HIGHPART>
<LOWPART>0xACBCB034</LOWPART>
</LASTMODIFICATIONTIME>
<WINDOWS>
<ARCH>0</ARCH>
<PRODUCTNAME>Microsoft? Windows? Operating System</PRODUCTNAME>
<EDITIONID>Ultimate</EDITIONID>
<INSTALLATIONTYPE>Client</INSTALLATIONTYPE>
<HAL>acpiapic</HAL>
<PRODUCTTYPE>WinNT</PRODUCTTYPE>
<PRODUCTSUITE>Terminal Server</PRODUCTSUITE>
<LANGUAGES>
<LANGUAGE>nl-NL</LANGUAGE>
<DEFAULT>nl-NL</DEFAULT>
</LANGUAGES>
<VERSION>
<MAJOR>6</MAJOR>
<MINOR>1</MINOR>
<BUILD>7600</BUILD>
<SPBUILD>16385</SPBUILD>
<SPLEVEL>0</SPLEVEL>
</VERSION>
<SYSTEMROOT>WINDOWS</SYSTEMROOT>
</WINDOWS>
<NAME>Windows 7 ULTIMATE</NAME>
<DESCRIPTION>Windows 7 ULTIMATE</DESCRIPTION>
<FLAGS>Ultimate</FLAGS>
<HARDLINKBYTES>3336944182</HARDLINKBYTES>
<DISPLAYNAME>Windows 7 Ultimate</DISPLAYNAME>
<DISPLAYDESCRIPTION>Windows 7 Ultimate</DISPLAYDESCRIPTION>
</IMAGE>
</WIM>
Поскольку мы знаем с каким языком и какой версией windows 7 мы имеем дело, мы можем отредактировать файлы автоматической установки. Я выделил третий образ, поскольку это версия Ultimate Edition, которую мы нашли в предыдущем разделе. Это Architecture 0, что означает - x86.
4.4. Создаем/редактируем файлы автоматической установки
vi /work/sambashare/system1.xml vi /work/sambashare/system2.xml
Файл автоматической установки может выглядеть, например, следующим образом (вероятно, вы захотите изменить значения, выделенные красным цветом):
Итак, как только вы это сделаете, вы должны быть в состоянии загрузить (загрузка pxe) новую систему, и вы должны иметь возможность выбирать из двух систем, которые вы настроили для автоматического развертывания. Если этого сделать не удастся, то, пожалуйста, перейдите к следующему разделу «Решение возникших проблем» и поделитесь своим опытом на форуме на сайте ultimatedeployment.org.
5. Решение возникших проблем
Процесс загрузки
Ниже приведен упрощенный обзор процесса загрузки, через который проходят клиенты PXE, когда используется этот метод.
- C обозначает клиентскую систему (система, которая должна быть развернута)
- S обозначает сервер (систему, на которой находятся конфигурационные файлы и на которой запущены сервисы, позволяющие установить клиентскую систему)
C->S запрашивает по DHCP адрес IP S->C Запрос адреса IP подтверждается и клиенту предоставляется (свободный) адрес ip C->S запрашивает по DHCP загрузочный сервер/файл S->C DHCP предоставляет загрузочный сервер/файл SERVER:/boot/myserver/wdsnbp.0 C->S запрашивает по TFTP загрузочный файл /boot/myserver/wdsnbp.0 S->C предоставляет по TFTP файл /boot/myserver/wdsnbp.0 C->S делает запрос сервису BINL(где можно найти файл BCD?)
Сервер ищет в файле находит в tftpd.log, откуда клиент загрузил свой файл wdsnbp и предполагает, что файл BCD находится в том же самом каталоге.
S->C делает запрос сервису BINL о файлах /boot/pxeboot.com и /boot/myserver/bcd C->S предоставляет по TFTP файл /boot/pxeboot.com S->C предоставляет по TFTP файл /boot/pxeboot.com C->S запрашивает по TFTP файл /boot/mysystem/bcd S->C предоставляет по TFTP файл /boot/mysystem/bcd
Клиент читает файл BCD и определяет, откуда нужно скачивать файлы boot.sdi и winpe.wim
C->S запрашивает по TFTP файл /boot/boot.sdi S->C предоставляет по TFTP файл /boot/boot.sdi C->S запрашивает по TFTP файл /boot/winpe.wim S->C предоставляет по TFTP файл /boot/winpe.wim
Затем клиент загружается в Windows PE. Когда это будет сделано, то от нас потребуется подготовить следующее:
- Найти в реестре адрес IP сервера загрузки
- Найти в реестре конкретные данные о загрузке
- Загрузить сетевые драйверы и запустить сервис сети
- Переместить файлы setup.exe и sources\setup.exe на прежнее место
- Подключиться через Samba к серверу загрузки
- Разбить диск на разделы с помощью файла diskpart, который можно найти через samba на сервере загрузки
- Переместить файлы setup.exe и sources\setup.exe на прежнее место
- Удалить из реестра ответ PXE binl для того, чтобы предотвратить установку WDS вместо обычной установки
- Запустить setup.exe с файлом автоматической установки, который можно найти на сервере загрузки
Журнальные файлы
Когда возникают проблемы, то, очевидно, что нужно заглянуть в следующие журнальные файлы:
- журнальный файл tftpd (/work/log/tftpd.log)
- журнальный файл dhcpd (/var/log/messages)
- журнальный файл binl (/work/log/binl.log)
Далее ...
Если я найду дополнительную информацию, то я ее добавлю.