Как настроить сетевые загрузочные диски с помощью PXE

Мы показали вам, как загружать Ubuntu LiveCD по сети. В этой статье мы покажем, как сделать некоторые другие утилиты загружаемыми по сети, что даст вам знания о том, как скопировать процедуру для других утилит, которые вы можете использовать.

Примечание. эта статья не предназначена для начинающих, хотя вы можете продолжать читать!

Стив Джурветсон

обзор

Цель этого руководства – дать вам инструменты, с помощью которых вы сможете конвертировать утилиты в PXEable. Хотя, к сожалению, ни один инструмент не может быть преобразован под солнцем, мы не были бы фанатами, если бы не попытались.

Как уже упоминалось в руководстве «Как выполнить загрузку по сети (PXE) Ubuntu LiveCD»), если вы еще не используете Ubuntu в качестве инструмента «номер один» для поиска и устранения неисправностей, диагностики и процедур спасения, чего вы ждете?

С учетом вышесказанного следует признать, что есть вещи, которые просто невозможно сделать в Ubuntu LiveCD (например, обновления BIOS), или что вы уже используете другой инструмент, который вам нравится, и который вы по-прежнему предпочитаете использовать по любой причине.

Рекомендации, предположения и предпосылки

  • Предполагается, что вы уже настроили сервер FOG, как описано в нашем руководстве «Что такое сетевая загрузка (PXE) и как вы можете его использовать?».
  • В качестве редактора вы увидите программу «VIM», в основном потому, что она широко доступна на платформах Linux. Вы можете использовать любой другой редактор, который вам нравится.
  • Ultimate Boot CD (UBCD) используется в качестве примера, поскольку, в отличие от некоторых других сборок утилит, его можно загрузить бесплатно, а программы, входящие в комплект, можно использовать бесплатно.

Почему бы просто не использовать ISO поверх PXE?

Это часто первый вопрос, задаваемый при разговоре о PXEing. Короткий ответ заключается в том, что, хотя технически можно получить образ ISO и передать его PXE на клиентские машины, почти всегда содержимое указанного ISO будет ожидать, что его физическое проявление будет доступно в физическом приводе CDROM. Следовательно, каким бы ни был контент указанного ISO, он попытается найти файлы «после загрузки сектора» на физическом диске CDROM клиентского компьютера, не найдет их и не сможет выполнить загрузки.

Два способа преодолеть эту проблему:

  • Запишите ISO-образ и вставьте его в привод CDROM клиентского компьютера. Несмотря на простоту, не с использованием компакт-дисков, это именно то, чего мы пытаемся избежать…
  • Откройте ISO и измените способ работы программы в нем, чтобы он использовал CDROM драйвер , который знает, как искать ISO в ОЗУ – довольно сложный и различный для каждого типа загрузочной программы. И.Е. не та же процедура для Linux, WinPE или UBCD, чтобы упомянуть несколько.

Поскольку оба из вышеперечисленных противоречат цели «просто использовать ISO», именно поэтому мы не рекомендуем продолжать эту работу.

Метод ядра

Хотя это очень редко, иногда программе, которую вы пытаетесь загрузить, может потребоваться только ядро ​​для работы. Типичным примером этого является «memtest86 +». Memtest поставляется в комплекте с большинством установочных компакт-дисков Linux и FOG. Поскольку Memtest нужно только иметь возможность общаться с самыми основными возможностями протестированного оборудования, I.E. памяти (ОЗУ), и может работать просто отлично, даже не полностью поддерживая аппаратное обеспечение, на котором оно работает (IE будет проверять память, даже если он не знает его тип, скорость и т. д.), ему ничего не нужно еще и может работать полностью автономно.

Пункт меню PXE для memtest может выглядеть так просто:

LABEL Run Memtest86 +
ядро ​​туман/memtest/memtest
append -

В этом примере «LABEL Run Memtest86 +» устанавливает имя записи, «kernel fog/memtest/memtest» сообщает PXElinux, где взять ядро, которое будет отправлено клиенту, и «append -» указывает PXElinux игнорировать дополнительные параметры загрузки из * наследования.

* Примечание: в зависимости от настроек это может даже не потребоваться, и фактически в FOG оно не используется.

Метод Kernel + Initrd

Этот метод является наиболее распространенным и широко распространенным по нескольким причинам:

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

В качестве примера рассмотрим утилиту CPUstress от UBCD.

В файловой структуре UBCD эта утилита находится в каталоге «ubcd/boot/cpustress». Файлы, которые мы ищем, называются «bzImage», что означает «ядро», и «initrd.gz», что означает «начальный RAM-диск».Если вы используете созданную нами настройку FOG, мы рекомендуем вам скопировать каталог в «/ tftpboot/howtogeek/utils». Как только это будет сделано, отредактируйте файл «/tftpboot/howtogeek/menus/utils.cfg» и добавьте в него загрузочную запись, найденную в пунктах меню UBCD. это можно найти в «ubcd/menus/syslinux/cpu.cfg». С настройками настройки FOG пункт меню должен выглядеть следующим образом:

MENU LABEL StressCPU V2.0 (требуется процессор с SSE)
ТЕКСТОВАЯ ПОМОЩЬ
Протестируйте ваш процессор, чтобы убедиться, что у вас нет перегрева
проблемы. Требуются процессоры x86 с SSE. Выполняет специальную версию
Внутренние циклы Gromacs, которые смешивают SSE и обычные инструкции по сборке для обогрева
ваш процессор максимально.
ENDTEXT
KORNEL howtogeek/utils/cpustress/bzImage
INITRD howtogeek/utils/cpustress/initrd.gz
ПРИЛОЖИТЬ root =/dev/ram0 ramdisk_size = 12000 noapic ubcdcmd =resscpu2

Куда :

  • МЕНЮ ЛЕЙБЛ – устанавливает название записи
  • TEXT HELP – эта необязательная директива дает текст справки, который будет отображаться в меню для предоставления информации о выбранной записи.
  • KERNEL – указывает местоположение файла «kernel» в каталоге TFTPD.
  • INITRD – то же самое, что и выше, только для файла «initrd».
  • APPEND – определяет дополнительные параметры, которые должны быть переданы загруженной программе.

Несколько вещей, на которые стоит обратить внимание:

  • Хардкорные фанаты заметили бы, что мы заменили оригинальную директиву «LINUX» на «KERNEL». Это потому, что: A. это облегчает чтение примера. Б. В этом примере это не имеет большого значения.
    С учетом вышесказанного, обычно, когда используется директива «LINUX», лучше оставить ее так, потому что она сообщает pxelinux/syslinux, что мы используем не просто ядро, а ядро ​​Linux.
  • Мы сознательно убрали «тихую» директиву из добавленных параметров. Это связано с изменением того, как Syslinux обрабатывает параметр «quiet» в последних версиях.
  • Можно изменить работу программы «StressCPU», просто изменив добавленный параметр «ubcdcmd». Таким образом, чтобы использовать другие функции, нужно всего лишь скопировать запись и заменить «presscpu2 »следующим образом: cpuinfo, cpuburn или mprime24.

Хотя это очень простой пример, этого должно быть достаточно, чтобы вы начали.

Метод Kernel + Initrd + NFS

Этот метод мы использовали в руководстве «Как загрузить по сети (PXE) Ubuntu LiveCD»). Этот метод основан на предыдущем и использует тот факт, что некоторые дистрибутивы Linux поддерживают монтирование их «корневой файловой системы» из NFS. Руководство по Ubuntu является отличным примером, но будьте уверены, у нас уже есть еще одно, запланированное на ближайшее будущее. «Держи глаза открытыми для черного гриба».

Метод MEMDISK

MEMDISK – это утилита, которая распространяется с пакетом Syslinux. Цель этой утилиты – позволить вам эмулировать «диск» (в основном это касается дискет) с использованием его образа. Способ работы этой утилиты заключается в подключении к месту в ОЗУ, которое определяет способ связи с дисководом гибких дисков (обработчик прерываний A.K.A.) и указывает его на новое место, которое обрабатывается программой MEMDISK. При использовании этого метода «ядро» – это утилита MEMDISK, а «initrd» – файл образа дискеты (.img).

Стоит отметить, что FOG поставляется с версией «memdisk», которая совместима с версией pxelinux.0, которую он использует. Поэтому рекомендуется не копировать файл «memdisk», сопровождающий файл «img», из их источника.

Поскольку этот метод уже широко используется, даже для обычных утилит и BootCD, в большинстве случаев достаточно просто найти файл «IMG» на BootCD, скопировать его в каталог TFTPD сервера PXE и ​​скопировать пункт меню ISOlinux в меню PXElinux.
Они говорят, что «говорить дешево», поэтому давайте посмотрим, как мы можем адаптировать одну из утилит, которые используют метод MEMDISK из UBCD, для работы из PXE.

Утилита TestMemIV находится в структуре файла UBCD по адресу «ubcd/images/testmem4.img.gz». Поскольку у нас уже есть утилита memdisk disk, нужно всего лишь скопировать файл «img» в каталог «howtogeek/utils /». С настройками настройки FOG пункт меню должен выглядеть следующим образом:

МЕНЮ ЭТИКЕТКА TestMemIV
ТЕКСТОВАЯ ПОМОЩЬ
Тестирует системную память и память на видеокартах Nvidia.
ENDTEXT
LINUX memdisk
INITRD howtogeek/utils/testmem4.img.gz

Хотя это пример автономного файла образа гибкого диска из UBCD, большинство других программ UBCD используют тот же базовый образ для начала работы (fdubcd.img.gz) и используют добавленный параметр «ubcdcmd» для автоматического запуска программы из загрузка CDROM. Это означает, что вы не сможете преобразовать большинство их утилит для загрузки по сети без какого-либо серьезного реверс-инжиниринга.Хотя такой обратный инжиниринг возможен (как можно видеть здесь) и является отличным занятием, он выходит за рамки данного руководства.

С учетом вышесказанного у вас теперь есть инструменты для выполнения этой процедуры для этой эзотерической OEM-диагностики или утилиты обновления BIOS.

Итак, запертый за Воротами Крови и мимо Зала Огня, Доблесть ожидает Пробуждения Героя Света …

Оцените статью
TutoryBird.Ru
Добавить комментарий