Как к PXE загружают клиент UEFI с NFS rootfs?

Я пробую клиентам начальной загрузки PXE UEFI. Моя текущая установка для клиентов BIOS использует pxelinux.0 с pxelinux.cfg/default как это:

DEFAULT vmlinuz-3.8.0-25-generic
APPEND initrd=initrd.img-3.8.0-25-generic root=/dev/nfs nfsroot=10.17.76.1:/var/lib/tribble/ephemeral ip=dhcp ro nomodeset

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

После этого руководства по PXE начальная загрузка netboot mini.iso на UEFI, я смог к начальной загрузке PXE в установщик, но к настоящему времени я не выяснил, как адаптировать те инструкции к моему варианту использования.

Таким образом, существует немного вещей, я после:

  1. Какой загрузчик рекомендуется для PXE, загружающего клиенты UEFI?

  2. Можно ли указать на меня на рабочий пример использования упомянутого загрузчика к начальной загрузке PXE клиент UEFI, rootfs которого экспортируется по NFS?

  3. Я видел, что много учебных руководств ссылаются на pxe и модули личинки pxecmd, но они не присутствуют на Ubuntu 13.04... они удержанный от использования, и если так, что заменяет их?

Опции я рассматриваю:

  • Используйте syslinux.efi

  • Используйте elilo

  • Используйте grub2

  • Используйте загрузчик тупика EFI Linux (бит боли, потому что мы должны были бы скомпилировать наше собственное ядро с трудно кодированными параметрами начальной загрузки),

В этом море опций я надеюсь найти решение с низким риском, которое продолжит хорошо поддерживаться Ubuntu.

5
задан 26 June 2013 в 23:15

2 ответа

Имеются в виду только как «пробуждающие» вопросы:

Является ли UEFI на этих клиентах обязательным условием? -

Вы не можете отключить UEFI на каждом клиенте и включить только EFI на них? -

Вероятно, тогда будет проще загрузить все установки с помощью grub2.

Вы можете рассмотреть возможность настройки параметров BIOS для EFI-загрузки вместо UEFI-загрузки - потому что двойная загрузка с UEFI не совсем надежна, например. Windows 7 или Windows 8. Я знаю о некоторых установках, когда Ubuntu с двойной загрузкой UEFI Win7 часто вылетал обратно в gdm.

0
ответ дан 26 June 2013 в 23:15

Как загрузить по сети с помощью ELILO

Как запустить EFI для сетевой загрузки?

Вам не нужно никакого дополнительного программного обеспечения, чтобы получить EFI для запуска сеанса сетевой загрузки. Любой EFI-компьютер может быть настроен на запуск сеанса PXE / DHCP, ЕСЛИ у него есть сетевой адаптер, поддерживающий протокол UNDI / PXE. Большинство современных карт имеют такую ​​поддержку.

Чтобы включить сетевую загрузку, вам нужно войти в меню обслуживания менеджера загрузки EFI и «Добавить загрузочную опцию». На экране вы видите список устройств для загрузки. По крайней мере, один из них должен иметь форму:

Load File [Acpi(PNP0A03,0)/Pci(5|0)/Mac(00D0B7A6FC25)]

, которые представляют карту Ethernet (Mac-адрес). Если у вас нет такой опции, это означает, что у вас либо нет сетевого адаптера на вашем компьютере, либо нет поддержки UNDI / PXE в дополнительном ПЗУ.

Вам нужно выбрать эту опцию и дать ей логическое имя, например, «netboot». Далее вы выходите из меню обслуживания и возвращаетесь в главное меню. Теперь у вас есть новый вариант меню загрузки. Если вы выберете «netboot», EFI запустит запрос на обнаружение PXE / DCHP и будет искать сервер для получения IP-адреса.

На стороне сервера вы можете использовать стандартный DHCP-сервер.

Сетевая загрузка с использованием PXE

EFI имеет встроенную поддержку PXE. На самом деле он сначала пытается PXE, а затем по умолчанию DHCP, когда не находит действительный сервер PXE.

В Linux / ia32 доступен пакет PXE-сервера, однако у этого пакета нет необходимых расширений для связи со стороной EFI.

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

Вам нужна специальная версия сервера DHCPD, разработанная Internet Software Consortium ( http://www.isc.org ) со специальным патчем для добавления расширений PXE. К сожалению, начиная с версии 3.0xx, патч еще не попал в официальное дерево. Предполагается, что он появится в версии 3.1 сервера dhcpd.

В любом случае пакет elilo содержит простой пример того, как вы можете сконфигурировать файл /etc/dhcpd.conf для DHCP-сервера с поддержкой PXE, используя расширения, представленные в патче. Вы можете посмотреть в examples/dhcpd-pxe.conf. Синтаксис сильно отличается от стандартного сервера dhcpd.

Ключевыми элементами, которые следует иметь в виду, являются слои PXE, используемые elilo для запроса различных файлов:

Layer 0 : to get the name of the boot loader (elilo.efi)
Layer 1 : to get the name of the elilo config file
Layer 2 : to get the name of the kernel image

Существует ВАЖНОЕ различие между этими уровнями. Первые два (0,1) и запрашиваются систематически, тогда как последний используется только тогда, когда файл конфигурации не найден, то есть, какое ядро ​​по умолчанию загружается. Фактические файлы по-прежнему загружаются через TFTP. Поэтому сервер TFTP также должен быть настроен (см. Предыдущий раздел для получения дополнительной информации)

Получение файла конфигурации

В этом режиме elilo использует уровень 1 PXE, чтобы получить файл конфигурации для использования. Поэтому это должно быть установлено на стороне сервера. Elilo будет использовать следующую последовательность при поиске файла конфигурации:

- use the name provide by the PXE server Layer 1 or

- elilo-ia64.conf/elilo-ia32.conf/elilo-x86_64 or

- elilo.conf

Пример файла elilo.conf

chooser=textmenu
default=install
delay=20
prompt

message=boot-screens/elilo_menu.msg
f1=boot-screens/general.msg
f2=boot-screens/params.msg

relocatable

image=vmlinuz
    label=install
    description="Install"
    initrd=initrd.gz
    append="--"
    read-only

image=vmlinuz
    label=expert
    description="Install [Expert mode]"
    initrd=initrd.gz
    append="priority=low --"
    read-only

image=vmlinuz
    label=rescue
    description="Rescue"
    initrd=initrd.gz
    append="rescue/enable=true --"
    read-only

Еще один

boot=/dev/sda1
delay=30
timeout=50
default=Gentoo
append="console=ttyS0,9600"
prompt

image=/vmlinuz
    label=Gentoo
    root=/dev/sda2
    read-only

image=/vmlinuz.old
    label=Gentoo.old
    root=/dev/sda2
    read-only

Также взять посмотрите на elilo.conf и Управление загрузчиками EFI для Linux: Использование ELILO

Elilo останавливается на первом совпадении. При использовании PXE elilo не пытается загрузить файл конфигурации с именем в соответствии с назначенным IP-адресом, как это происходит для DHCP, поскольку для этого достаточно конфигурации сервера PXE.

Получение образа ядра

Если файл конфигурации отсутствует, elilo будет использовать имя ядра, возвращаемое PXE-уровнем 2. Если оно не указано там, по умолчанию используется значение ' vmlinux». [тысяча сто тридцать шесть]

Получение исходного ramdisk

Имя файла для ramdisk ДОЛЖНО быть взято из файла конфигурации. Elilo не использует слой PXE для запроса имени по умолчанию.

Получение информации об IP-адресе

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

Следующая информация хранится в переменных, указанных ниже:

assigned IP address -> %I
assigned netmask    -> %M
assigned domainname -> %D
assigned gateway    -> %G

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

Для получения дополнительной информации см. PXE Linux и Реализация загрузки PXE

Источник: HP

0
ответ дан 26 June 2013 в 23:15

Другие вопросы по тегам:

Похожие вопросы: