Универсальный сервер сетевой загрузки и установки. Часть 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    Главная

Теги: 

Комментарии

И снова порция интересностей!)
А сколько всего будет частей?)))

Аватар пользователя serg kaac

Еще две точно, а там посмотрим если тема интересна то продолжу. Прошу извинить, что еще не выложил скрипты и конфиги. Получится только во вторник.

Жизнь бьёт ключом! И все больше по голове!>

Страницы

Похожие материалы по этой теме на сайте

Содержимое
Чтение данных из реестра в переменную окружения

Продвинутый кросплатформенный модуль для встраивания в скрипты, позволяющий в удобной форме получать данные из реестра для дальнейшего использования(как всегда - кодировка скрипта CP866):

Перевод столбца в строку

Преобразование столбца в строку с заданными разделителями и обрамлением. Кодировка скрипта CP866.
Символ двойной кавычки при этом не удастся использовать как разделитель или обрамление.

Подключение к WSUS машины не входящей в домен

Идем в ветку реестра

Система для обслуживания компьютеров и серверов в локальной сети предприятия

Причины создания, краткое описание, общий принцип работы

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

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

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

Распаковываем и переименовываем файлы...

Перенос данных пользователя

Наткнулся на простейшую статью по поводу переноса данных. Сам постоянно использую, но времени хоть в двух словах описать не было.

Универсальный сервер сетевой загрузки и установки. Часть 4.
Часть 3 закончилась на рассмотрении ошибок возникающих при загрузке wim образа с Windows 7. Продолжим настройку WDS.
server_args = -s /...
Настройка TS Easy Print на сервере терминалов Windows Server 2012 R2

Технология TS Easy Print является альтернативой стандартной службе печати, появилась впервые в Windows Server 2008R2.