Как настроить сетевые загрузочные диски с помощью 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 может выглядеть так просто:
ЭТИКЕТКА Run Memtest86+
ядро туман / мемтест / мемтест
присоединять -
В этом примере «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 пункт меню должен выглядеть следующим образом:
ЭТИКЕТКА МЕНЮ StressCPU V2.0 (требуется процессор с SSE)
ТЕКСТОВАЯ ПОМОЩЬ
Протестируйте ваш процессор, чтобы убедиться, что у вас нет перегрева
проблемы. Требуются процессоры x86 с SSE. Выполняет специальную версию
Внутренние циклы Gromacs, которые смешивают SSE и обычные инструкции по сборке для нагрева
ваш процессор максимально.
ENDTEXT
KERNEL howtogeek / utils / cpustress / bzImage
INITRD howtogeek / utils / cpustress / initrd.gz
APPEND root = / dev / ram0 ramdisk_size = 12000 noapic ubcdcmd =resscpu2
Куда :
- МЕНЮ ЛЕЙБЛ - устанавливает название записи
- TEXT HELP - эта необязательная директива дает текст справки, который будет отображаться в меню для предоставления информации о выбранной записи.
- KERNEL - указывает местоположение файла «kernel» в каталоге TFTPD..
- INITRD - то же самое, что и выше, только для файла «initrd».
- APPEND - определяет дополнительные параметры, которые должны быть переданы загруженной программе.
Несколько вещей, на которые стоит обратить внимание:
- Хардкорные фанаты заметили бы, что мы заменили оригинальную директиву «LINUX» на «KERNEL». Это потому, что: A. это облегчает чтение примера. B. В этом примере это не имеет большого значения.
С учетом вышесказанного, обычно, когда используется директива «LINUX», лучше оставить это так, потому что она сообщает pxelinux / syslinux, что мы используем не просто ядро, а Linux.. - Мы сознательно убрали «тихую» директиву из добавленных параметров. Это связано с изменением того, как Syslinux обрабатывает параметр «quiet» в последних версиях.
- Можно изменить работу программы «StressCPU», просто изменив добавленный параметр «ubcdcmd». Таким образом, чтобы использовать другие функции, нужно всего лишь скопировать запись и заменить «resscpu2 »следующим образом: cpuinfo, cpuburn или mprime24.
Хотя это очень простой пример, этого должно быть достаточно, чтобы вы начали.
Метод Kernel + Initrd + NFS
Этот метод мы использовали в руководстве «Как загрузить по сети (PXE) Ubuntu LiveCD»). Этот метод основан на предыдущем и использует тот факт, что некоторые дистрибутивы Linux поддерживают монтирование их «корневой файловой системы» из NFS. Руководство по Ubuntu является отличным примером, но будьте уверены, у нас уже есть другой, запланированный на ближайшее будущее. «Держи глаза открытыми для черного гриба».
МЕМДИСК-метод
MEMDISK - это утилита, которая распространяется с пакетом Syslinux. Цель этой утилиты - позволить вам эмулировать «диск» (в основном это касается дискет), используя его образ. Способ работы этой утилиты состоит в том, чтобы подключиться к месту в ОЗУ, которое определяет способ связи с дисководом гибких дисков (обработчик прерываний А.К.А.) и указывает его на новое место, которое обрабатывается программой 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.
Итак, запертый за Воротами Крови и мимо Зала Огня, Доблесть ожидает Пробуждения Героя Света ...