Универсальный сервер сетевой загрузки и установки. Начало.


Данная статья посвящена описанию настройки сервера сетевой загрузки и установки с его помощью разнообразных ОС.

Введение

          Каждому системному администратору, даже не большой локальной сети, приходиться устанавливать или обновлять разнообразные операционные системы. Довольно часто конфигурация оборудования настолько разнообразна, что ни о какой установке ОС с заранее подготовленного образа установленной и настроенной системы, речи быть не может. Для компаний занимающихся разработками клиент-серверного программного обеспечения работа с СУБД Sybase SQL Anywhere [14], Oracle Database [13] и т.д. список ОС для тестирования серверной части продукта может быть очень большим. Работы по созданию кроссплатформенных приложений тоже требуют наличия разнообразных платформ. В этот список могут входить как все версии серверных и десктопных ОС от Microsoft, так и целый зоопарк популярных операционных систем семейства Unix. Так же время от времени возникает необходимость решения таких «насущных» задач как восстановление систем, загрузчиков, удаление вирусов и т.д. и т.п. Для этого администратору удобно иметь под рукой как минимум два live-дистрибутива (Windows и Unix). Из всего выше сказанного следует, что администратору необходимы носители на которых располагаются все эти ОС, а это достаточно большое количество дисков. Тем более, что в разнообразные системы желательно интегрировать последние сервис-паки и обновления, которые выходят достаточно часто. Это приводит к тому, что носители периодически необходимо перезаписывать, что неэффективно с точки зрения затрат времени.
          Следует также отметить, что, из соображений безопасности и по причине экономии при комплектовании рабочих станций не всегда устанавливается DVD привод, а многие системы инсталлируются с DVD дисков. В такой ситуации облегчить жизнь системному администратору поможет сервер сетевой загрузки и установки операционных систем. В интернете существует огромное количество статей и сайтов посвященных этой теме. Но во многих случаях описание процесса установки уже не соответствует новым реалиям, так как написаны достаточно давно. После недавнего внедрения системы сетевой установки на новом сервере, возникло желание поделиться этим опытом.

 

Сетевая установка

           Существует два стандартных варианта решения этой задачи. Для установки операционных систем семейства Windows существуют всем известные WDS (Windows Deployment Services) и SMS (Microsoft System Management Server). У Unix-подобных систем с давних пор была возможность установки разнообразными методами, в том числе и по сети. Нет сомнения, что для развертывания и установки Windows систем WDS удобен и выполняет свои обязанности, но для инсталляции операционных систем семейства Unix он не очень подходит.

            Как известно, основным компонентом сервера сетевой установки является TFTP сервер. Его расположение (IP - адрес) указывается при помощи параметров DHCP. Если DHCP-сервер в вашей сети один, то перенаправлять сетевой загрузчик то на один TFTP сервер, то на другой для загрузки не получится. Поэтому нельзя объявить сразу два источника установки – такой сервер должен быть один. Существует решение для установки Linux систем с помощью Windows WDS - проект WDSLINUX [1]. Его основной минус заключается в том, что не все дистрибутивы поддерживают подключение по smb и http протоколу к серверу установки (для примера ]]>http://www.openfiler.com)]]>. Обычно такие дистрибутивы требуют подключения по nfs. Мне хотелось получить универсальную схему для установки разных версий Microsoft Windows и Linux, а так же сетевую загрузку разнообразных «спасательных» систем.

           Для начала немного теории. Принцип сетевой установки очень прост. При включении компьютера управление передается ПЗУ сетевой карты. Обычно используется среда PXE (Pre-Execution Environment). После распаковки в оперативную память, она активирует сетевую карту и начинает посылать широковещательный запрос в сеть для нахождения сервера DHCP. При ответе DHCP, PXE запрашивает у него IP адрес, который необходимо присвоить сетевой карте, маску сети, IP адрес сервера TFTP, имя файла для загрузки и т.д. Далее, если ответы на вопросы получены при помощи встроенного TFTP-клиента, PXE обращается к указанному серверу с запросом на получение указанного в параметрах файла. Если файл найден и получен то управление передается на него. Всеми последующими действиями будет руководить именно он.

         Широкое распространение получил проект Питера Анвина (Peter Anvin) под названием — Syslinux [2]. Он имеет простые конфигурационные файлы и включен в поставку многих Linux дистрибутивов. На официальном сайте дается такое определение этому пакету: «SYSLINUX является загрузчиком для операционных системы Linux, который работает на MS-DOS/Windows FAT файловых системах. Он предназначен для простой загрузки и установки Linux. А также для создания спасательных и других специальных загрузочных конфигураций». В этот пакет входит PXELINUX, который является производной от SYSLINUX и используется для загрузки Linux с сетевого сервера. PXELINUX соответствует Intel PXE (Pre-Execution Environment) спецификации. Основой PXELINUX является файл «pxelinux.0» — это и есть загрузчик. Этот файл располагается в корне TFTP сервера. Его конфигурационные файлы размещаются в папке «/tftpboot/pxelinux.cfg/». После запуска на клиентской машине «pxelinux.0» скачивает с сервера и отображает файл «message». Это простой текстовый файл, в котором описаны доступные варианты загрузки. Затем он скачивает свой конфигурационный файл («/tftpboot/pxelinux.cfg/default») и переходит в режим ожидания ввода имени предоставленных конфигураций. Имя раздела пишется после метки label. В ответ на ввод имени варианта установки «pxelinux.0» начинает выполнять действия описанные в нем. Для создания простого текстового меню файл «/tftpboot/pxelinux.cfg/default» может выглядеть так:

default pe
label xpinstall   # Установка Windows XP
  kernel startrom.0
label win7  # Установка Windows 7
  kernel sources/pxeboot.0

label pe   # Запуск Live-CD WindowsPE
  pxe keep
  kernel pe.0
  append initrd=winpe.wim ramdisk_size=262144
label suse112   # Установка openSuSe11.2
  kernel suse/suse112x32/linux
  append initrd=suse/suse112x32/initrd ramdisk_size=65536 install=nfs://192.168.1.7/  srv/tftpboot/suse/suse112x32/CD1/

 

       Так же возможно создание графического меню выбора операционных систем (рис.1-3).

Рисунок 1 Главное окно загрузочного меню

Главное окно загрузочного меню

Рисунок 2 Меню «спасательных» систем и утилит

Меню «спасательных» систем и утилит

Рисунок 3 Меню установки ОС

Меню установки ОС


 

Главная     Часть 2

 

]]>Google]]>

Теги: 

Универсальный сервер сетевой загрузки и установки. Файлы.

       В связи с тем, что было много вопросов и обращений по поводу  цикла статей посвященных установке и загрузке  по сети различных сборок Windows XP и WinPE, под общим названием   "Универсальный сервер сетевой загрузки и установки". Я решил: во первых выложить ВСЕ конфигурационные файлы используемые в статьях. Далее привожу список файлов и директорий (как они распологаются у меня) сервера установки. Во вторых попросить всех поделиться своими наработками в этом направлении с описанием "подводных камней" с которыми пришлось столкнуться на разных конфигурациях. И в третьих задать вопрос: "А оно было надо?".
Буду всем благодарен и признателен за ответы.

Содержание файлов в папках в корне tftpboot/

23.09.2010  12:22             4 952 bootfont.bin
23.09.2010  16:32           523 328 bootmgr.exe
27.01.2012  08:12        90 349 568 filesystem.squashfs
27.01.2012  08:12         9 765 456 initrd.img
23.01.2012  18:03           392 540 ipxe.lkn
27.09.2010  16:08            20 068 memdisk
23.09.2010  12:10            54 576 menu.c32
21.09.2012  12:53             3 545 new_winxp.sif
23.09.2010  12:24            47 564 ntdetect.com
13.12.2010  11:55           298 496 ntld1
13.12.2010  11:55           298 496 ntld2
24.01.2011  18:10           298 496 ntld7
29.06.2009  22:14           298 496 NTLDR
23.09.2010  11:51            14 646 pxelinux.0
21.09.2012  12:54                 0 tt.txt
27.01.2012  08:12         2 651 200 vmlinuz
13.12.2010  12:08               168 winn1.sif
13.12.2010  12:10               173 winn2.sif
24.01.2011  18:07               166 winn7.sif
21.09.2012  12:51             3 571 winxp.sif
23.09.2010  12:18           241 664 xpldr

Содержание файлов в папках (от корня tftpboot/) и архивах.

Содержание tftpboot/pe/

01.11.2010  13:56       125 984 891 boot.wim
21.09.2012  12:37                 0 dir.txt
12.09.2008  15:11         2 949 120 freedos.ima
21.06.2008  00:00           111 864 memtest
24.08.2009  12:28            22 454 startrom1.0
13.12.2010  11:51            22 454 startrom2.0
24.01.2011  18:06            22 454 startrom7.0
27.05.2012  22:14       306 489 726 wim_antivir.wim
27.05.2012  22:20       275 166 347 wim_hdd.wim
12.03.2010  16:07            22 454 xp0.0

Содержание tftpboot/pxelinux.cfg/

02.02.2012  14:12               660 default
26.11.2010  13:05               449 graphics.conf
15.02.2012  15:53             1я886 mini.menu
04.06.2012  10:17             3я851 setup.menu
18.03.2012  11:08             2я337 tools.menu

Содержание tftpboot/reminst/

26.01.2010  17:26                39 convert
21.09.2012  12:43                 0 tt.txt
12.03.2010  16:07            22 454 xp0.0
12.03.2010  16:08           241 664 xpldr

Содержание tftpboot/sources/

19.10.2011  14:28       268 609 178 boot.wim
11.06.2009  01:15            25 772 pxeboot.0

Содержание tftpboot/ris

21.09.2012  12:59                 0 binl.log
17.03.2007  06:38            12 308 binlsrv.c
23.09.2010  15:29            33 352 binlsrv.py
22.09.2006  09:19               318 contrib.txt
26.09.2007  11:49             1 614 decode.py
21.02.2012  15:37         1 353 523 devlist.cache
21.02.2012  15:37    <DIR>          drv
22.09.2006  09:19             1 162 fixloader.py
22.09.2006  09:19             1 409 fixup-repository.sh
26.09.2007  11:49             1 040 hexdump.py
26.09.2007  11:49             1 136 infdump.py
27.04.2008  06:35            11 086 infparser.py
17.03.2007  06:50             5 292 modldr.py
21.02.2012  15:37            11 198 nics.txt
27.04.2008  07:04    <DIR>          patches
21.09.2012  13:00                 0 tt.txt
26.09.2007  11:45             1 151 wspaste.py

menu7.zip  -  файлы для установки Windows7: install_menu.cmd, install_menu.cmd install_menu.lst, Wselect.exe

Все файлы есть в архивах с названиями папок, прикрепленных к сообщению.

Универсальный сервер сетевой загрузки и установки. Продолжение.

С разрешения редакции журнала "Системный администратор" публикую продолжение статьи.

Универсальный сервер сетевой загрузки и установки. Часть 2.

В первой части статьи [1] были рассмотрены принципы работы, создание и конфигурирование сервера для инсталляции различных операционных систем в сети. Подготовили и настроили для установки в обычном режиме (вопрос–ответ) два дистрибутива: Microsoft Windows XP и Microsoft Windows 7.

Рассмотрим процесс автоматизации установки операционных систем. Автоматическая установка Windows XP подробно описана не только в официальной документации Microsoft [2], но и в огромном количество how-to разбросанным по интернету [3]. Поскольку Windows XP снята с поддержки, то перейдем к обзору автоматической установки флагманской операционной системы компании Microsoft Windows 7.

Создание файла ответов

Автоматическая установка обеспечивается при наличии в дистрибутиве Microsoft Windows XP текстового файла настройки системы winnt.sif и диспетчер установки setupmgr.exe. В последующих версиях Windows (Microsoft Windows Vista и старше) эту роль играет файл ответов autounattend.xml. Как понятно из расширения он представляет собой простую XML-структуру (рис.1).

 

Рисунок 1. Структура файла autounattend.xml

Структура файла autounattend.xml

В нем можно указать используемые по умолчанию параметры Internet Explorer, настройку сети, принадлежность к домену и т.д. В связи с тем, что теперь в Windows используется модульная архитектура, появилась возможность тонкой настройки каждого компонента устанавливаемой системы, за счет вложенных элементов структуры XML.

Создать файл ответов можно в любом текстовом редактором, но лучше все действия производить при помощи диспетчера установки Windows (Windows Automated Installation Kit или сокращенно WAIK) [4]. Кроме того WAIK проверяет корректность указанных значений и имеет очень удобно реализованную систему помощи. Подробные сведения о том или ином параметре настройки можно узнать из контекстного меню его интерфейса. Вместе с этим продуктом поставляется набор документации, включающий руководство пользователя пакета автоматической установки Windows, а так же средства миграции пользовательской среды и другие документы.
Для просмотра этих документов после установки Windows AIK нажмите кнопку Пуск, последовательно выберите Все программы | Microsoft Windows AIK | Документация, а затем откройте необходимый файл справки. По умолчанию все документы находятся в папке %ProgramFiles%\Windows AIK\Docs\CHMs. Дополнительно в папке C:\Program Files\Windows AIK\Samples обслуживающего компьютера [1] можно найти образец файла ответов (Corp_autounattended_sample.xml).

Рассмотрим пример развертывания образа Windows 7 используя WAIK .Для этого выполним следующие действия:

  • На обслуживающем компьютере устанавливаем DVD-диск Microsoft Windows 7 необходимой для вас редакции («Professional», «Ultimate» и т.п. - далее DVD) исоздаем папку c:\windows7-x86, копируем в нее файл Install.wim из каталога DVD\Sources;
  • Запускаем диспетчер установки Windows: Пуск | Все программы | Microsoft Windows AIK | Диспетчер установки Windows.
  • В появившемся диалоговом окне Выбрать образ Windows переходим в папку c:\windows7-x86 и нажимаем кнопку Открыть.
  • Выбираем нужный образ Windows (c:\windows7-x86\Install.wim) и нажимаем на кнопку ОК. На предложение мастера создать файл каталога— отвечаем утвердительно.
  • В меню Файл выполняем команду Новый файл ответов.

Врезка.

В данном примере не импортируются специальные драйверы устройств, а так же дополнительные приложения и пакеты. Производиться первоначальное конфигурирование и форматирование дисков, установка редакции и локали системы, а так же ввод ключа продукта.

После выполненных действий в области Файл ответов появится пустой файл с названием Untitled. Далее, выполняем добавление компонентов системы настройки, для этого в панели Образ Windows разворачиваем вкладку Components.

Таблица 1. Компоненты необходимые для создания базового образа Windows

 

Компонент Этап настройки
Microsoft Windows Deployment Reseal oobeSystem
Microsoft-Windows-International-Core-WinPE\SetupUILanguage windowsPE

Microsoft-Windows-Setup\DiskConfiguration\Disk\CreatePartitions\CreatePartition

windows PE

Microsoft-Windows-Setup\DiskConfiguration\Disk\ModifyPartitions\ModifyPartition

windowsPE

Microsoft-Windows-Setup\ImageInstall\OSImage\InstallTo

windowsPE

Microsoft-Windows-Setup\UserData

windowsPE

Microsoft-Windows-Shell-Setup\OOBE

oobeSystem

На основе данных, приведенных в таблице 1 выбираем необходимый параметр нажимаем на нем правой кнопкой мыши. Система предложит выбрать этап настройки, указываем сверяясь с таблицей 1. Приведенные компоненты взяты из официальной документации и являются минимально необходимыми. Присмотревшись внимательнее к названиям в большинстве случаев можно определить за что отвечает каждый компонент. Вопрос который может возникнуть: «Что такое этап настройки?». Этап настройки это момент времени в которое будет производиться описанное действие. Этапы по своей сути очень похожи на «шаги инсталляции» Windows XP. Настройки автоматической установки могут быть применены в одном или нескольких этапах. Нам необходимо использовать этап под названием WindowsPE. Вот как он описан в документации: «...параметры могут включать определение образа ОС Windows для установки и настройки диска на компьютере назначения. На этом этапе настройки, образ Windows копируется на целевой целевой компьютер применяя конфигурацию указанную в WindowsPE.

Если ваша установка Windows PE требует загрузки драйверов для доступа к локальному жесткому диску или сети, используйте этот этап настройки для добавления драйверов в хранилище драйверов Windows PE.»

Все просто и понятно - это самый главный этап для сетевой установки.

Итак, закончив добавление, переходим к редактированию свойств компонентов (рис.2).

Рисунок 2. Редактирование свойств компонента

Редактирование свойств компонента

В области Параметры панели Свойства выбираем нужный параметр и в правом столбце вводим соответствующее значение, как указано в таблице 2. Названия и значения свойств интуитивно понятны и не должны вызвать вопросов.

Таблица 2. Параметры свойств компонента

 

Этап настройки

Компонент

Значение

WindowsPE

Microsoft-Windows-International-Core-WinPE

<язык ввода>

WindowsPE

Microsoft-Windows-International-Core-WinPE\SetupUILanguage

<язык интерфейса>

WindowsPE

Microsoft-Windows-Setup\DiskConfiguration

WillShowUI = OnError

WindowsPE

Microsoft-Windows-Setup\DiskConfiguration\Disk

DiskID = 0

WillWipeDisk = true

WindowsPE

Microsoft-Windows-Setup\DiskConfiguration\Disk\CreatePartitions\CreatePartition

Order = 1

Size = 100

Type = Primary

WindowsPE

Microsoft-Windows-Setup\DiskConfiguration\Disk\ModifyPartitions\ModifyPartition

Active = true

Format = NTFS

Label = System

Order = 1

PartitionID = 1

WindowsPE

Microsoft-Windows-Setup\ImageInstall\OSImage

InstallToAvailablePartition = false

WillShowUI = OnError

 

WindowsPE

Microsoft-Windows-Setup\ImageInstall\OSImage\InstallTo

DiskID = 0

PartitionID = 1

WindowsPE

Microsoft-Windows-Setup\UserData

AcceptEula = true

WindowsPE

Microsoft-Windows-Setup\UserData\ProductKey

Key = <ключ продукта>

WillShowUI = OnError

 

Со списком минимально необходимых компонентов, а так же с подробным описанием каждого можно познакомиться в документе под названием «Пошаговое руководство создания файла ответов» — файл stepbystep_itpro.htm дистрибутива [4].

Проверка файла ответов

После добавления всех необходимых параметров и компонентов в меню Сервис выбираем Проверка файла ответов. Все значения сравниваются с доступными параметрами выбранного образа Windows. Если проверка прошла успешно, в области Сообщения в нижней части окна Диспетчер установки Windows появляется сообщение Ошибок и предупреждений нет. В противном случае в области Сообщения появляется сообщение об ошибке. Для исправления обнаруженной ошибки, необходимо дважды кликнуть по соответствующему сообщению, чтобы перейти к неверному параметру. Исправляем ошибку, используя встроенную систему помощи и снова выполняем проверку. Повторяем это действие, пока файл ответов не будет годным к эксплуатации. И только после этого сохраняем файл под именем autounattend.xml. Осталось скопировать этот файл в корневую папку сервера сетевой загрузки и исправить вызов setup.exe в файле install_menu.cmd [1] с указанием его имени: setup.exe /unattend: autounattend.xml. Теперь установка системы будет происходить в автоматическом режиме с указанными параметрами.

После создания базового файла ответов его можно изменить, включив дополнительные настройки, автоматизировать части процесса инсталляции путем создания сценариев. Дополнительно интегрировать в загружаемый образ разнообразные драйвера устройств и необходимые приложения. Много информации о настройке и развертывании образа Windows содержаться в разделе Сценарии пакета автоматической установки Windows справки Waik.chm и документации к WAIK [4], а так же по адресу [5].

Добавление Linux дистрибутивов

Добавить в загрузку Linux-дистрибутив не составляет большого труда. Обычно сборщики популярных дистрибутивов таких как CentOS, Ubuntu, openSuSe и т.д. Включают в поставку текстовый файл с описанием установки ОС с сетевого ресурса.

Общий принцип одинаков: загрузка ядра системы установки и передача ему параметров с указанием пути по которому располагается дистрибутив. Так как этот вопрос подробно рассматривался в первой части статьи , то останавливаться на нем не будем. Дополнительную информацию можно найти по адресу [6].

Citrix XenServer 5.6.0

Citrix XenServer является одной из самых популярных платформ виртуализации инфраструктуры масштаба предприятия. Популярность ей обеспечивает отличное средство управления и настройки - Citrix XenCenter, а так же возможность использовать редакцию Free XenServer бесплатно. Рассмотрим установку этой операционной системы в качестве первого примера.

В документации к дистрибутиву в файле installation.pdf [8] приведен пример, готовый к использованию совместно с PXE. Для использования в созданной нами сетевой конфигурации его необходимо немного изменить:

  • Исправим значения путей к файлам и параметры загрузки ядра;
  • Добавим в файл содержащий описание меню (/tftboot/pxelinux.cfg/default [1]) пункт Citrix XenServer ;

После всех изменений содержимое должно принять такой вид:

#default xenserver # Эта директива установки по умолчанию. Нам она не нужна - есть меню выбора установок

label xenserver # наименование загрузки (на ваш выбор)

menu label Install - ^Citrix XenServer # Название пункта меню

kernel xensrv/mboot.c32 # Ядро-загрузчик установки (xensrv/ - директория на сервере установки)

append xensrv/xen.gz dom0_mem=752M com1=115200,8n1 console=com1,tty --- xensrv/vmlinuz console=ttyS0,115200n8 console=tty0 --- xensrv/install.img # параметры установки рекомендованные Citrix

Рассмотрим за что отвечает каждый параметр:

xen.gz — сжатая файловая система инсталлятора;

dom0_mem=752M — использование памяти хост-машиной;

com1=115200 — виртуальный com-порт;

n1 console=com1 — «привязка» порта к терминалу 8 бит с проверкой четности;

vmlinuz — ядро системы;

console=ttyS0,115200n8 console=tty0 — параметры загрузки ядра ;

install.img — образ установочного диска.

Меню создано, осталось скопировать файлы. Для этого последовательно выполняем:

# mount /media/dvd /mnt # Монтируем DVD или

# mount -o loop /distrib/CitrixXS56.iso /mnt # iso-образ Citrix XenServer 5.6.0

Далее создаем папку /tftpboot/xensrv на сервере и скопируем в нее из /mnt/boot/ файлы ядра vmlinuz и xen.gz. Затем скопируем из /mnt/boot/isolinux папку packages.main и файл install.img. В папке packages.main находятся: dom0fs.tar.bz2 он содержит корневую файловую систему и архивы дополнительных пакетов, разработанных в Citrix, необходимые серверу. Можно включить в установку пакеты которые вам нужны, достаточно просто добавить их в dom0fs.tar.bz2, взяв из соответсвующего репозитория CentOS.

В Citrix XenServer так же предусмотрена возможность автоматической установки. Такой вариант удобен при создании большого количества однотипных серверов, например фермы Citrix App. В этом случае необходимо использовать предварительно созданный файл ответов, путь к которому указываем в параметрах /tftboot/pxelinux.cfg/default перед указанием параметра install.img:

answerfile=]]>http://myhost.ru/5.6.0-answerfile]]> \

install --- /tftpboot/xenserver/install.img

В приведенном листинге myhost.ru — адрес сервера установки (в частном случае это IP-адрес 192.168.1.7); 5.6.0-answerfile — имя файла. Необходимо обратить внимание на то, что обращение к файлу идет по протоколу HTTP (answerfile=http://...).

Для создания файла 5.6.0-answerfile обратимся к инструкции по установке XenServer [8], где приведены готовые примеры. Структура этого XML файла проста и интуитивно понятна (Рис. 3), поэтому не вызовет никаких затруднений при заполнении.

Рисунок 3. Структура файла 5.6.0-answerfile

Структура файла 5.6.0-answerfile

На этом подготовка закончена и можно проверить установку выбрав в загрузочном меню [1] пункт “Citrix XenServer” (Рис.4).

Рисунок 4. Начало загрузки Citrix XenServer 5.6.0

Начало загрузки Citrix XenServer 5.6.0
 

Ubuntu

Все шаги которые были производены для Citrix XenServer, полностью справедливы для дистрибутива Ubuntu. В этом примере использовалась версия Ubuntu — 10.10 x64 и стандартная установка режима cloud. Исключение составляют файлы ответов. Они располагаются в каталоге /preseed/ инсталляционного диска. Небольшая тонкость – они запрашиваются и передаются установщиком по протоколу http (так же как у XenServer, см. выше). Следовательно необходимо установить и настроить HTTP-сервер, например apache, ligth-http, nginx – любой на ваш выбор, указав для него корневую директорию /srv/tftpboot/. Для прямых обращений к HTTP желательно прописать алиасы на директории содержащие файлы систем. Добавляем в /etc/apache2/conf.d/ две конфигурации (еще одну для CentOS). Соотвественно для Ubuntu10.10 файл ubuntu.conf с таким содержанием:

Alias /ubuntu "/tftpboot/ubuntu/"

<Directory "/backup/ubuntu/">

Options Indexes

AllowOverride None

Order allow,deny

Allow from all

</Directory>

Для CentOS файл "centos.conf" с таким:

Alias /centos "/tftpboot/centos/"

<Directory "/tftpboot/centos/">

Options Indexes

AllowOverride None

Order allow,deny

Allow from all

</Directory>

В дистрибутиве поставляется несколько вариантов установки конечных систем. Вы можете выбрать подходящий вам и указать соответсвующий ему файл ответов. Мне необходим вариант Cloud и поэтому в моей конфигурации указан /preseed/cloud.seed.

Добавляем в pxelinux.cfg/default описание раздела:

label ubuntu # наименование загрузки (на ваш выбор)

menu label Install - ^Ubuntu-10.10 x64 cloud # наименование пункта меню

kernel ubuntu/linux # ядро установщика

append vga=normal # включить графический режим установщика

initrd=ubuntu/initrd.gz # сжатая файловая система preseed/url=]]>http://192.168.1.7/ubuntu/preseed/cloud.seed]]> – quiet # путь к файлу ответов, параметр “– quiet” - установка с вводом параметров в ручном режиме (необходимо уазывать если не все параметры описаны в файле ответов)

Затем создаем папку /ubuntu/, монтируем iso-образ и копируем все файлы дистрибутива в нее. Проверяем установку выбрав в загрузочном меню пункт Ubuntu-10.10 x64 cloud.

Так как в параметрах указано – quiet, то на вопрос Выбор зеркала архива необходимо выбрать самую верхнюю строку — Ввести информацию вручную. И указать URL папки на сервере установки (Рис. 5,6).

Рисунок 5. Установка Ubuntu- Выбор зеркала архива.

Установка Ubuntu по сети - Выбор зеркала архива.

Рисунок 6. Установка Ubuntu- Наше зеркало.

Установка Ubuntu- Наше зеркало.

CentOS-6.0x86-64

Установка этой операционной системы практически ни чем не отличается от предыдущего примера, наверное сказываются общие корни. Интерес вызывает возможность не распаковывать ISO-образ в папку на сервере, а просто скопировать его в корень HTTP-сервера и указать путь к нему. Итак:

добавляем в pxelinux.cfg/default описание раздела для CentOS-6.0:

label CentOS

menu label Install - ^CentOS-6.0

kernel centos/vmlinuz

append initrd=centos/initrd.img text

В таком варианте после загрузки ядра системы получим стандартное меню инсталлятора и уже с его помощью производите установку системы. При появлении запроса о дистрибутивном устройстве указываете полный путь URI к файлу ISO на сервере (рис.7). О возможностях автоматизации этого процесса можно прочитать в документации к дистрибутиву и по адресу [9].

Рисунок 7. Установка "CentOS 6.0".

Установка "CentOS 6.0" по сети

 В следующей части будут рассмотрены вопросы создания дистрибутивов «спасательных» систем, загружаемых по сети, на базе Windows PE и FreeDOS.

]]>

Литература

Универсальный сервер сетевой загрузки и установки. Часть 2

        Итак продолжим тему сетевой загрузки. Полный комплект необходимых (готовых) конфигурационных файлов можно загрузить отсюда - ris-linux.zip. В случае графического меню структура каталогов на TFTP сервере будет выглядеть так:

/tftpboot/

   /tftpboot/pxelinux.0  - загрузчик

   /tftpboot/menu.c32   - модуль syslinux для создания меню на экране

   /tftpboot/pxelinux.cfg/

   /tftpboot/pxelinux.cfg/default — описание разделов основного меню

   /tftpboot/pxelinux.cfg/graphics.conf — параметры меню: цвет, высота и т.д.

   /tftpboot/pxelinux.cfg/fixes.menu - описание дополнительного меню (инструменты)

   /tftpboot/pxelinux.cfg/setup.menu - описание дополнительного меню (установки)

           Рассмотрим как происходит загрузка и установка Linux на примере openSuSe11.2. При выборе пункта «suse112»  загрузчик сначала скачивает ядро («kernel suse/suse112x32/linux»), затем файл сжатой  временной файловой системы «initrd» («initrd=suse/suse112x32/initrd»). Как только загрузка завершена «pxelinux.0» запускает на выполнение ядро, передав в качестве аргументов запуска параметры считанные из  конфигурационного файла. Запустившись, уже само ядро подключает (монтирует) каталог с дистрибутивом («install=nfs://192.168.1.7/srv/tftpboot/suse/suse112x32/CD1/»), продолжая  установку.   Следует упомянуть о том, что ядро в этом случае обязательно должно содержать в себе (не как модули) драйвера сетевых карт установленных в компьютерах.

      Теперь поговорим о том, как происходит загрузка Windows XP, а так же Windows Server 2003(R2). Для начального старта системы используется файл «startrom.n12». Он находится в архиве «STARTROM.N1_» на дистрибутивном диске Windows XP. Этот файл и запускается на выполнение при выборе пункта меню «label xpinstall» (строка «kernel startrom.0» в конфигурационном файле). Для использования совместно с «pxelinux.0» файл «startrom.n12» необходимо переименовать в «startrom.0».

         Загрузившись, «startrom.0» потребует от TFTP сервера файл «ntldr» (сокращение от NT Loader) — загрузчик для операционных систем Windows NT и более поздних (2000/XP/Server 2003). Тот в свою очередь «ntdetect.com», который собирает информацию о составе оборудования. Как только информация собрана, «ntdetect.com» запрашивает файл ответов   «winnt.sif». В нем и должны быть описаны пути подключения к серверу и параметры загрузки («OriSrc = "\\192.168.1.7\reminstall\i386"»). Все дальнейшие действия установки будут происходить по этому сценарию.

        Для установки ОС от Microsoft я давно использую известный проект RIS for Linux [4]. Он представляет собой набор скриптов на Python [5], которые эмулируют часть работы WDS. Так как ядро Windows не имеет в себе драйверов сетевых карт, они должны загрузиться по сети. Это осуществляется файлом «ntdetect.com», который определяет код оборудования сетевой карты и запрашивает необходимый sys-файл у сервера установки. Здесь в установку включается скрипт «binsrv.py» (эмулятор WDS), который находит  требуемый файл и передает его запросившей системе. После загрузки и инициализации устройств  подключаются сетевые файловые системы описанные в файле ответов «winnt.sif» и продолжается установка ОС.

        В случае Microsoft Vista, Windows 7 и Windows Server 2008 сценарий установки будет выглядеть немного по другому (пункт меню «label win7»). Загружаемым файлом является «pxeboot.0» (переименованный «pxeboot.n12»). Он в свою очередь загружает «bootmgr.exe» – Windows Boot Manager (диспетчер загрузки) и запускает его на выполнение. Тот запрашивает у сервера файл BCD – boot configuration data (хранилище параметров запуска) и на основе полученных данных «bootmgr.exe» производит загрузку «boot.sdi» и «boot.wim» – образа Windows PE. Все выше перечисленные необходимые файлы можно взять из комплекта Windows Automated Installation Kit (AIK) [ссылка].

Настройка

Настройка сервера сетевой загрузки и установки в следующей конфигурации (См. рис. 4): 
 
Рисунок 4 Схема сети:

 1. Windows-домен с основным контроллером pdc.company.local с IP адресом 192.168.1.1. Операционная система Windows Standart Server 2003 R2 x64, службы AD, DNS, DHCP.

2.  Дополнительный сервер на openSuSe11.1-x86_64 с IP адресом 192.168.1.7.

Установку начинаем с сервера DHCP. Открываем оснастку DHCP сервера и в пункте меню «Параметры области» устанавливаем галочки напротив параметров:

  •  «066 Имя узла сервера загрузки» в поле вводим ip адрес нашего сервера установки — 192.168.1.7 или его доменное имя.
  •  «067 Имя файла загрузки» в поле вводим имя файла PXE — «pxelinux.0»

Если у вас сервер DHCP на Linux сервере, то в его конфигурационный файл «/etc/dhcpd.conf» необходимо внести поправки добавив директивы:

allow bootp - сообщает серверу dhcp обрабатывать или нет bootp-запросы

allow booting - сообщает серверу обрабатывать ли запрос конкретного клиента.

filename - указывает имя файла, используемого для начальной загрузки клиента

Подробнее об этих опциях можно прочитать в документации к вашему DHCP серверу или по ссылке [15].

Переходим к серверу 192.168.1.7. Устанавливаем, если еще не установлены, необходимые пакеты: tftp, syslinux, convmv, samba, cabextract и интерпретатор python. Для openSuse11.1 можно так:

# yast -i tftp syslinux convmv samba python cabextract.

Настройку TFTP начинаем с создания корневой директории сервера установки:

# mkdir /srv/tftpboot

При установке Windows с использованием Linux возникают известные всем сложности обращения к папкам на сервере: символ «\» надо замещать на «/». Так же есть проблемы с чувствительностью к регистру. Все это решается при помощи опции «remap» tftp сервера. Создаем файл «rules» в «/srv/tftpboot» с таким содержанием (естественно вместо многоточия должны быть остальные буквы для замены):

rg \\ /

rg A a

….....

rg Z z

Добавляем в строку запуска сервера (файл «/etc/xinet.d/tftp») информацию о remap-файле (путь к remap-файлу с ключом -m) и путь корневой директории сервера. Она должна выглядеть  так:

tftp -s /srv/tftpboot -m /srv/tftpboot/rules

Перезапускаем xinetd:

# /etc/init.d/xinetd restart

Теперь сервер будет переводить имена всех файлов и директорий в нижний регистр.  Соответственно во всех директориях tftp сервера их необходимо привести к этому виду. Эту операцию придется производить каждый раз при изменении файлов в дистрибутивах. Проще всего сделать это при помощи утилиты convmv, установленной ранее:

#  convmv --lower -r --notest --replace /srv/ftpboot/*

 Создаем в корневой папке tftp сервера каталог с конфигурационными файлами:

# mkdir /srv/tftpboot/pxelinux.cfg

и копируем туда загруженные конфигурационные файлы [3] для создания графического меню. В файле «/tftpboot/pxelinux.cfg/setup.menu» исправляем IP адрес сервера установки («nfs://192.168.1.7/») на IP вашего сервера (где будут располагаться распакованные дистрибутивы). Для текстового меню достаточно создать файл default из примера выше.
      Примеры конфигураций можно посмотреть в каталоге /usr/share/doc/packages/syslinux/. В корень сервера копируем файлы самого загрузчика «menu.c32» и «pxelinux.0». Они находятся в директории /usr/share/syslinux/ сервера. С настройкой самого сервера все закончено, переходим к подготовке дистрибутивов.

Продолжение следует...

Вернуться на Часть 1    Главная

Теги: 

Универсальный сервер сетевой загрузки и установки. Часть 3

         Начнем с подготовки фалов для установки Windows XP. Монтируем образ диска с системой: 

mount -o loop /home/iso/winxpsp3.iso /home/temp/xp

Распаковываем и переименовываем файлы для загрузки:

cd /srv/tftpboot/
cabextract /home/temp/xp/I386/SETUPLDR.EX_
mv /home/temp/xp/I386/setupldr.exe ntldr
cabextract /home/temp/xp/I386/STARTROM.N1_
mv /home/temp/xp/I386/startrom.n12 startrom.0
cp /home/temp/xp/I386/NTDETECT.COM ntdetect.com
cp /home/temp/xp/BOOTFONT.BIN bootfont.bin

Копируем сам дистрибутив и переводим имена всех файлов в нижний регистр:

mkdir /srv/tftpboot/winxp
cp /home/temp/xp/* /srv/tftpboot/winxp/
convmv --lower -r --notest --replace *

Разрешим доступ к дистрибутиву через Windows network добавив в файл
«/etc/samba/smb.conf» секцию (сразу добавим секцию и для установки Windows 7):

[reminstall]
path = /srv/tftpboot/winxp/
public = yes
browsable = yes
read only = yes
guest ok = yes
[win7]
path =/srv/tftpboot/win7
public = yes
browsable = yes
read only = yes
guest ok = yes

Перезапускаем samba:

/etc/init.d/samba restart

     Для настройки  ris-linux понадобиться сам дистрибутив [4] и пакет драйверов сетевых карт. Готовый архив можно скачать отсюда [7], а можно изготовить самостоятельно (это позволит разобраться как в дальнейшем добавлять новые сетевые карты и обновлять их драйвера). 
 

Краткое описание как самому собрать пакет драйверов сетевых карт.

     RIS сервер хранит информацию о драйверах в файле «nics.txt», туда она попадает при помощи скрипта «infparser.py». Скрипт выполняет поиск в указанной ему директории файлов *.inf, считывает информацию о «Vendor Id» (уникальный идентификатор производителя оборудования) производителя и записывает в файл «nics.txt» строку вида:

8086 4227 w39n50.sys w39n50

 Создаем папки ris, ris/drv и ris/drv/sys в корне TFTP сервера:

mkdir /srv/tftpboot/ris
mkdir /srv/tftpboot/ris/drv
mkdir /srv/tftpboot/ris/drv/sys

      Затем необходимо скопировать и распаковать в папку /srv/tftpboot/ris/drv файлы net*.in_ (из папки i386 дистрибутивного диска). Туда же следует скопировать дополнительно *.inf файлы необходимых для добавления сетевых драйверов. Файлы *.sy_ и *.sys копируем в /srv/tftpboot/ris/drv/sys. После этого составляем список доступных драйверов:

vmhost:/srv/tftpboot/ris # python infparser.py drv/
Compiled 6384 drivers
generated devlist.cache
generated nics.txt

     Все, набор драйверов готов. Осталось скопировать содержимое каталогов drv/ и drv/sys/ в директорию с дистрибутивом Windows XP - /srv/tftpboot/winxp/i386/. В итоге в этой папке должны расположиться ВСЕ *.inf и *.sys файлы сетевых карточек. На сайте [10] есть немного другой способ, также пригодный для подготовки пакета драйверов в Windows XP.

Продолжаем настройку ris-linux.

Скачиваем и распаковываем ris-linux в папку с именем /srv/tftpboot/ris :

cd /srv/tftpboot/
wget ]]>http://oss.netfarm.it/guides/ris-linux-0.4.tar.gz]]>
tar -xvf ris-linux-0.4.tar.gz
mv  ris-linux-0.4 ris

Теперь необходимо указать путь по которому располагается дистрибутив. Для этого  открываем файл «binlsrv.py»  и правим там строку:

BASEPATH = /srv/tftpboot/winxp/
Запускаем WDS в режиме логирования для проверки :
./binlsrv.py -l binl.log
Succesfully loaded 6384 devices
Binlserver started... pid 7385

         Уже сейчас можно проверить работу сервера загрузив тестовый компьютер по сети и выбрав пункт «xpinstall». Если что-то не так проверяйте логи на предмет запрашиваемых у TFTP сервера файлов, они должны присутствовать на сервере в таком виде, как и запрашиваются. Наиболее часто встречающаяся ошибка это: «Выбранный образ операционной системы не содержит необходимых драйверов для имеющегося сетевого адаптера...»(рис.5).

Рисунок 5 Отсутствие необходимых драйверов

Рисунок 5 Отсутствие необходимых драйверов

Главная  Часть1   Часть2   Далее

Универсальный сервер сетевой загрузки и установки. Часть 4.

Часть 3 закончилась на рассмотрении ошибок возникающих при загрузке wim образа с Windows 7. Продолжим настройку WDS.
server_args = -s /srv/tftpboot -m /srv/tftpboot/rules -v

Это означает что в базе binlsrv.py (devlist.cache) отсутствует информация о сетевом адаптере установленном в компьютере. Для определения PnP идентификатора устройства запускаем сервер WDS в режиме вывода информации в консоль:

 

и вновь запускаем установку. Как только «ntdetect.com» запросит информацию у WDS в консоле мы увидим такую картину см. рис.6
 
Рисунок 6 WDS в режиме вывода информации в консоль

WDS в режиме вывода информации в консоль

 
В моем случае идентификатор PCI\VEN_1022&DEV_2000 найден в файле netamd2.inf которому соответствует файл устройства pcntpci5.sys. Для решения этой проблемы необходимо найти драйвер с PnP идентификатором PCI\VEN_1022&DEV_2000 и включить его в базу binlsrv.py (devlist.cache) с помощью команды infparser.py <путь к каталогу с новым драйвером>. С целью повышения удобства отладки также можно включить лог tftp. Для этого в файл «/etc/xinet.d/tftp» в строку запуска «server_args» надо добавить ключ «-v»:
 
 
И посмотрите что именно и в какой последовательности запрашивает у сервера система. Это также очень удобно делать при помощи сетевого сканера Whireshark [16]. 
 

Создание файла ответов winnt.sif для Windows XP

]]> Про файл ответов для автоматической установки «winnt.sif» написано очень много. Подробное описание всех параметров «winnt.sif» находиться на сайте Microsoft [9], а так же здесь [10]. В этом файле описываются параметры устанавливаемой системы, которые используются на разных этапах (уровнях) установки. Создать его можно с помощью программ из архива «deploy.cab» находящегося в папке /support/tools/ дистрибутивного диска Windows XP, просто ответив на вопросы конфигуратора. Там же находиться подробная документация в виде chm-файлов по использованию и конфигурации файлов автоматической установки. Для теста можно взять готовый файл моей конфигурации и просто исправить некоторые строки [8]. В начале необходимо исправить следующие параметры: «OriScr» в секции «[data (это тот самый путь который мы сделали доступным посредством Samba):
 

OriSrc = "\\192.168.1.7\reminstall\i386]]>"

и «SetupSourceDevice» в секции «[SetupData (это указание устройства с которого идёт установка):

SetupSourceDevice = "\Device\LanmanRedirector\192.168.1.7\reminstall"
 
Очень интересна и полезна с точки зрения установки секция «Unattended» и ее настройки:

DriverSigningPolicy=Ignore ; устанавливать драйверы без подписи
UpdateInstalledDrivers=Yes ; Для установки не подписанных драйверов

Repartition=Yes ; удалить ВСЕ существующие разделы на диске и создать один для установки и использования системой

; путь поиска дополнительных драйверов во время установки Windows

OemPnPDriversPath="windows\drv\chipset\intel;windows\drv\net\intel;
windows\drv\net\marvell;windows\drv\net\realtek;windows\drv\video\intel;
windows\drv\video\nvidia;windows\drv\video\ati;windows\drv\audio\realtek"

        Когда на графическом этапе инсталляции ОС выполняется поиск файлов INF, содержащих нужные идентификаторы Plug and Play устройств, программа просматривает все пути, указанные в переменной OemPnPDriversPath. Это дает возможность правильно инициализировать устройства. Файл «winnt.sif» имеет большое количество параметров, которые позволяют произвести не только основную настройку системы, но и инсталляцию необходимого программного обеспечения.

Подготовка папки для Windows 7.

Установка будет происходить по такому сценарию:

    Загрузка по сети образа Windows7 PE (без графической оболочки)
    Вызов меню выбора системы для установки («install_menu.cmd»)
    Монтирование необходимого сетевого устройстваЗапуск setup.exe с указанием файла ответов

Рисунок 7 Установка WAIK

 

Установка WAIK

    
      Для создания загрузочного образа Windows7 PE («boot.wim») обязательно понадобиться компьютер с установленной системой Windows 7, Windows Vista, Windows Server 2003 или Windows Server 2008 (я использовал виртуальную машину c Windows 7 — далее обслуживающий компьютер). Устанавливаем Windows Automated Installation Kit (WAIK) (См. Рис.7-9.).
 

Рисунок 8 Выбор компонентов настройки


Выбор компонентов настройки

 

Рисунок 9 Добавление параметров настройки

Добавление параметров настройки

Запускаем  Windows PE Tools Command Prompt (Пуск-> Программы-> Microsoft Windows AIK -> Windows PE Tools Command Prompt). В действительности это обычное окно программы командного процессора Cmd.exe, только с добавленными дополнительными переменными окружения. Создаем копию загрузочного образа с необходимой архитектурой (параметр x86):
 

copype.cmd x86 c:\windowspe-x86\

монтируем образовавшийся образ:
 

Dism /Mount-WIM /WimFile:c:\windowspe-x86\winpe.wim /Index:1 /MountDir:c:\windowspe-x86\mount

Открываем на редактирование файл «startnet.cmd» из каталога c:\windows7pe-x86\mount\windows\system32. Этот файл запускается первым после загрузки и старта системы. Вот в нем и надо прописать вызов скрипта «install_menu.cmd», который будет отвечать за выбор ОС для установки.
Содержание  «startnet.cmd»:

 

	Wpeinit # Окончательная инициализация системы
	ipconfig renew # Инициализируем сетевые интерфейсы
	call install_menu.cmd

Зачем использовать ipconfig renew? Как показала практика, по неизвестной причине не все сетевые карты  инициализируются после выполнения Wpinit. Поэтому еще раз вызываем настройку интерфейса (рис.10).
 

 

Рисунок 10 Ошибка инициализации сети

Рисунок 10 Ошибка инициализации сети

Продолжение следует...

Универсальный сервер сетевой загрузки и установки. Окончание

В файле «install_menu.cmd» реализован выбор операционных систем для установки:

@ECHO OFF
CD /D "%~dp0"
SETLOCAL
COLOR 1E
wselect.exe install_menu.lst "Выбор системы для установки" /menu /cmdCenter /oemlist /fixedfont /fs=20
CALL :M%ERRORLEVEL%
ENDLOCAL
GOTO :EOF
:M0
:M1
::Тело скрипта при отказе
ECHO Cancel
EXIT
:M2
:: Тело скрипта запуска X86
ECHO Выбрана система X86
NET USE Z: \\192.168.1.7\win7
IF EXIST Z:\SOURCES\setup.exe (
CD /D Z:\SOURCES
setup.exe /unattend:Z:\autounattend.xml
)
GOTO :EOF

:M3
:: Тело скрипта запуска X64
ECHO Выбрана система X64
NET USE Z: \\192.168.1.7\win7x64
IF EXIST Z:\SOURCES\setup.exe (
CD /D Z:\SOURCES
setup.exe /unattend:Z:\autounattendX64.xml
)
GOTO :EOF

         Скачать архив с этим файлом можно по адресу [12].  Содержание этого архива так же необходимо скопировать в c:\windows7pe-x86\mount\windows\system32. Далее добавляем необходимые вам драйвера (сетевых карт) с помощью команды Dism с параметром /Add-Driver. Эта программа командной строки,  доступна в пакете Windows Automated Installation Kit 2.0  (Windows AIK).

Dism /image:c:\windowspe-x86\mount /Add-Driver /driver:c:\mydriver\video\myvideo.inf

Dism /image:c:\windowspe-x86\mount /Add-Driver /driver:c:\mydriver\net\vboxdrv.inf

        Заканчиваем редактирование, переходим в каталог c:\windowspe-x86\. Выполняем запись и размонтирование исправленного образа:

Dism /Unmount-WIM /MountDir:c:\windowspe-x86\mount /Commit

        Этими нехитрыми действиями получается простейший загрузочный диск Microsoft Windows PE с необходимыми нам драйверами без графического интерфейса.
        Переходим к нашему серверу. Создаем в /srv/tftpboot/ папку boot и sources копируем из c:\windowspe-x86\ISO\boot файлы «bcd», «boot.sdi» и папку «fonts» в /srv/tftpboot/boot/. Из c:\windowspe-x86\ файл «winpe.wim» под именем «boot.wim» в /srv/tftpboot/sources/.
Из папки c:\windowspe-x86\ISO\ в корень tftp помещаем файл «bootmgr.exe», а файл «pxeboot.0»  в /srv/tftpboot/sources/. Создаем папку /srv/tftpboot/win7, монтируем образ iso с Microsoft Windows 7 и копируем содержимое диска в win7/. Эту операцию (если нужно) повторяем для  64-х разрядной системы. Проверяем загрузку. В случае успеха вы увидите такую картину как на рис.11.

Рисунок 11 Окно выбора устанавливаемой системы 

 
          Используя указание файла ответов:  «setup.exe /unattend: autounattend.xml» можно создать любое количество конфигураций конечных систем. Изменяя имя файла конфигурации и вызов программы установки в «install_meniu.cmd» получаем всего один дистрибутивный ресурс и множество конфигураций установки.
 

Заключение


        Мы достаточно подробно рассмотрели установку сервера сетевой загрузки и теоретические принципы его работы, познакомились с настройкой пакета Syslinux [2], научились использовать комплект скриптов RIS for Linux [4] и создавать для него комплекты драйверов сетевых карт, а так же настроили сетевую установку двух дистрибутивов Microsoft  Windows XP и  Microsoft Windows 7.
В следующей статье будут рассмотрены вопросы создания образа автоматической установки Microsoft Windows 7 и файла ответов «autounattend.xml», конфигурация сетевой загрузки операционных систем семейства Unix, а так же создание дистрибутивов «спасательных» систем, загружаемых по сети, на базе Windows PE и FreeDOS.
 

Ссылки и литература:

1.Проект WDSLINUX (]]>http://syslinux.zytor.com/wiki/index.php/WDSLINUX]]>)
2.Проект Syslinux (]]>http://syslinux.zytor.com/wiki/index.php/The_Syslinux_Project]]>)
3.Комплект конфигурационных файлов для графического меню (]]>http://win.infin.ru/ftp/distrib/risserver/pxelinux.cfg.zip]]>)
4.RIS for Linux (]]>http://oss.netfarm.it/guides/pxe.php]]>)
5.Язык программирования Python (]]>http://www.python.ru]]>)
6.Набор автоматической установки Windows® (AIK) для Windows® 7
(]]>http://www.microsoft.com/downloads/details.aspx?familyid=696DD665-9F76-4...]]>)
7.Набор драйверов сетевых карт (]]>http://win.infin.ru/ftp/distrib/risserver/lan-drivers.zip]]>)
8.Файл winnt.sif (]]>http://win.infin.ru/ftp/distrib/risserver/winnt_sif.zip]]>)
9.Описание параметров файла winnt.sif от Microsoft (]]>http://unattended.msfn.org/unattended.xp/view/web/19/]]>)
10.Описание автоматической установки XP (]]>http://unattendedxp.com/]]>)
11.Хорошее описание WAIK (]]>http://www.windowsfaq.ru/content/view/624/90/]]>)
12.Скрипт выбора ОС (]]>ftp://infin.ru/distrib/risserver/menu7.zip]]>)
13.СУБД Oracle (]]>http://ru.wikipedia.org/wiki/Oracle_]]>(СУБД))
14.Sybase Adaptive Server Anywhere (ASA) (]]>http://www.sybase.ru]]>)
15.Настройка DHCP (]]>http://lantan.chat.ru/dhcpd.conf.5.html]]>)
16.Проект Whireshark (]]>http://www.wireshark.org/]]>)

Внимание! Все используемые в статье конфигурационные файлы можно скачать по этой ссылке 

http://www.winpe.ru/content/universalnyy_server_setevoy_zagruzki_i_ustanovki_fayly