Загрузка pxe из другой подсети. AOMEI PXE Boot: Загрузка компьютеров по сети из файла образа диска. Подготовка загрузочных файлов Windows для PXE

  • 25.01.2022

Что ж, пришло время продолжить загрузить по сети еще что-нибудь интересное и, самое главное, полезное. В мы рассмотрели запуск программ Acronis, установку Debian/Ubuntu Linux, загрузку маленьких ISO и запуск готовых WIM-образов.

Итак, планы на сегодня!

  1. Установка Windows в ручном и автоматическом режимах.
    1. Сборка WIM-образа.
    2. Подготовка файла ответов.
  2. Запуск ERD Commander (MSDaRT).
  3. Бонусом реализуем запуск установки Debian с дальнейшей установкой по SSH.

Начнем с Windows

WARNING

Все дальнейшие действия, связанные с подготовкой Windows, выполняются в среде Windows.

Первым делом необходимо подготовить среду WinPE, с которой и будем запускать установки различных систем семейства Windows. Для этого нам потребуется пакет Windows AIK, скачать который можно бесплатно с официального сайта Microsoft.


После установки пакета Windows AIK открываем консоль «Командная строка средств развертывания». Скопируем WIM-образ и загрузчик и смонтируем его в систему:

Copype.cmd amd64 c:\winpe mkdir c:\pe\win\boot imagex /mountrw winpe.wim 1 mount xcopy c:\winpe\mount\windows\boot\pxe\pxeboot.n12 c:\npe\win xcopy c:\winpe\mount\windows\boot\pxe\bootmgr.exe c:\pe\win xcopy c:\winpe\iso\boot\boot.sdi c:\pe\win\boot

Скрипт с меню WinPE запускается файлом startnet.cmd . Для корректного отображения кириллицы надо сменить кодировку этого файла на CP866. Следующим шагом нужно поправить по необходимости файл скрипта.

Добавляем параметры в меню 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 7 Pro. Для подготовки файла ответов потребуется файл install.wim, который можно взять на установочном диске Windows 7 в папке source. Хватаем его, копируем в удобное доступное место. Далее запускаем Windows System Image Manager.

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «сайт», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score!

Напоминаем, что попытки повторить действия автора могут привести к потере гарантии на оборудование и даже к выходу его из строя. Материал приведен исключительно в ознакомительных целях. Если же вы собираетесь воспроизводить действия, описанные ниже, настоятельно советуем внимательно прочитать статью до конца хотя бы один раз. Редакция 3DNews не несет никакой ответственности за любые возможные последствия.

Помните, мы когда-то рассматривали создание универсальной USB-«аптечки» для экстренной починки компьютера? В последней статье мы познакомились с загрузкой по сети и программой DRBL . Ну а в этот раз мы займёмся созданием аналога мультизагрузочного носителя, только загружаться мы будем не с флешки, а по сети — с помощью PXE. Делается это довольно просто. Как обычно, нам понадобится машина под управлением Ubuntu Server 11.10 с двумя сетевыми картами, которая будет исполнять роль сервера. В BIOS клиентских машин должна быть включена поддержка сетевой загрузки.

Дабы упростить себе задачу и не возиться по отдельности с установкой и настройкой различных сетевых служб вроде DHCP- и TFTP-сервера, мы воспользуемся более универсальным решением — dnsmasq. Это лёгкий DNS/DHCP/TFTP-сервер, который прекрасно подходит для сетевой загрузки машин. Как и в прошлый раз, договоримся, что сетевой интерфейс eth0 автоматически получает IP-адрес от роутера и имеет доступ в Интернет. В свою очередь eth1 смотрит во внутреннюю сеть и имеет статический IP-адрес 192.168.0.1. Отредактируйте сетевые настройки в файле /etc/network/interfaces с помощью текстового редактора nano, если вы этого ещё не сделали.

Sudo nano /etc/network/interfaces

В конце файла добавим настройки интерфейса eth1 и сохраним его (F2, Y, Enter).

Auto eth1 iface eth1 inet static address 192.168.0.1 netmask 255.255.255.0

Если необходимо дать доступ в Сеть для локальных клиентов, то придётся сделать ещё кое-что. Во-первых, раскомментировать (убрать # в начале) строчку net.ipv4.ip_forward=1 в файле /etc/sysctl.conf. Во-вторых, выполнить пару команд. Последнюю команду надо добавить в конец файла /etc/rc.local перед строчкой exit 0 , чтобы проброс Сети запускался при старте.

Sudo sysctl -p sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Теперь надо установить dnsmasq, а также несколько утилит для облегчения работы — файловый менеджер Midnight Commander и утилиты для распаковки ISO-образов и архивов ZIP/RAR/7ZIP.

Sudo apt-get install dnsmasq mc genisoimage unzip unrar p7zip-full

Приступаем к настройке dnsmasq.

Sudo nano /etc/dnsmasq.conf

Добавляем в самом конце следующие строки:

Interface=eth1 dhcp-range=192.168.0.10,192.168.0.100,255.255.255.0,24h server=8.8.8.8 enable-tftp tftp-root=/pxe dhcp-boot=pxelinux.0

Что есть что? Параметр interface указывает на то, с каким сетевым интерфейсом будет работать dnsmasq. В dhcp-range первые два параметра указывают начало и конец диапазона выдаваемых клиентским компьютерам адресов, затем идёт маска подсети и время аренды адресов. В поле server указываются IP-адреса вышестоящих DNS-серверов (например, провайдера), но при желании можно воспользоваться Google DNS или OpenDNS. Директива enable-tftp включает встроенный TFTP-сервер, а в tftp-root указывается корневой каталог для него. Наконец, в dhcp-boot прописывается загрузчик, который будет отдаваться по сети.

Сохраним настройки и перезапустим сервер, а также создадим необходимые папки и запустим Midnight Commander (mc), где и продолжим основную работу. В /pxe/images/ будут храниться образы утилит или дистрибутивов, которые будут загружаться через локальную сеть. Каталог /pxe/pxelinux.cfg предназначен для хранения настроек PXE.

Sudo mkdir -p /pxe/images/ sudo mkdir /pxe/pxelinux.cfg sudo service dnsmasq restart sudo mc

Первым делом надо получить загрузочные программы из проекта syslinux . Скачайте наиболее свежий архив в домашнюю папку. Команды можно набирать прямо в mc или для удобства переключаться между консолью и панелями сочетанием клавиш Ctrl+O. Качать файлы удобнее всего программой wget. Например, вот так:

Wget http://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-4.05.tar.gz

Входим в скачанный архив, просто переместив выделение к нему и нажав Enter. Из него в директорию /pxe надо скопировать несколько файлов — pxelinux.0 из папки /core, menu.c32 из /com32/menu и memdisk из одноимённого каталога.

Начинаем потихоньку заполнять настройки по умолчанию pxelinux.

Sudo nano /pxe/pxelinux.cfg/default

Добавим в этот файл следующие строки:

DEFAULT menu.c32 TIMEOUT 600 MENU TITLE PXE BOOT MENU LABEL HDDBoot MENU LABEL Local Boot MENU DEFAULT LOCALBOOT 0

Вообще вся документация по формированию параметров загрузчиков syslinux, и загрузочного меню PXE в частности, находится в текстовых файлах каталога docs архива syslinux. Разберём те параметры, которые мы только что использовали. По умолчанию запускается файл menu.c32, который и отображает наше PXE-меню. В TIMEOUT указывается время ожидания (в 1/10 с), после которого будет произведена загрузка пункта по умолчанию. В MENU TITLE содержится заголовок нашего меню. Туда можно вписать всё, что душе угодно.

Затем идёт описание первого пункта меню. Каждому пункту для удобства обращения с ним присваивается метка (LABEL). В MENU LABEL имя метки, которое пользователь увидит при загрузке. MENU DEFAULT означает, что этот пункт из текущего меню будет запущен по умолчанию. Ну а директива LOCALBOOT 0 указывает на то, что надо завершить работу PXE и вернуться к обычной загрузке компьютера. Лучше оставить этот пункт для запуска по умолчанию.

Разнообразим наш мультизагрузчик некоторыми утилитами. Возьмём, к примеру, известнейшую программу для тестирования памяти Memtest86+ . Скачиваем с сайта архив с Pre-Compiled Bootable Binary. Сохраняем из него файл memtest.bin как memtest (без расширения!) в папку /pxe/images. Здесь мы сталкиваемся сразу с двумя особенностями. Во-первых, для набора syslinux ряд файлов (.0, .bin, .bs и так далее) должны иметь строго определённый формат. Тот же.bin для isolinux читается как загрузочный сектор CD, а memtest.bin таковым не является. Во-вторых, этот файл напрямую поддерживает загрузку с помощью syslinux, поэтому мы можем смело указать его в качестве запускаемого «ядра».

LABEL Memtest86+ MENU LABEL Memtest86+ KERNEL images/memtest

Ещё один полезный вариант загрузки — использование memdisk . В этом случае носитель (iso-образ, raw-образ дискеты, образ HDD) полностью копируется в оперативную память компьютера и дальнейшая загрузка происходит с него. Вот пример для запуска KolibriOS . Из архива с дистрибутивом надо скопировать файл kolibri.img в папку /pxe/images, а в /pxe/pxelinux.cfg/default дописать нижеследующие строки.

LABEL Kolibri MENU LABEL KolibriOS KERNEL memdisk APPEND initrd=images/kolibri.img


Можно поступить «суровее» — поставить в загрузку Hiren"s Boot CD . Уже можно догадаться, что iso-образ надо сохранить как /pxe/images/hirens.iso. На клиентской машине придётся подождать минуту-другую, пока полугигабайтный iso скопируется в память. Естественно, что на самом ПК должен быть хотя бы один гигабайт RAM. Зато после загрузки работа с Hiren"s Boot CD крайне быстра. Впрочем, таких экстремальных вариантов лучше, наверное, избегать.

LABEL Hirens MENU LABEL Hiren"s Boot CD KERNEL memdisk APPEND iso initrd=images/hirens.iso


Возьмём пример посложнее — загрузим Clonezilla Live через PXE. Создаём папку /pxe/images/clonezilla. Туда надо будет скопировать все файлы из папки /live, которая лежит в ISO-образе. В настройках мы указываем загрузку ядра Linux (vmlinuz), а в APPEND передаём ему параметры. Их можно подсмотреть в файле isolinux/isolinux.cfg внутри ISO-образа (ключи ocs_* относятся непосредственно к Clonezilla, а не ядру как таковому). В нашем случае отличия от него будет немного — надо только указать, что файл с образом системы в Squashfs следует забрать при загрузке с TFTP-сервера.

LABEL Clonezilla MENU LABEL Clonezilla KERNEL images/clonezilla/vmlinuz APPEND initrd=images/clonezilla/initrd.img boot=live config noprompt noswap nomodeset nolocales/nosplash edd=on vga=788 ocs_live_run="ocs-live-general" ocs_live_extra_param="" ocs_live_keymap="" ocs_live_bash="no" ocs_lang="" fetch=tftp://192.168.0.1/images/clonezilla/filesystem.squashfs TEXT HELP Clonezilla Live — Boot to RAM ENDTEXT

Внимание! Всё, что находится после APPEND, является одной-единственной строкой без переносов. Текст между директивами TEXT HELP и ENDTEXT будет показан в качестве подсказки при выборе соответствующего пункта загрузочного меню. Аналогичным образом добавляются в загрузку и другие дистрибутивы или утилиты на основе Linux. Попробуйте в качестве разминки прописать настройки для легковесного дистрибутива SliTaz .

LABEL Slitaz MENU LABEL SliTaz Linux KERNEL /boot/bzImage APPEND initrd=/boot/rootfs4.gz,/boot/rootfs3.gz,/boot/rootfs2.gz,/boot/rootfs1.gz rw root=/dev/null vga=normal autologin


Как видите, всё довольно просто и достаточно гибко настраивается. Для дальнейшего изучения PXE-загрузки на базе Ubuntu Server неплохо было бы ознакомиться с wiki syslinux и документацией, которая прилагается в архиве к этой утилите. Из интересных решений с использованием PXE можно почитать, к примеру, про сетевую установку Windows 7 без применения RIS/WDS. А из полезных дополнений стоит присмотреться к дистрибутиву Thinstation для создания тонких клиентов, а также к менеджеру загрузки Plop . Несомненно, пригодятся утилиты для тестирования «железа» и диагностики проблем, для восстановления данных и создания бекапов, для… В общем, дело за вами. Удачи!

PXE

 Исполнительное окружение предварительной загрузки (Preboot Execution Environment , PXE , произносится “пикси”) представляет собой процесс загрузки операционной системы по сети. Его можно сравнить с загрузкой LiveCD с удаленного CD-привода.

Данный метод загрузки требует:

    сервер для хранения файлов, работающий по протоколам DHCP и TFTP (можно запустить каждый протокол на отдельном сервере);

    клиент с загрузчиком PXE в BIOS. Может не иметь жесткого диска.

Шаг 1. Настраиваем сервер PXE

PXE-сервер включает:

    DHCP-сервер для соединения с клиентами;

    файл загрузки DHCP для настройки клиентов;

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

SliTaz LiveCD можно использовать в качестве PXE-сервера. Для этого запустите приложение Netbox (из меню Система).

    На вкладке Statip IP нажмите Start .

    • Появится окно DHCP-сервера, который не может использовать DHCP для получения информации об IP.

    На вкладке Server выберите вкладку INETD и удостоверьтесь, что строка tftpd в файле /etc/initd.conf не закомментирована . Это настройки по умолчанию. Нажмите Start .

    • Запустится сервер TFTP, который будет загружать SliTaz LiveCD по сети.

    На той же вкладке Server выберите вкладку PXE .

    Отредактируйте настройки согласно вашим опциям загрузки.

    • Этим вы автоматически обновите конфигурацию DHCP-сервера.

    На вкладке Server выберите вкладку DHCP . Приведите настройки в соответствие с конфигурацией вашей сети. Перед этим мы добавили строки boot_file и siaddr . Нажмите Start .

    • Запустится DHCP-сервер. Если клиенты не могут получить IP-адрес, проверьте настройки этого сервера.

    Убедитесь, что файлы bzImage и rootfs.gz находятся в директории /boot на LiveCD.

Шаг 2. Настраиваем клиент PXE

Компьютеры последних поколений со встроенной поддержкой Ethernet имеют BIOS, поддерживающий PXE. Проверьте эту опцию в меню BIOS и убедитесь, что она активирована. Для перехода в настройки BIOS понадобится нажать соответствующую клавишу после включения компьютера (например, F12).

Если ваш компьютер не поддерживает загрузку через PXE, вы можете использовать на нем SliTaz в качестве клиента. Создайте загрузочный CD-ROM или дискету утилитой Boot Floppy/CDROM в меню Система .

На вкладке PXE Network выберите Write floppy. Тем самым вы сможете загружать систему на компьютере клиента.

SliTaz LiveCD содержит настройки для загрузки операционной системы через Интернет. Это может быть полезно при использовании более новой версии SliTaz со старого носителя.

Чтобы начать сетевую загрузку, в момент вывода начального приглашения SliTaz введите команду

Только и всего!

Дальнейшую информацию об использовании Интернет-соединения при загрузке SliTaz см. на домашней странице сетевой загрузки SliTaz .

Вам также понадобится DHCP-сервер для получения IP-адреса, маски подсети и адреса шлюза, как и при настройке обычного соединения - для этого подойдет обычный домашний роутер.

Если у вас нет устройства, которое можно приспособить под DHCP-сервер, вам все равно понадобятся IP-адрес, маска подсети, адрес шлюза и, возможно, адрес DNS .

Title Slitaz Web kernel /boot/gpxe ip=192.168.0.12/24 gw=192.168.0.1 dns=192.168.0.1 url=http://mirror.slitaz.org/pxe/pxelinux.0

Title Slitaz Web kernel /boot/gpxe ip=192.168.0.12/24 gw=192.168.0.1 dns=192.168.0.1 url=ip=192.168.0.12/24 gw=192.168.0.1 dns=192.168.0.1 url=http://mirror.slitaz.org/pxe/pxelinux.0

При таком способе загрузки доступны исключительно следующие опции:

    nodhcp (поможет избежать ошибку таймаута по DHCP)

Дополнительная настройка процесса загрузки

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

Распределенная загрузка через PXE и PROM (предшествует PXE)

    установите gpxe.exe в /jffs/boot

# echo "dhcp-boot=gpxe.pxe" >> /tmp/dnsmasq.conf

Запустите сервер tftp для вашей локальной сети (например, 192.168.0.1/24):

# /jffs/usr/sbin/tftpd 192.168.0.1 /jffs/boot

Изменяем домашнюю страницу GPXE-загрузки

$ dd bs=1 skip=519 count=255 if=gpxe 2> /dev/null | strings $ echo -n "http://myurl.org/myboot" | cat - /dev/zero | dd conv=notrunc bs=1 seek=519 count=255 of=gpxe $ echo -n "ip=192.168.0.10/24 gw=192.168.0.1 dns=192.168.0.1 url=http://myurl.org/myboot" | cat - /dev/zero | dd conv=notrunc bs=1 seek=519 count=255 of=gpxe $ dd if=/dev/zero conv=notrunc bs=1 seek=519 count=255 of=gpxe

Меняем домашнюю страницу для gpxe.exe

$ dd bs=1 skip=5 count=255 if=gpxe.pxe 2> /dev/null | strings

$ echo -n "http://myurl.org/myboot" | cat - /dev/zero | dd conv=notrunc bs=1 seek=5 count=255 of=gpxe.pxe

$ dd if=/dev/zero conv=notrunc bs=1 seek=5 count=255 of=gpxe.pxe

Использование нескольких ссылок при работе с загрузочными серверами

Вот пример для текущих загрузочных серверов SliTaz:

$ echo -n "http://mirror.slitaz.org/pxe/pxelinux.0,http://mirror.switch.ch/ftp/mirror/pxe/pxelinux.0,http: download.tuxfamily.org/slitaz/pxe/pxelinux.0" | cat - /dev/zero | dd conv=notrunc bs=1 seek=519 count=255 of=gpxe

Сегодня автоматизируется все больше задач, для максимальной отдачи серверов все шире используют виртуализацию. Но устанавливать операционки по-прежнему приходится. Каждый делает это по-своему: у кого-то полные карманы различных образов на все случаи жизни, кто-то по старинке носит с собой «барсетку» с дисками, а то и две. Как правило, администраторы выполняют эту работу с невеликим удовольствием. Давай посмотрим, как сократить время на тривиальные задачи, как научить компьютеры устанавливать системы самостоятельно, вообще без участия админа, используя при этом только локальную сеть.

Итак, сегодня мы научимся: устанавливать Windows и Linux по сети, грузить небольшие ISO-образы, полезный софт (всяких там Касперских, Акронис, WinPE, мемтесты), разворачивать тонкие клиенты и рулить ими. Чтобы, например, бухгалтер, работающая с 1С по RDP, не прибила тебя за то, что у нее слетела винда, а отчет нужно было подготовить еще вчера... Или скупой начальник, который не хочет обновлять свой комп, восхитился твоим профессионализмом, когда увидит, как на стареньких компах летает Windows 8... В достижении наших коварных целей нам поможет сервер, предоставляющий загрузку по сети (PXE).

У любого системного администратора в заначке есть универсальный USB-диск для экстренной реанимации компьютера. Согласись, было бы куда лучше иметь ту же функциональность, используя одну лишь сетевую карту. Нельзя при этом не отметить возможность одновременной работы с несколькими узлами сразу. Итак, исходя из наших потребностей у нас есть два пути решения: использовать PXE или LTSP.

LTSP нам не очень подходит: он призван грузить по сети ОС, установленную на самом сервере, что позволяет использовать приложения сервера LTSP. Это не совсем то, что нам нужно. PXE - инструмент для загрузки компьютера по сети без использования локальных носителей данных, так же как и LTSP. PXE позволяет организовать мультизагрузочное меню загрузки, аналогичное универсальному «USB-реаниматору».


Что будем реализовывать?

Началось все с необходимости иметь под рукой инструмент для удаленной установки Ubuntu/Debian Server по сети, с возможностью загрузки Live CD маленькой системы, вроде SliTaz или Kolibri OS.
Как говорится, аппетит приходит во время еды: намеченное не успели реализовать, а к плану добавился еще ряд «хотелок». В итоге список получился весьма внушительным.

  1. Тонкие клиенты на базе Thinstation Linux.
  2. Раздел Linux.
    1. Установка Ubuntu 14.04 x86.
    2. Установка Ubuntu 14.04 x64.
    3. Установка Ubuntu 12.04 x86.
    4. Установка Ubuntu 12.04 x64.
  3. Раздел Windows.
    1. Установка Windows 2012.
    2. Установка Windows 7.
  4. Acronis.
    1. Windows PE с пакетом полезного ПО.
    2. Acronis True Image.
      1. Legacy BIOS.
      2. UEFI.
    3. Acronis Disk Director.
      1. Legacy BIOS.
      2. UEFI.
  5. Касперский Rescue v 10.
  6. ERD Commander от 5 до 8 через ISO-образ.
  7. Memtest.

Собираем все в кучу и взлетаем

В качестве дистрибутива для сервера выбор пал на Ubuntu Server 14.04.2 LTS. Можно остановиться на любой другой ОС, разница будет только в синтаксисе. Итак, приступим. Нам потребуется TFTP, DHCP (необязательно установленный на этом же сервере, в роли DHCP-сервера может выступить роутер), сервис для организации сетевой файловой системы NFS. Рассматривать будем только те настройки, которые нас интересуют в рамках темы. Первым делом установим все необходимое, предварительно сделав все обновления:

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «сайт», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score!

Обзор технологии 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. В настоящем руководстве мы заложим основы, на которые мы будет опираться в последующих статьях.

  • Клиентская машина, на которой вы тестируете, поддерживает загрузку PXE и вы знаете, как ее включить.
  • Это руководство было написано и протестировано с использованием Debian Squeeze, Ubuntu Server 9.10 и Linux Mint10. Поэтому предполагается, что у вас также есть система на основе Debian.
  • У вас есть возможность посмотреть статью «Как настроит программный RAID» для «Простого файл-сервера» и «Как настроить всю сеть (802.3ad)» , поскольку скорость работы диска и пропускная способность для этого варианта сервера должны быть очень высокими. Настоятельно рекомендуется собирать такую сеть с использованием сервера с высокоотказоустойчивыми сетевыми и дисковыми подсистемами.
  • Вы увидите, что в качестве редактора мы используем VIM, это только потому, что я привык к нему... Вы можете пользоваться любым другим редактором, который вам нравится.

Установка — трудное начало с использованием системы FOG

Использование FOG в качестве основы для вашего сервера PXE является хорошим способом иметь в наличии все необходимые составляющие, например, TFTP и, если требуется, DHCP без необходимости устанавливать и настраивать их вручную, при одновременном предоставлении вам в качестве бонуса всех функций пакета FOG.

Поскольку наша цель состоит в том, чтобы добавить новые функции к этой уже большой системе, мы не будем вдаваться в детали того, как пользоваться самим пакетом FOG и не будем рассматривать процедуру его установки. Вики пакета FOG , причем как текст, так и видео how-tos , является достаточным для получения подробной информации в том случае, если вы хотите разобраться детально. В общем, шаги следующие:

Это все, что нужно сделать во время установки пакета FOG. Опять же, поскольку FOG представляет собой большую систему, ее использование не входит в круг рассмотрения данного руководства, и для того, чтобы вы могли лучше разобраться с возможностями системы FOG и с тем, как она может помочь вам управлять жизненным циклом ваших компьютеров-клиентов, мы призываем вас обратиться к вики-страницам с описанием этой системы.

Если все пройдет так, как надо, у вас должна быть возможность выполнить загрузку вашей клиентской машине в режиме PXE (обычно с помощью F12) и получить меню-приглашение, используемое в системе FOG по умолчанию.


Изображение получено с помощью Hotfortech.

Чтобы сразу почувствовать вкус возможностей, вы можете выбрать вариант «Run Memtest86+» (выполнить тест Memtest86 +) и получить приглашение программы Memtest, которую мы рассматриваем в нашей статье «Диагностика аппаратных проблем ПК с помощью Ubuntu Live CD» .

Файлы и каталоги

Как отмечалось ранее, наша цель заключается в расширении возможности системы FOG и с этой целью мы должны добавить некоторые файлы и каталоги.

Создайте следующие подкаталоги:

Sudo mkdir -p /tftpboot/howtogeek/menus sudo mkdir -p /tftpboot/howtogeek/linux sudo mkdir -p /tftpboot/howtogeek/pics sudo mkdir -p /tftpboot/howtogeek/utils

Эти подкаталоги будут служить в качестве шаблонов для всех изображений, программ и конфигураций, которыми мы будем пользоваться для того, чтобы расширить систему FOG.

Настройте конфигурационный файл default, используемый по умолчанию

Мы создадим новое главное меню и поместим в свое собственное подменю все функции системы FOG.

Скопируйте конфигурационный файл /tftpboot/pxelinux.cfg/default в howtogeek/menus/fog.cfg.

Sudo cp /tftpboot/pxelinux.cfg/default /tftpboot/howtogeek/menus/fog.cfg

Теперь отредактируйте содержимое исходного файла default, используемого по умолчанию:

Sudo vim /tftpboot/pxelinux.cfg/default

Сделайте так, чтобы его содержимое выглядело следующим образом:

DEFAULT vesamenu.c32 MENU TITLE FOG 0.32 + HowToGeek"s enhancements MENU INCLUDE /pxelinux.cfg/master.cfg menu color title 1;36;44 #ff8c00 #00000000 std LABEL FOG MENU LABEL Manual FOG MENU DEFAULT KERNEL vesamenu.c32 APPEND howtogeek/menus/fog.cfg LABEL Utils MENULABEL Utilities KERNEL vesamenu.c32 APPEND howtogeek/menus/utils.cfg LABEL Linux MENU LABEL Linux stuff KERNEL vesamenu.c32 APPEND howtogeek/menus/linux.cfg LABEL fog.local localboot 0 MENU LABEL Boot from hard disk TEXT HELP Boot from the local hard drive. If you are unsure, select this option. ENDTEXT PROMPT 0 TIMEOUT 300 ONTIMEOUT fog.local

Когда мы закончим, эта конфигурация позволит вам получить следующие 3 подменю: Utilities (Утилиты), Manual FOGing (Ручное управление системой FOG), Linux stuff (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 .

Подключите подменю FOG к основному меню

Т.к. мы сделали простую копию оригинального конфигурационного файла в подкаталог меню (сохранив цветовую схему, тайм-ауты и прочее), то если вы теперь перейдете в это подменю из загруженного клиента PXE, оно будет работать, но вы не сможете вернуться в главное меню без перезагрузки машины.

Поэтому отредактируйте файл /tftpboot/howtogeek/menus/fog.cfg :

Sudo vim /tftpboot/howtogeek/menus/fog.cfg

Добавьте следующую запись после записи «menu color title» и перед функциями FOG:

LABEL back MENU LABEL .. KERNEL vesamenu.c32 APPEND pxelinux.cfg/default

Создайте заготовки для подменю

Мы создали 4 подменю, три из которых будут нами заполнены. Для этого давайте создадим шаблон, которым мы будем пользоваться в дальнейшем.

Создайте файл шаблона:

Sudo vim /tftpboot/howtogeek/menus/template.cfg

Его содержимое должно быть следующим:

MENU INCLUDE /pxelinux.cfg/master.cfg #MENU BACKGROUND howtogeek/pics/fog-sub.jpgLABEL back MENU LABEL .. KERNEL vesamenu.c32 APPEND pxelinux.cfg/default

Давайте зададим заготовки для дополнительных подменю, которые нам потребуются в следующих статьях:

Cd /tftpboot/howtogeek/menus/ sudo cp template.cfg ./utils.cfg sudo cp template.cfg ./linux.cfg

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