Короткое введение.
Установка Windows по сети – грозный набор слов, от которых у вас, наверняка, в зобу дыхание сперло. Мы уже успели изучить всевозможные способы установки любой системы семейства Windows, за исключением лишь VISTA. Эта система по вполне понятным причинам не прижилась в нашем мире, но сейчас не об этом.
Для чего же человечество используется такой метод инсталляции. Установка Windows по сети используется в тех случаях, когда один из компов, по тем или иным причинам, обделен USB-портов, а так же дисководом. То есть в нем нет места для сменного носителя с записанным образом винды. В качестве альтернативы можно выбрать массу методов, к примеру, самый простой – пойти и купить необходимые USB-модули. Но мы пойдем по сложному пути, будем переустанавливать винду по локальной сети.
При такой установке соблюдается довольно сложный принцип работы компьютера. Сетевая карта становится загрузочным аппаратом, своеобразным жестким диском. Как только на материнскую плату будет подано питание, сетевая карта получит свой личный IP-адрес, так же в работу включится стандарт PXE. IP-ник выдается DHC-сервером, а затем этот адрес передается и TFTP-серверу. Сетевая карта начинает загрузку с TFTP, после чего, на пост заступает специальное сетевое приложение, но об это чуть позже.
Цель
Это руководство будет первым из серии руководств, посвященных PXE. В настоящем руководстве мы заложим основы, на которые мы будет опираться в последующих статьях.
- Клиентская машина, на которой вы тестируете, поддерживает загрузку PXE и вы знаете, как ее включить.
- Это руководство было написано и протестировано с использованием Debian Squeeze, Ubuntu Server 9.10 и Linux Mint10. Поэтому предполагается, что у вас также есть система на основе Debian.
- У вас есть возможность посмотреть статью «Как настроит программный RAID» для «Простого файл-сервера» и «Как настроить всю сеть (802.3ad)» , поскольку скорость работы диска и пропускная способность для этого варианта сервера должны быть очень высокими. Настоятельно рекомендуется собирать такую сеть с использованием сервера с высокоотказоустойчивыми сетевыми и дисковыми подсистемами.
- Вы увидите, что в качестве редактора мы используем VIM, это только потому, что я привык к нему… Вы можете пользоваться любым другим редактором, который вам нравится.
LiveCD
- Debian 7 LiveCD
- HirensBootCD
- Trinity Rescue Kit CD
- SystemRescueCD
- Plop Live
Конфиги
в конец default
добавилось LABEL LiveCDs ->
KERNEL vesamenu.c32
APPEND pxelinux.cfg/livecds
livecds
PROMPT 0
UI vesamenu.c32
MENU BACKGROUND background.jpg
MENU TITLE LiveCDs
LABEL
Для загрузки Trinity Rescue Kit CD и Plop Live в /etc/exports нужно добавить строки: /srv/tftp/trk/ 10.0.10.1/255.255.255.0(ro,no_subtree_check,all_squash,insecure,anonuid=1000,anongid=1000)
/srv/tftp/plop/ 10.0.10.1/255.255.255.0(ro,no_subtree_check,all_squash,insecure,anonuid=1000,anongid=1000)
и отправить команду рестарта NFS демону.
Debian 7 LiveCD
Логин / пароль: root / ServerClub
HirensBootCD
Едва ли нуждается в представлении, содержит множество полезных утилит.
Подробнее можно ознакомиться .
Грузится достаточно долго, не работает MiniXP и Linux. Остальные утилиты доступны для использования.
Trinity Rescue Kit CD
Со слов разработчиков, создан для восстановления ОС Windows.
Содержит утилиты для сброса паролей, антивирусы, программу для клонирования «компьютера» по сети(при чем на несколько компьютеров одновременно), а так же многое другое.
Подробнее .
Plop Live
LiveCD с тремя полноценными DE на выбор, а так же необходимым админским софтом .
Итоговый конфигурационный файл основного меню, а так же файл меню антивирусов
default
ui vesamenu.c32
PROMPT 0
menu background background.jpg
menu title ServerClub PXE boot menu
LABEL bootlocal
menu label Boot from first HDD
kernel chain.c32
append hd0 0
timeout 120000
TEXT HELP
The system will boot after time is up.
ENDTEXT
LABEL Windows ->
KERNEL vesamenu.c32
APPEND pxelinux.cfg/windows
LABEL Linux ->
KERNEL vesamenu.c32
APPEND pxelinux.cfg/linux
LABEL FreeBSD ->
KERNEL vesamenu.c32
APPEND pxelinux.cfg/bsd
LABEL VMvare ->
KERNEL vesamenu.c32
APPEND pxelinux.cfg/vmware
LABEL HDD and RAM utils ->
KERNEL vesamenu.c32
APPEND pxelinux.cfg/du
LABEL LiveCDs ->
KERNEL vesamenu.c32
APPEND pxelinux.cfg/livecds
LABEL Antiviruses ->
KERNEL vesamenu.c32
APPEND pxelinux.cfg/av
av
PROMPT 0
UI vesamenu.c32
MENU BACKGROUND background.jpg
MENU TITLE Antivirues
LABEL
Что такое PXE OPROM в BIOS
Рассматривая настройки BIOS своего компьютера, пользователи часто находят в нем пункт Realtek PXE OPROM. Многие задаются вопросом, для чего он нужен. Также в некоторых версиях программного обеспечения материнской платы он может носить иные названия — BootROM, LAN Option ROM, OnBoard LAN Boot ROM, Legacy PXE ROM, Boot From Onboard LAN.
Настройка Legacy PXE Rom в БИОСе
Технология PXE (сокращенно с английского Preboot eXecution Environment), также известная как «Пикси» — это специальная среда для установки или загрузки системы с использованием только сетевой карты. Связь между компьютерами осуществляется по протоколам IP, UDP, BOOTP и TFTP. Сама PXE представляет собой программный код, вшитый в память сетевого адаптера, который позволяет загружать или устанавливать разного вида операционные системы.
Загрузить ОС по сети достаточно сложно, так как для этого потребуется произвести множество подготовительных операций. Только после них компьютер сможет грузиться без использования жесткого диска. Наша же настройка PXE OPROM просто позволяет конкретной системе осуществлять такого вида загрузку или запрещать её, т.е. принимать два значения — «Enabled» (включено) или «Disabled» (отключено).
Отключенная настройка Launch PXE OpROM в БИОСе
Для обычных компьютеров, которым не нужно использовать сеть для включения, эту настройку лучше всего будет деактивировать, так как перед загрузкой ОС компьютер будет вначале пытаться воспользоваться возможностью загрузки по сети. Только после того, как он определит, что такой вариант недоступен, начнется старт Windows с жесткого диска. Следовательно, с активной функцией PXE OPROM увеличивается время включения компьютера.
Функция загрузки при помощи сети используется организациями с большим количеством компьютеров для упрощения работы, а также в целях экономии средств на приобретение жестких дисков.
Кроме этого системные администраторы, обслуживающие большое количество компьютеров при помощи Preboot eXecution Environment, создают загрузочный сервер, на котором находятся все нужные программы для реанимации. Таким образом, не потребуется подключать к компьютеру загрузочные носители для восстановления, а только активировать загрузку по сети и воспользоваться сервером.
На этом наша статья подошла к концу. Теперь вы знаете, что означает настройка PXE OPROM в BIOS материнской платы. Как уже было отмечено, для обычных пользователей данную функцию целесообразнее будет отключить.
Создаем последовательность задач (Task Sequence) для сетевой установки Windows
Последовательность задач SCCM (task sequence) обеспечивает пошаговое выполнение команд и действий по установке ОС, ПО, драйверов, обновлений. Для её создания зайдите в Software Library -> Operation System -> Task Sequences и в контекстном меню выберите Create Task Sequence. В появившемся окне мастер предлагает несколько вариантов:
- Install an existing image package –создание очереди задач для имеющегося wim образа;
- Build and capture a reference operating system image –захват эталонного образа;
- Create a new custom task sequence – создание нового пустого задания (настройка выполняется вручную). Отсутствует очередь задач по умолчанию.
Так как эталонный образ wim образ у вас уже есть, выберите первый пункт. Далее мастер предлагает поэтапно произвести большое количество настроек, но можете указать только минимально необходимые параметры:
- Укажите название задачи и выберите загрузочный PXE образ Boot image x64.wim;
- Выберите созданный ранее эталонный образ Windows 10;
- Установите пароль локального администратора (можно автоматически сменить пароль после добавления компьютера в домен с помощью LAPS);
- Настройте параметры автоматического присоединения в домен AD, выбрав домен и OU, в которую нужно поместить новый компьютер;
- Выберите пользователя, под которым будет осуществляться добавление в домен;
- На шаге State Migration убрать все флажки (Capture user settings and files, Capture network settings, Capture Microsoft Windows settings).
Последовательность задач создана, но она требует от вас корректировки и проверки. Перейдите в режим редактирования Task Sequence, выбрав в контекстном меню пункт Edit.
В дереве справа указан список действий, которые автоматически будут выполнены с компьютером при установке Windows 10 по сети. На 2 и 3 шаге указываются параметры разбиения дисков на разделы. На шаге 2 вы можете удалить все разделы жёсткого диска, созданные по умолчанию, если вы их не используете для восстановления Windows. Далее создаёте новый раздел, называете “C:”, выбираете тип Primary, устанавливаете фиксированный размер 50 Гб (или другой объём), выбрав опцию Use specific size. Выберите что диск нужно отформатировать в файловой системе NTFS (флажок Quick format).
Далее создаёте второй диск, называете “D”, выбираете тип Primary. Чтобы он занял все оставшееся неразмеченное пространство выберите опцию Use a percentage of remaining free space, выберите значение 100, файловую систему NTFS и флажок Quick format.
Таким образом у вас будет создан диск С: с фиксированным размером, а всё оставшееся место уйдёт диску D: (если объём жёсткого диска большой, то можно разбить его на большее количество разделов), которые будут отформатированы автоматически.
3й шаг в нашем примере удаляется, т.к. у нас компьютеры с BIOS. Для компьютеров с UEFI – нужно настраивать дисковые разделы именно в 3 пункте.
На следующем шаге – Apply Operating System – нужно выбрать раздел для установки операционной системы. Проверяете наличие эталонного образа, а внизу окна выбираете установку Windows на:
- Specific disk and partition — конкретный номер диска и номер раздела;
- Specific logical drive letter – указанный логический диск;
- Logical drive letter stored in a variable —
Например, будет второй пункт и диск С: .
Остальные шаги проверяете на отсутствие ошибок. На шаге Apply Windows Settings нужно указать лицензионный ключ (можно указать ключ KMS активации), пароль администратора и часовой пояс. Корректировка доменных (сетевых) настроек происходит в Apply Network Settings, а Apply Device Drivers позволяет добавить драйвера в установку.
Далее новое задание нужно опубликовать. Для этого в контекстном меню выберите пункт Deploy, на первом шаге мастера выбираете коллекцию устройств All Unknown Computers, на 2м шаге параметру Purpose присваиваете значение Available (Available – доступно для выбора, Required – принудительная установка), в параметре Make available to the following выберите Configuration manager clients, media and PXE, остальные шаги можно оставить по умолчанию.
В SCCM коллекцию All Unknown Computers попадают все компьютеры, о которых в SCCM нет никакой информации. Такими ПК могут быть новые или не подключенные к домену.
На этом основные действия по подготовке эталонного образа и настройке SCCM завершены.
Настройка PXELINUX
PXELINUX входит в комплект программ syslinux. Поэтому идем на сайт www.syslinux.org/wiki/index.php/Download и загружаем zip архив с набором загрузчиков syslinux. Открываем загруженный архивный файл и распаковываем файлы pxelinux.0 из директории core и menu.c32 из директории com32/menu. Файл pxelinux.0 является загрузчиком, который передается клиентскому ПК DHCP сервером, а файл menu.c32 отвечает за построение загрузочного меню. Распакованные файлы размещаем в папку, куда установлена программа Tftpd32 (куда указывает путь в поле Base Directory в настройках TFTP).
В папке программы Tftpd32 создаем вложенную папку pxelinux.cfg, а в нем создаем файл default следующего содержания:default menu.c32
gfxmenu /erdpxe
prompt 0
MENU TITLE Boot Menu (select the OS to boot)
MENU AUTOBOOT Windows 7 64bit in # seconds
TIMEOUT 50
TOTALTIMEOUT 3000
LABEL Windows 7 64bit
MENU DEFAULT
KERNEL IPXE.KRN
INITRD win7.ipxe
Думаю излишнем писать подробный комментарий к данному файлу, рассмотрим только две последние строчки:
KERNEL IPXE.KRN — указывает на ядро iPXE, которую нужно загрузить.
INITRD win7.ipxe — указывает на файл скрипта с параметрами iPXE
Указанных настроек PXELINUX вполне достаточно для использования дефолтной конфигурации и можно перейти к дальнейшей настройке iPXE, поэтому остающуюся часть текста решил убрать под спойлер.
Создание отдельного загрузочного меню для каждого ПК
Если в сети существует несколько бездисковых рабочих станций, и нужно чтобы каждый ПК имел доступ только «к своему» iSCSI-диску и не имел доступа к «чужим» дискам, то нам нужно будет создать несколько файлов с загрузочным меню для каждого ПК.
При получении файла конфигурации от TFTP сервера клиент ищет подходящую для себя в следующем порядке:pxelinux.cfg/01-88-99-aa-bb-cc-dd
pxelinux.cfg/C0A800FE
pxelinux.cfg/C0A800F
pxelinux.cfg/C0A800
pxelinux.cfg/C0A80
pxelinux.cfg/C0A8
pxelinux.cfg/C0A
pxelinux.cfg/C0
pxelinux.cfg/С
И если ничего подходящего нет —
pxelinux.cfg/default
Здесь pxelinux.cfg — сама папка с файлами конфигурации.
01-88-99-aa-bb-cc-dd — файл с названием МАС-адрес клиента, в нижнем регистре, разделенный тире, с префиксом 01-.
Соответственно, для каждой бездисковой рабочей станции нам нужно написать «свое» загрузочное меню и разместить в папке pxelinux.cfg с названием файла 01-mac-адрес
клиента, в нижнем регистре. Содержимое этих файлов может отличаться, к примеру, только последней строчкой INITRD win7.ipxe
.
Сегодня автоматизируется все больше задач, для максимальной отдачи серверов все шире используют виртуализацию. Но устанавливать операционки по-прежнему приходится. Каждый делает это по-своему: у кого-то полные карманы различных образов на все случаи жизни, кто-то по старинке носит с собой «барсетку» с дисками, а то и две. Как правило, администраторы выполняют эту работу с невеликим удовольствием. Давай посмотрим, как сократить время на тривиальные задачи, как научить компьютеры устанавливать системы самостоятельно, вообще без участия админа, используя при этом только локальную сеть.
Итак, сегодня мы научимся: устанавливать Windows и Linux по сети, грузить небольшие ISO-образы, полезный софт (всяких там Касперских, Акронис, WinPE, мемтесты), разворачивать тонкие клиенты и рулить ими. Чтобы, например, бухгалтер, работающая с 1С по RDP, не прибила тебя за то, что у нее слетела винда, а отчет нужно было подготовить еще вчера… Или скупой начальник, который не хочет обновлять свой комп, восхитился твоим профессионализмом, когда увидит, как на стареньких компах летает Windows 8… В достижении наших коварных целей нам поможет сервер, предоставляющий загрузку по сети (PXE).
У любого системного администратора в заначке есть универсальный USB-диск для экстренной реанимации компьютера. Согласись, было бы куда лучше иметь ту же функциональность, используя одну лишь сетевую карту. Нельзя при этом не отметить возможность одновременной работы с несколькими узлами сразу. Итак, исходя из наших потребностей у нас есть два пути решения: использовать PXE или LTSP.
LTSP нам не очень подходит: он призван грузить по сети ОС, установленную на самом сервере, что позволяет использовать приложения сервера LTSP. Это не совсем то, что нам нужно. PXE — инструмент для загрузки компьютера по сети без использования локальных носителей данных, так же как и LTSP. PXE позволяет организовать мультизагрузочное меню загрузки, аналогичное универсальному «USB-реаниматору».
Добавляем параметры в меню PXE-сервера
Меню готово. Как видно из параметров в скрипте, на каждом этапе подключается некая сетевая папка. На PXE-сервере, установка и запуск которого были описаны в предыдущей статье, через Samba нужно опубликовать папку, которая будет доступна только для чтения (иначе установщик может стремиться что-нибудь туда запихнуть или перезаписать).
Далее для автоустановок надо подготовить файлы ответов. Забегая вперед, скажу, что благодаря этим самым файлам можно добиться абсолютно любого результата, например реализовать автоустановку с разбивкой первого диска 40/60% с подключением к домену, и дальше все необходимое программное обеспечение можно уже доставить групповыми политиками домена (но это уже совсем другая история).
Imagex.exe /unmount /commit mount
Полученный образ WinPE — winpe.wim копируем на PXE-сервер. Далее в меню загрузки PXE, созданного в , /var/lib/tftpboot/pxelinux.cfg/default подключаем дочерний файл, в котором будет раздел windows.
Label Install Windows
menu passwd qwerty
menu label Install/Boot Windows
kernel boot/vesamenu.c32
append pxelinux.cfg/windows
Menu label WinPE Install Windows All
menu passwd my_password
com32 linux.c32 boot/wimboot
APPEND initrdfile=/images/windows/bootmgr.exe,/images/windows/boot/BCD,/images/windows/boot/boot.sdi,/images/windows/boot/winpe.wim
Доработка Windows PE
В образе winpe.wim есть файл отвечающий за первоначальное иницирование. Используя Far Manager
можно открыть и отредактировать этот файл состоящий всего из одной команды. Адрес файла:
\Windows\System32\startnet.cmd
Чаще всего встречается инструция в которой этот файл содержит подключение сетевого
диска с распакованными образами и меню для установки. Но во время использования меня это
не устроило. Да, в этом случае у нас получается удобное загрузочное меню, а все настройки
лежат в одном файле. Но лично меня это не устраивает из-за того, что я люблю экспериментировать
и мне нужна универсальная система. По этой причине я разделил задачу на две подзадачи.
В startnet.cmd будет простенький скрипт подключающий сетевой диск и запускающий с этого
сетевого диска командный файл autostart.cmd.
Почему именно такой подход? Дело в том, что получить доступ к командному файлу на SMB-шаре
на порядок проще чем вспоминать адрес и имя файла в wim-образе операционной системы. Тем более,
манипулируя файлами и каталогами с программами установки операционных систем, вы всё равно
будете рядом с этим файлом и сможете оперативно вносить изменения.
Но никто не мешает вам объединить оба файла в один.
Содержимое startnet.cmd:
@echo off cls echo. echo Подготовка к запуску. echo Подождите немного... echo. wpeinit echo Подключение сетевого диска. echo. @net use Z: \\192.168.0.1\setup$ pa$$W0rd /USER:server\guest Z: z:\autostart.cmd exit /b
Не забудьте указать пароль и имя пользователя для подключения к SMB-ресурсу.
Так же не забудьте ограничить права этого пользователя лишь чтением и исполнением.
Дело в том, что злоумышленник (даже внутри своей конторы могут быть нежелательные
личности и шутники) может воспользоваться возможностью записи и редактирования файлов
в своих целях. Не забывайте о безопасности никогда.
И так, что ж мы тут имеем? В файле запускается команда wpeinit которая отвечает за
запуск сетевых сервисов и прочих настроечных приблуд. Далее идёт наш код. Я поместил
строку подключения к сетевом ресурсу в невидимую для ползователя область так, что он увидит
факт подключения сетевого ресурса, но не увидит логин и пароль пользователя для подключения.
В какой-то степени защита от дурака, но у простого пользователя не возникнет праздный интерес
воспользоваться полученной информацией. Далее будет произведен запуск командного файла с
сетевого ресурса.
Как мы знаем, с SMB работа происходит значительно быстрее и не будет лишних проблем с
попыткой скачать весь образ установочного диска. Установщих Windows воспользуется только
реально необходимыми ему файлами.
Содержимое z:\autostart.cmd, расположенного в корневой директории нашего ресурса:
@echo off :beginsetup cls echo Выберите интересующий вас пункт: echo. echo 1) Запуск Far manager echo. echo 2) Установка Windows 10 Professional echo. echo 3) Установка Windows 7 Professional echo. echo 4) Установка Windows Server 2016 Standard echo. echo 5) Установка Windows Server 2016 Hyper-V echo. echo Введите номер и нажмите Enter. set /p ID= echo. if %ID%==1 goto :farman if %ID%==2 goto :win10pro if %ID%==3 goto :win07pro if %ID%==4 goto :winsrv2016 if %ID%==5 goto :winsrv2016h if %ID% GTR 3 goto :failure if %ID% LSS 3 goto :failure exit /b :farman echo. echo Запуск установки. z:\Far\far.exe goto :beginsetup :win10pro echo. echo Запуск установки. z:\Windows_10_professional\setup.exe exit /b :win07pro echo. echo Запуск установки. z:\Windows_07_professional\setup.exe exit /b :winsrv2016 echo. echo Запуск установки. z:\Windows_Server_2016\setup.exe exit /b :winsrv2016h echo. echo Запуск установки. z:\Windows_Server_2016_hyperv\setup.exe exit /b :failure cls echo. echo Доступных пунктов не выбрано. echo Вернитесь в предыдущее меню и выберите нужный пункт. echo. pause goto :beginsetup
Осталось распаковать имеющиеся у вас образы операционных систем и
откорректировать файл для запуска установки. Помимо запуска установки операционных
систем можно запускать практически любое программное обеспечение. На основе этого
меню вы можете сделать запуск антивирусов, диагностических программ и собственных сетевых
приложений.
Надеюсь, что эта статья поможет в реализации ваших проектов, автоматизирует установку операционных
систем и создаст базу для дальнейшей автоматизации сетевых услуг.
Тэги: ИТ, Cisco
Отредактировано:2022-09-16 06:24:41
Обзор технологии PXE
Технология PXE (Pre Execution Environment — Среда предварительного исполнения), которая произносится как «Пикси» (Pixie – волшебная пыль), является подходом, который позволяет компьютеру (клиентскому компьютеру) загружаться, используя только свою сетевую карту. Этот метод загрузки был создан еще в 1999 году и если компьютер подключен к сети (и поддерживает этот стандарт), то можно обойти обычную процедуру загрузки (т. е. включение питания -> BIOS -> HD / CD) и сделать некоторые изящные вещи, начиная с поиска и устранения неисправностей, для чего обычно используется живая ОС liveOS, и даже снять образ машины …, но мы забегаем вперед – давайте вернемся к началу.
Когда используется подход PXE, процесс загрузки изменяется с обычного на следующий:
Включение питания -> BIOS -> стек PXE сетевой карты -> программа сетевой загрузки Network Boot Program (NBP), загружаемая с помощью TFTP с сервера в память клиентской машины -> ответственность за выполнение следующего шага возлагается на программу NBP (2-й этап загрузки).
Если использовать программу « PXElinux » NBP, то можно настроить сервер больше, чем просто для загрузки одной программы PXE для наших клиентов. В некотором смысле, это секретный ингредиент, который позволит нам выполнить все вышеперечисленное и даже больше. Для более подробного объяснения всего процесса, его истории и некоторые из имеющихся параметров настройки этой программы и программы gPXE (которая является более развитым клоном первой программы) смотрите эту лекцию на YouTube , предложенную разработчиками этих программ. Кроме того, ниже представлено видео, датированное 2008 годом, рассказывающее о настройке, что позволит быстро перейти к некоторым возможностям загрузки.
Примечание: В этом видео в качестве основы для сервера используется устаревший проект UDA, и аннотации были предназначены для того, чтобы объяснить, что в него были внесены самые новые (на тот момент) дополнения.
Это руководство будет первым из серии руководств, посвященных PXE. В настоящем руководстве мы заложим основы, на которые мы будет опираться в последующих статьях.
Подготовка к установке по сети.
Кстати, в такую же ситуацию же ситуацию периодически попадают сетевые администраторы. Только представьте, бедному программеру необходимо установить винду на 20 машин, а под рукой имеется только один привод. И конечно же, у нас будет ограниченный запас времени.
Установка Windows по сети требует тщательной подготовки. Для начала, вам необходимо подготовить к работе нормально работающий компьютер с предустановленной ОС семейства Windows, патч-корд (или сетевой кабель, о котором все вечно забывают), набор Windows AIK для автоматической установки, программный эмулятор серверов DHCP и TFTP (можно использовать tftpd32). Для того, чтобы установка Windows по сети стартовала успешно, потребуется дистрибутив самой системы, а так же приложение для работы с ISO-файлами.
Syslinux. Ставим загрузчик
В качестве загрузчика будем использовать Syslinux. Последнюю версию можно взять здесь. Распаковываем и кладем в /var/lib/tftpboot следующие файлы: ldlinux.c32, libcom32.c32, pxelinux.0 и lpxelinux.0 и каталог boot, в который складываем chain.c32, ldlinux.c32, libcom32.c32, libcom32.elf, libutil.c32, linux.c32, memdisk, menu.c32, vesamenu.c32 (menu.c32 — только текстовое меню, vesamenu.c32 позволяет украсить меню, например добавив фон). Файл меню загрузки по умолчанию должен находиться в /var/lib/tftpboot/pxelinux.cfg/default и иметь вид
menu title Boot menu PXE DEFAULT boot/menu.c32 PATH boot/ TIMEOUT 50 label boothdd MENU LABEL Boot from first hard drive COM32 chain.c32 APPEND hd0
На этом этапе загрузчик должен работать и иметь единственный пункт меню «Загрузка с первого жесткого диска». Далее необходимо создать подменю. Чтобы не путаться и не городить огромные файлы, рекомендую вынести подпункты в отдельные файлы меню, например так:
label linux menu passwd qwerty menu label Install/Boot Linux kernel boot/menu.c32 append pxelinux.cfg/linux
Все, что относится к разделу меню Install/Boot Linux, вынесем в отдельный файл /var/lib/tftpboot/linux. Аналогично выносятся другие пункты меню. Остальные параметры загрузки рассмотрим при добавлении каждого пункта/продукта.
Создайте мастер-файл
Мастер-файл позволит делать глобальные изменения во внешнем виде меню без повторного ввода их в отдельном порядке снова и снова. Такие особенности, как фоновый рисунок, используемый по умолчанию, стили границ, позиции и т.д., все это будет объединено в этом файле master.cfg.
Создайте файл:
sudo vim /tftpboot/pxelinux.cfg/master.cfg
Сделайте так, чтобы его содержание было следующим:
MENU BACKGROUND fog/genie.png menu color screen 37;40 #80ffffff #00000000 std menu color border 30;44 #9370db #00000000 std menu color title 1;36;44 #ff8c00 #00000000 std menu color unsel 37;44 #ffffffff #00000000 std menu color hotkey 1;37;44 #ffffffff #00000000 std menu color sel 7;37;40 #4eee94 #9370db all menu color hotsel 1;7;37;40 #e0400000 #20ff8000 all menu color disabled 1;30;44 #60cccccc #00000000 std menu color scrollbar 30;44 #40000000 #00000000 std menu color tabmsg 31;40 #90ffff00 #00000000 std menu color cmdmark 1;36;40 #c000ffff #00000000 std menu color cmdline 37;40 #c0ffffff #00000000 std menu color pwdborder 30;47 #80ffffff #20ffffff std menu color pwdheader 31;47 #80ff8080 #20ffffff std menu color pwdentry 30;47 #80ffffff #20ffffff std menu color timeout_msg 37;40 #80ffffff #00000000 std menu color timeout 1;37;40 #c0ffffff #00000000 std menu color help 37;40 #c0ffffff #00000000 std menu color msg07 37;40 #90ffffff #00000000 std MENU MARGIN 0 MENU PASSWORDMARGIN 3 MENU ROWS 15 MENU TABMSGROW 21 MENU CMDLINEROW 20 MENU PASSWORDROW 11 MENU TIMEOUTROW 20 MENU HSHIFT 0 MENU VSHIFT 0
В конфигурации, приведенной выше, будут созданы фиолетовые границы и выделение текста;, если вы хотите, чтобы внешний вид был другой, просто измените значения.
Чтобы задать фоновый рисунок, поместите картину в каталог /tftproot и укажите для MENU BACKGROUND относительный путь к рисунку (мы рекомендуем использовать изображения с разрешением 640*480). Например полный путь к рисунку, сконфигурированному выше, будет /tftproot/fog/bg.png.
Acronis
Продукты Acronis загружаются аналогично инсталляторам Linux-систем. Скачал в Сети первый попавшийся образ Acronis, исключительно в научных целях. Распаковал. Нас интересуют только два каталога: ADD12 и ATI2015. Внутри каждого каталога видим по два файла с одинаковым именем и разным расширением. Это сделано для загрузки на 32-битных и x64-системах. Если открыть файл menu.lst того же образа, можно посмотреть, что чему соответствует. Для удобства складываем True Image и Disk Director аналогичным образом. Создаем папку acronis в рабочем каталоге (/var/lib/tftpboot). В него копируем ADD12 и ATI2015 со всем содержимым. Для удобства продукты Acronis выносим в отдельный раздел меню, так же как и раздел Linux. В pxelinux.cfg/default добавляем:
label linux menu passwd qwerty menu label Install/Boot Linux kernel boot/menu.c32 append pxelinux.cfg/acronis
Файл acronis приводим к такому виду:
label acronis1 menu label Acronis Disk Director 2020 kernel /acronis/ADD12/1.krn vga=791 quiet initrd /acronis/ADD12/1.fs label acronis2 menu label Acronis Disk Director x64 kernel /acronis/ADD12/2.krn vga=791 quiet initrd /acronis/ADD12/2.fs label acronis3 menu label Acronis True Image 2020 kernel /acronis/ATI2015/1.krn vga=791 quiet initrd /acronis/ATI2015/1.fs label acronis4 menu label Acronis True Image 2020 x64 kernel /acronis/ATI2015/2.krn vga=791 quiet initrd /acronis/ATI2015/2.fs
Установка — трудное начало с использованием системы FOG
FOG является свободным решением, предназначенным для клонирования компьютеров и имеющая открытый исходный код, которое было создано Чаком Суперски и Цзянь Чжаном ( Chuck Syperski и Jian Zhang ). FOG берет обычно используемое программное обеспечение (например, Apache, MySQL и tftpd-hpa упомянуть некоторые из них) и упаковывает их в виде свободного и самодостаточного решения PCLM (PC Lifecycle management), предназначенного для управления жизненным циклом ПК. Нужно упомянуть, что с помощью такого свободного решения PCLM можно с помощью единого центральный веб-интерфейса выполнять резервное копирование состояния компьютера путем создания его образа, развертывать программы и настройки (например, Firefox, Office, принтеры и т. д.), а также политики конфигурирования (например, настроек автоматического завершения сессии и экранной заставки).
Примечание: интервью с Чаком Суперски и Цзянь Чжаном о FOG доступно на Tightwad Tech .
Использование FOG в качестве основы для вашего сервера PXE является хорошим способом иметь в наличии все необходимые составляющие, например, TFTP и, если требуется, DHCP без необходимости устанавливать и настраивать их вручную, при одновременном предоставлении вам в качестве бонуса всех функций пакета FOG.
Поскольку наша цель состоит в том, чтобы добавить новые функции к этой уже большой системе, мы не будем вдаваться в детали того, как пользоваться самим пакетом FOG и не будем рассматривать процедуру его установки. Вики пакета FOG , причем как текст, так и видео how-tos , является достаточным для получения подробной информации в том случае, если вы хотите разобраться детально. В общем, шаги следующие:
- Загрузите последнюю версию пакета FOG из sourceforge в каталог, созданный на предыдущем шаге.
- Разархивируйте пакет и начните установку.
- Установщик задаст вам несколько вопросов:
- What version of Linux would you like to run the installation for? (Для какой версии вы хотите запустить инсталляцию?) – 2 (опять же, при условии, что используется система, базирующаяся на Debian)
- What type of installation would you like to do? (Какой вариант инсталляции вы хотите выполнить?) – Нажмите Enter
- What is the IP address to be used by this FOG Server? (Какой адрес IP будет использоваться сервером FOG?) [адрес IP сервера, обнаруженного на eth0 ] – Нажмите Enter.
- Would you like to setup a router address for the DHCP server? (Хотели бы вы настроить адрес маршрутизатора для сервера DHCP) [Y/n] – Нажмите Enter.
- Would you like to setup a DNS address for the DHCP server and client boot image? (Хотели бы вы настроить адрес DNS для сервера DHCP и клиента загружаемого образа?) [Y/n] – Нажмите Enter.
- Would you like to change the default network interface from eth0? If you are not sure, select No. (Хотели бы вы изменить используемый по умолчанию сетевой интерфейс eth0? Если не уверены, то выберите вариант No) [y/N] – Нажмите Enter.
- Would you like to use the FOG server for dhcp service? (Хотели бы вы использовать сервер FOG в качестве сервиса dhcp?) [Y/n] – Нажмите Enter (* – см. примечание ниже).
- This version of FOG has internationalization support, would you like to install the additional language packs? (В настоящей версии FOG имеется поддержка интернационализации, хотели бы вы , чтобы установить дополнительные языковые пакеты?) [Y/n] – Нажмите n.
- Are you sure you wish to continue? (Вы уверены, что хотите продолжить?) (Y/N) – Нажмите Y.
- Acknowledge and follow the on screen instructions for “MySQL“. (Подтвердите и следуйте инструкциям пакета «MySQL»)
- Leave the MySQL password blank for the root account. (Для аккаунта root оставьтепароль для MySQL пустым )
- Would you like to notify the FOG group about this installation? (Хотели бы вы уведомить группу FOG об этой инсталляции?) – Нажмите Y (рекомендуется)
Изображение взято из FOG wiki.
Перейдите в вашем браузере по адресу пакета FOG и следуйте инструкциям, выдаваемым на на экран.
Итог
В результате работы скриптов у получается следующая структура каталогов:
1234567891011121314 |
+—fwfiles| efisys.bin| etfsboot.com| +—media+—mount \—PXE | bootmgr.exe | pxeboot.0 | winpeamd64.wim | \—Boot boot.sdi BCD |
Настройка сервера загрузки
Копируем содержимое каталога PXE в корень tftp каталога сервера загрузки
Так как windows использует другой разделитель для своих путей, то нам необходимо сделать карту символов для tftp сервера, для этого в файле конфигурации /etc/default/tftp-hpa вносим изменения и указываем путь к файлу с картой:
Сервис tftpd-hpa
123456 | # /etc/default/tftpd-hpa TFTP_USERNAME=»nobody» TFTP_DIRECTORY=»/srv/template» TFTP_ADDRESS=»0.0.0.0:69″ TFTP_OPTIONS=»—secure -v -c -m /srv/template/tftpd.remap» |
Создаем файл tftpd.remap с таким содержимым:
1 | rg \\ |
Это правило будет заменять все обратные слешы на прямые, затем помещаем этот файл также в корень tftp сервера (чтобы нам легко было изменить в случае чего)
Перезапускаем tftp-hpa сервер
1 | systemctl restart tftpd-hpa |
Для установки нам еще понадобится сервер samba,в debian и убунту он ставится командой
1 | apt install samba |
в конфигурационном файле /etc/samba/smb.conf добавляем секцию описывающую наш общий каталог:
1234 |
image path = srvtemplate read only = no guest ok = yes |
Образ Window 7 и установовчный скрипт setup.bat
Теперь распаковываем образ с win7 и помещаем каталог sources в публичный каталог samba.
Создаем скрипт start.bat, в котором запускаем програму setup.exe из распакованного sources
1 | Z:\win7x64\setup.exe |
Последнее что нам осталось — это прописать в меню загрузки пункт с winpe:
123 | default Winpe label Winpe kernel pxeboot.0 |
Скрипты в GitHub
После этого у нас загрузившись через PXE начнется загрузка WinPE: