IНФОРМАЦИОННЫЕ
https://doi.org/10.21122/1683-6065-2022-1-82-85 Поступила 18.01.2022
УДК 669.1.015.7 Received 18.01.2022
АВТОМАТИЗИРОВАННАЯ СИСТЕМА ПО РАЗВЕРТЫВАНИЮ ОПЕРАЦИОННЫХ СИСТЕМ С ИСПОЛЬЗОВАНИЕМ ЛВС (PXE СЕРВЕР)
И. В. КЕНДЫШ, ОАО «БМЗ - управляющая компания холдинга «БМК», г. Жлобин, Гомельская обл., Беларусь, ул. Промышленная, 37. E-mail: iv.kendysh@bmz.gomel.by, тел.: 8-02334-56424
PXE - среда для загрузки компьютеров с помощью сетевой карты без использования жестких дисков, компакт-дисков и других устройств, применяемых при загрузке операционных систем. Выбрав в BIOS загрузку по сети, возможно установить ОС/вылечить компьютер от вирусов/реанимировать диски/протестировать ОЗУ с PXE Boot сервера. Такой инструмент незаменим в случае большого парка компьютеров.
Ключевые слова. PXE; TFTP; DHCP; Windows PE; Windows AIK; Linux.
Для цитирования. Кендыш, И. В. Автоматизированная система по развертыванию операционных систем с использованием ЛВС (PXE СЕРВЕР) / И. В. Кендыш // Литье и металлургия. 2022. № 1. С. 82-85. https://doi. org/10.21122/1683-6065-2022-1-82-85.
AUTOMATED SYSTEM
FOR DEPLOYING OPERATING SYSTEMS
USING LAN (PXE SERVER)
I. V. KENDYSH, OJSC "BSW - Management Company of the Holding "BMC", Zhlobin, Gomel region, Belarus, 37, Promyshlennaya str. E-mail: iv.kendysh@bmz.gomel.by, tel.: +375-2334-56029
PXE is an environment for booting computers using a network card without using hard drives, CDs and other devices used while booting operating systems. By choosing a network boot in the BIOS, it is possible to install the OS / rid of viruses /recover disks /test RAM from the PXE Boot server. Such a tool is irreplaceable in the case of a large number of computers
Keywords. PXE; TFTP; DHCP; Windows PE; Windows AIK; Linux.
For citation. Kendysh I. V. Automated system for deploying operating systems using LAN (PXE SERVER). Foundry production and metallurgy, 2022, no. 1, pp. 82-85. https://doi.org/10.21122/1683-6065-2022-1-82-85.
PXE (англ. Preboot eXecution Environment) - среда для загрузки компьютера с помощью сетевой карты без использования локальных носителей данных (жесткого диска, USB-накопителя и т.п.). Для организации загрузки системы в PXE используются протоколы IP, UDP, BOOTP и TFTP.
PXE-код, обычно находящийся в ПЗУ сетевой карты, получает из сети по протоколу TFTP (получив адрес TFTP-сервера по BOOTP) исполняемый файл, после чего передает ему управление.
Спецификация PXE ограничивает размер загрузчика 32 килобайтами, поэтому иногда используется двухстадийная загрузка, когда первый загрузчик получает и запускает вторичный, который уже получает и запускает образ операционной системы.
Для первоначальной настройки необходимо установить и настроить на Linux-сервере следующие пакеты: dnsmasq; tftp; tftp-server; xinetd.
Dnsmasq - это программа, поддерживающая работу сразу нескольких сетевых сервисов, DNS, DHCP, TFTP. Dnsmasq как сервис имеет ряд преимуществ по сравнению с другими сервисами DNS и DHCP. Во-первых, настройка dnsmasq проста, во-вторых, он нетребователен к ресурсам, в-третьих, он реализует сразу несколько сервисов, в-четвертых, он гибок и позволяет, например, реализовать обращение по именам к компьютерам в локальной сети, причем сделать это просто и быстро.
Минимальный файл конфигурации для PXE, сервер имеет ip 192.168.111.254, шлюзом и TFTP-сервером является он же, PXE файлы лежат в папке /tftpboot:
# Назначаем сетевой интерфейс: interface=eth0
#DNS
domain=WORKGROUP
no-resolv
expand-hosts
# DNS server server=8.8.8.8
# DHCP
#раздаем адреса (диапазон с 50 по 200) dhcp-range=192.168.111.50,192.168.111.200,255.255.255.0,72h dhcp-option=eth0,3,192.168.111.1 dhcp-leasefile=/var/log/dnsmasq.leases
# Включаем TFTP-сервер: enable-tftp
# Задаем путь до файлов загрузки: tftp-root=/tftpboot dhcp-boot=pxelinux.0
Для просмотра выданных IP из пула DHCP отдается команда:
cat /var/log/dnsmasq.leases
Следующий шаг - это syslinux. Необходимо скачать в корень tftp сервера:
cd /tmp
wget https://www.kernel.Org/pub/linux/utils/boot/syslinux/4.xx/syslinux-4.02.tar.gz tar -xf syslinux-4.02.tar.gz cd syslinux-4.02/
find./-name "memdisk" -type f\xargs -I {} cp '{} '/tftpboot find./-name "pxelinux.0"\xargs -I {} cp '{}'/tftpboot find./-name "*.c32"\xargs -I {} cp '{}'/tftpboot
Для проведения настройки необходимо создать конфигурационный файл основного меню и внести начальные настройки, например:
cd /tftpboot/ mkdir pxelinux.cfg cd pxelinux.cfg cat > default
DEFAULT vesamenu.c32
MENU BACKGROUND background.jpg
MENU TITLE PXE boot menu
TIMEOUT 500 LABEL bootlocal
MENU LABEL Boot from HDD MENU DEFAULT LOCALBOOT 0
Вся документация по формированию параметров загрузчиков syslinux и загрузочного меню PXE в частности, находится в текстовых файлах каталога docs архива syslinux. По умолчанию запускается файл vesamenu.c32, который и отображает PXE-меню. В TIMEOUT указывается время ожидания (в 1/10 с), после которого будет произведена загрузка пункта по умолчанию. В MENU TITLE содержится
заголовок меню. Затем идет описание первого пункта меню. Каждому пункту для удобства обращения с ним присваивается метка (LABEL). В MENU LABEL имя метки, которое пользователь увидит при загрузке. MENU DEFAULT означает, что этот пункт из текущего меню будет запущен по умолчанию. Директива LOCALBOOT 0 указывает на то, что надо завершить работу PXE и вернуться к обычной загрузке компьютера. Лучше оставить этот пункт для запуска по умолчанию.
Добавим возможность загрузки утилиты Memtest86, исключительно для примера:
LABEL Memtest
MENU LABEL Run memtest KERNEL memdisk
APPEND iso initrd=images/Memtest86.iso
Ключевой момент - использование memdisk. В этом случае носитель (iso-образ, raw-образ дискеты, образ HDD) полностью копируется в оперативную память компьютера и дальнейшая загрузка происходит с него. Подобным образом можно загружать разнообразные LiveCD, тестовые утилиты.
Для установки Windows по сети, в качестве загрузочных файлов, используется либо pxeboot.0, либо pxeboot.n12. Разница между ними в том, что первый для начала работы потребует нажатие клавиши F12.
Pxeboot загружает файл bootmgr.exe (Windows Boot Manager (диспетчер загрузки)) и передает ему управление. Тот в свою очередь читает свою конфигурацию из файла BCD (boot configuration data (хранилище параметров запуска)) и на основе полученных данных производит загрузку образа загрузочного раздела файловой системы NTFS (boot.sdi) и образа Windows PE.
Далее происходит запуск Windows PE. По завершению стартует программа wpeinit.exe, которая устанавливает драйвера для сетевого адаптера и инициализирует сетевые протоколы.
Если все загрузилось, остается только подключить сетевой диск и с него запустить программу установки setup.exe.
Таким образом, можно создать автоматизированную установку ОС Windows.
Для этого понадобится: установочный диск Windows; WAIK (Windows Automated Installation KIT); программа записи iso-образов. Полностью процесс в настоящей статье описан не будет, отметим только основные этапы.
Этапы создания полностью настроенного образа ОС с установленными приложениями.
• Установка ОС и вход в режим аудита(CTRL+SHIFT+F3 после установки).
• Установка приложений, обновлений и настройка системы.
• Подготовка системы с помощью утилиты sysprep.
• Загрузка в Windows PE (среда предустановки, использующаяся для подготовки к установке операционных систем Windows; образ создается с помощью WAIK) и сохранение образа с помощью утилиты ImageX.
После того, как образ системы настроен и захвачен, можно приступать к созданию загрузочного образа при помощи средств развертывания (WAIK). Прямо в startnet.cmd образа прописывается скрипт, который будет запускать setup.exe настроенного образа ОС, находящийся в сетевой папке сервера 192.168.111.2, который получен в результате предыдущего этапа:
chcp 1251
netsh interface ip set address name="Подключение по локальной сети" source=dhcp
chcp 866
pause
net use z: \\192.168.111.2\win /user: install install
cd /d Z:\sources
setup.exe
Далее необходимо на сервере 192.168.111.2 создать папку win и предоставить к ней общий доступ; скопировать в нее с установочного диска ОС всю папку sources; заменить образ install.wim в каталоге d:\win7\sources на файл, который скопировали ранее с виртуальной машины (настроеный образ Windows); скопировать на PXE - сервер дополнительные файлы для установки Windows (pxeboot.0; boot
configuration data; bootmgr.exe; w^pe^im^^ в котором изменен startnet.cmd); boot.sdi); Создать пункт меню PXE-сервера:
LABEL Windows
MENU LABEL Windows KERNEL /pxeboot.0
Для тестирования включить в BIOS загрузку с сетевой карты и загрузиться с нее. После этого будет получен IP-адрес через DHCP и выполнится pxeboot.0, который запустит Windows PE c файла winpe.wim. Сразу после загрузки Windows PE будет автоматически смонтирован каталог win и с него запустится установка.