Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Что такое сетевая загрузка (PXE) и как ей можно пользоваться

Оригинал: What Is Network Booting (PXE) and How Can You Use It?
Автор: Aviad Raviv
Дата публикации: 14 апреля 2011
Перевод: Н.Ромоданов
Дата перевода: март 2014 г.

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

Рисунки предоставлены h.koppdelaney

Обзор технологии 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 является свободным решением, предназначенным для клонирования компьютеров и имеющая открытый исходный код, которое было создано Чаком Суперски и Цзянь Чжаном (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, является достаточным для получения подробной информации в том случае, если вы хотите разобраться детально. В общем, шаги следующие:

  • sudo mkdir -p /opt/fog-setup
    cd /opt/fog-setup
    
  • Загрузите последнюю версию пакета FOG из sourceforge в каталог, созданный на предыдущем шаге.
  • Разархивируйте пакет и начните установку.
    sudo tar -xvzf fog*
    cd fog*
    cd bin
    sudo ./installfog.sh
    
  • Установщик задаст вам несколько вопросов:
    1. What version of Linux would you like to run the installation for? (Для какой версии вы хотите запустить инсталляцию?) – 2 (опять же, при условии, что используется система, базирующаяся на Debian)
    2. What type of installation would you like to do? (Какой вариант инсталляции вы хотите выполнить?) [N] – Нажмите Enter
    3. What is the IP address to be used by this FOG Server? (Какой адрес IP будет использоваться сервером FOG?) [адрес IP сервера, обнаруженного на eth0] – Нажмите Enter.
    4. Would you like to setup a router address for the DHCP server? (Хотели бы вы настроить адрес маршрутизатора для сервера DHCP) [Y/n] – Нажмите Enter.
    5. Would you like to setup a DNS address for the DHCP server and client boot image? (Хотели бы вы настроить адрес DNS для сервера DHCP и клиента загружаемого образа?) [Y/n] – Нажмите Enter.
    6. Would you like to change the default network interface from eth0? If you are not sure, select No. (Хотели бы вы изменить используемый по умолчанию сетевой интерфейс eth0? Если не уверены, то выберите вариант No) [y/N] – Нажмите Enter.
    7. Would you like to use the FOG server for dhcp service? (Хотели бы вы использовать сервер FOG в качестве сервиса dhcp?) [Y/n] – Нажмите Enter (* - см. примечание ниже).
    8. This version of FOG has internationalization support, would you like to install the additional language packs? (В настоящей версии FOG имеется поддержка интернационализации, хотели бы вы , чтобы установить дополнительные языковые пакеты?) [Y/n] – Нажмите n.
    9. Are you sure you wish to continue? (Вы уверены, что хотите продолжить?) (Y/N) – Нажмите Y.
    10. Acknowledge and follow the on screen instructions for “MySQL“. (Подтвердите и следуйте инструкциям пакета «MySQL»)
    11. Leave the MySQL password blank for the root account. (Для аккаунта root оставьте пароль для MySQL пустым)
    12. Would you like to notify the FOG group about this installation? (Хотели бы вы уведомить группу FOG об этой инсталляции?) – Нажмите Y (рекомендуется)

    Изображение взято из FOG wiki.

  • Перейдите в вашем браузере по адресу пакета FOG и следуйте инструкциям, выдаваемым на на экран.

* Примечание: Предполагается, что у вас нет другого DHCP или он не настроен для использования PXE. Если вы хотите сконфигурировать существующий DHCP, то смотрите описание Конфигурирование DHCP для PXE.

Это все, что нужно сделать во время установки пакета 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, т.к. эта система сама по себе исключительно интересная.