Универсальный сервер сетевой загрузки и установки. Часть 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) [ссылка].
Настройка
1. Windows-домен с основным контроллером pdc.company.local с IP адресом 192.168.1.1. Операционная система Windows Standart Server 2003 R2 x64, службы AD, DNS, DHCP.
Установку начинаем с сервера 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/ сервера. С настройкой самого сервера все закончено, переходим к подготовке дистрибутивов.
Продолжение следует...
- Блог пользователя serg kaac
- Версия для печати
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
Похожие материалы по этой теме на сайте
Содержимое | |
---|---|
Универсальный сервер сетевой загрузки и установки. Часть 3 |
Начнем с подготовки фалов для установки Windows XP. Монтируем образ диска с системой:
Распаковываем и переименовываем файлы... |
Перенос данных пользователя |
Наткнулся на простейшую статью по поводу переноса данных. Сам постоянно использую, но времени хоть в двух словах описать не было. |
Универсальный сервер сетевой загрузки и установки. Часть 4. |
|
Настройка TS Easy Print на сервере терминалов Windows Server 2012 R2 |
Технология TS Easy Print является альтернативой стандартной службе печати, появилась впервые в Windows Server 2008R2. |
Windows 7 Live CD/USB — собираем Windows своими руками |
Мне очень понравилась вот эта статья. Приведу начало и ссылку на источник. |
Поддержка папок для сканирования |
Часто в офисе присутствуют сетевые устройства сканирования, которые поддерживают сканирование в сетевую папку. Все бы было хорошо если бы для этих устройств |
Универсальный сервер сетевой загрузки и установки. Окончание |
В файле «install_menu.cmd» реализован выбор операционных систем для установки: |
Полное удаление драйверов принтера в windows 7 |
Как обычно, заметочка для себя. |
Сейчас на сайте
1 пользователь онлайн.
- yurkesha
Пользователи
- saraysxroom
- axis_7even
- scuba
- Timer
- vitako
- Снег
- naro91
- alex_dss
- njnksdffjfsk
- saul
Комментарии
И снова порция интересностей!
И снова порция интересностей!)
А сколько всего будет частей?)))
Еще две точно, а там
Еще две точно, а там посмотрим если тема интересна то продолжу. Прошу извинить, что еще не выложил скрипты и конфиги. Получится только во вторник.
Жизнь бьёт ключом! И все больше по голове!>
Страницы