2

Большинство поставщиков в последнее время предоставляют обновления прошивки серверов только в виде набора файлов EFI (пример). Но их серверы внутренние (также как и любые внешние) IP-KVM могут подключать только ISO образы в качестве загрузочных виртуальных носителей. С этим виртуальным носителем невозможна прошивка прошивки.

Серверы удаленного большую часть времени , и никто не может физически получить доступ к нему , чтобы вставить USB флэш обновления прошивки. Обновления прошивки должны быть удаленными только для ускорения всего процесса. Вопрос в том, как запустить EFI файлы, подобные этим, из загрузочного ISO файла для обновления прошивки?

Скорее всего, готового решения не существует. Поэтому я хотел бы построить сам. Но я не нашел ничего в Google для начала. Нужно указать какое-то руководство по началу работы или что-то подобное. Может быть, есть способ организовать в ISO эти файлы как-то, чтобы оболочка EFI могла получить доступ и запустить его?

Я хотел бы Linux решение для сборки ISO .

4 ответа4

3

Приведенное ниже решение реализовано на Linux Mint 19 64 на виртуальной машине.

Необходимые инструменты

GParted - графический инструмент для управления разделами. Это обычно доступно в Live Linux CD/DVD. Если у вас нет свободного места в конце вашего диска, вам придется изменить размер и создать небольшой раздел FAT. Если существующие разделы используются, вам может потребоваться запустить GParted с Live Linux CD/DVD, чтобы он работал на вашем разделе.

genisoimage - инструмент командной строки для управления ISO. Если это не доступно, просто установите его. Это было легко доступно в Linux Mint 19 64bit

sudo apt-get install genisoimage

Шаг 1 - Используя GParted (предпочтительно загруженный с Live Linux CD/DVD, в данном случае я использовал Live Linux Mint 19 64bit), создайте небольшой раздел в формате FAT16 в конце вашего диска. Для этого конкретного случая более 100 МБ более чем достаточно. Убедитесь, что для такого небольшого размера формат FAT16, а не FAT32

Шаг 2 - Распакуйте и скопируйте необходимые файлы в этот раздел, отформатированный в FAT. Вы можете просто использовать файловый менеджер GUI по умолчанию в Linux. Не требуется отдельная команда gzip

Шаг 3 - Создайте образ этого раздела. Команда здесь

dd if=/dev/sda3 of=/home/test/efi/fat.img

В приведенном выше примере /dev/sda3 - это отформатированный раздел FAT, содержащий файлы, а /home/test/efi/fat.img - сгенерированный файл изображения.

Шаг 4 - Теперь мы создадим загрузочный ISO-образ EFI. Сами файлы не обязательно могут быть загрузочными здесь.

genisoimage -v -J -r -V "TEST" \
  -o /home/test/myiso.iso \
  -eltorito-alt-boot \
  -e fat.img \
  -no-emul-boot \
  /home/test/efi

В приведенной выше команде мы опускаем загрузчик BIOS и просто придерживаемся альтернативного загрузчика EFI. /home/test/myiso.iso - это новый создаваемый файл ISO, а /home/test/efi - это расположение исходных файлов. Таким образом, в нем нет ничего, кроме образа загрузчика.

Теперь ISO создан на Linux Box. Смонтируйте ISO-диск как CD-привод и загрузите вашу систему UEFI в EFI Shell. Теперь раздел загрузчика должен отображаться на диск в EFI Shell, а изображение в нем, содержащее папку и ее содержимое, должно быть доступно через EFI Shell.

2

Исходя из того, что я лучше всего понимаю ваш вопрос, я предлагаю решение с использованием следующих инструментов в 64-битной операционной системе Windows.

  1. imdisk_toolkit_64_bit Эмулятор виртуального диска. Скачать и установить отсюда
  2. Power ISO (пробная версия должна работать, так как размер файла меньше 300 МБ)

меры

Загрузите и установите вышеуказанное программное обеспечение в вашей ОС Windows.

Сначала с помощью imdisk_toolkit создайте виртуальный диск и подключите его к букве диска. Отформатируйте диск в файловую систему FAT. Диск объемом около 50 -60 МБ более чем достаточен для ваших нужд, так как размер файла едва ли <40 МБ.

Скопируйте содержимое ваших файлов, включая файлы EFI, флэш-файлы и сценарии, на этот виртуальный диск.

Теперь в том же приложении создайте и сохраните файл .img виртуального диска.

Демонтировать виртуальный диск. Эта часть работы выполнена.

Теперь откройте Power ISO и создайте новый пустой контейнер ISO.

Перейти к меню «Действие» -> «Загрузка» -> «Добавить информацию о загрузке»

и выберите.IMG-файл, который мы создали ранее.

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

Сохраните файл как.ISO и запишите его на CD/DVD.

Этот контейнер FAT загрузчика должен быть доступен в EFI Shell и должен монтироваться как доступный диск в EFI Shell.

Я проверил это на виртуальной машине. Надеюсь, что это работает, как и ожидалось, на реальном оборудовании.

0

Возможно, вы могли бы создать обновления прошивки как загрузочные образы PXE (хотя нужно быть осторожным, чтобы не оказаться в цикле перепрошивки). Большинство серверов с EFI также могут в случае необходимости использовать PXE BIOS.

Если ваше устройство IP-KVM позволяет вам подключать USB-диски, вы можете обнаружить, что можете просто загрузить свой "образ", прикрепив его таким образом.

Лучшим способом может быть прошить сервер с полностью загруженной ОС (и некоторые производители предоставляют для этой цели специальные утилиты).

Наконец, некоторые поставщики серверов взимают с вас СУММ дополнительных денег, чтобы позволить вам перепрограммировать BIOS сервера по сети (например, через IPMI) - вы можете быть в этом сценарии ...

0

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

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

В Windows можно использовать PowerShell для обновления BIOS. Необходимые файлы должны быть сначала отправлены на удаленный компьютер. Примеры таких скриптов:

Каждое решение требует изучения и тестирования, ни одно из них не является легким или абсолютно гарантированным.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .