Назад | Перейти на главную страницу

Создание загрузочного PXE-образа из программы обновления прошивки утилиты dos

Мне было интересно, можно ли создать загрузочный образ PXE из прошивки утилиты dos. Для некоторых особенностей программа обновления прошивки обычно устанавливается на флешка. У меня есть все плоские файлы. Должен ли я быть в порядке, просто сбросив плоские файлы на мой сервер tftpboot, а затем просто добавив нужные биты для pxemenu, или этот процесс немного сложнее?

Я нашел FreeDOS, но они не предоставляют изображение большего размера, чем 1,44 МБ, что является проблемой, потому что размер одной прошивки составляет 5 МБ. Я попытался создать изображение большего размера используя эти шаги но безуспешно, поскольку каждый раз, когда я загружаюсь в образ, он не отображает обычное меню FreeDOS (он только распечатывает FreeDOS и не дает командной строки).

РЕДАКТИРОВАТЬ: мне удалось запустить ром с образа FreeDOS из Вот но, конечно, при запуске ПЗУ он говорит, что ПЗУ поврежден, потому что на самом деле там нет всего ПЗУ, а есть только частично из-за того, что на изображении есть только 1,44 МБ пространства. Чтобы еще больше усложнить ситуацию, ПЗУ будет запускаться только при запущенных himem.exe и emm386.exe (они запускаются при выборе второго варианта в FreeDOS).

EDIT2: я наконец-то заставил USB-накопитель работать после добавления плоских файлов на карту и COMMAND.COM с пользовательского USB-накопителя freedos, который я нашел. По-прежнему копируя файлы на образ USB и пытаясь загрузиться с PXE, он отказывается загружаться.

Вы можете увидеть пошаговое руководство здесь: http://www.smop.co.uk/mediawiki/index.php/PXE_booting_floppy_images

Или попробуйте найти «загрузочный ISO через PXE», «загрузить DOS через PXE» и т. Д.


Расширенное редактирование

Следующее проверено и работает.

Все, что вам нужно, это Полная FreeDOS ISO, недавний Linux LiveCD, установленный Linux и Виртуальная машина.

Тогда вот что я сделал:

  1. Создайте виртуальную машину с жестким диском только Размер 20 МБ, также прикрепите ISO-образ Full FreeDOS в качестве компакт-диска.
  2. Загрузите виртуальную машину с ISO-образа FreeDOS и установите минимальную версию FreeDOS на виртуальный жесткий диск.
  3. Убедитесь, что вы разбили и отформатировали жесткий диск с помощью предоставленных инструментов FreeDOS во время установки. Диск должен быть загрузочным и отформатирован как FAT16.
  4. Извлеките ISO-образ и попробуйте загрузиться с виртуального жесткого диска. Повторяйте эти шаги, пока он не загрузится на виртуальный жесткий диск. Для меня это работает только с 3-м вариантом загрузки FreeDOS, но вы должны попробовать их все.
  5. Подключите Linux LiveCD к виртуальной машине и загрузите LiveCD. Затем смонтируйте виртуальный жесткий диск где-нибудь в файловой системе.
  6. Перенесите необходимые инструменты DOS на смонтированный жесткий диск. Либо через HTTP, SCP, FTP, SMB, либо даже через настоящий USB-накопитель. Не обязательно, но рекомендуется создавать подпапку виртуального жесткого диска и размещать в ней файлы. Вы должны были извлечь файлы извне или внутри системы Linux LiveCD. Убедитесь, что вы не перезаписываете файлы FreeDOS на жестком диске.
  7. Отключите виртуальный жесткий диск.
  8. Создайте образ виртуального жесткого диска с dd if=/dev/sda of=/tmp/freedos.img (замените / dev / sda правильным именем устройства виртуального жесткого диска)
  9. Перенести изображение /tmp/freedos.img на реальный компьютер (SCP, SMB, FTP или что-то еще).
  10. Выключите систему Linux LiveCD, извлеките образ LiveCD, перезагрузитесь и попробуйте снова загрузиться с жесткого диска FreeDOS (а не образа).
    Если он работает, и вы видите скопированные программы, все в порядке, и вы можете снова выключить систему. Если нет, повторите с шага 5).
  11. Если у вас где-то установлен Linux, то попробуйте установить syslinux пакет. Это проще, чем компилировать собственные двоичные файлы или загружать откуда-то предварительно скомпилированные изображения.
    После установки найдите memdisk двоичный файл в файловой системе. Мой был в /usr/lib/syslinux/memdisk.
  12. Перевод memdisk и freedos.img на tftp-сервер вашей среды PXE и ​​настройте его с помощью следующей записи конфигурации.

.

label freedos
menu label FreeDOS flash environment 
kernel memdisk
append initrd=freedos.img harddisk

Загрузитесь через PXE и ​​наслаждайтесь FreeDOS по сети.


В качестве упражнения для читателя попробуйте iPXE которая является прошивкой PXE с открытым исходным кодом. С его помощью вы можете пропустить всю ерунду tftp / PXE и ​​вместо этого загрузиться через HTTP! В этом случае вы можете загрузиться из загрузчика iPXE и ​​ввести следующие команды:

dhcp
imgfetch http://192.168.1.1/freedos.img
chain http://192.168.1.1/memdisk harddisk

dhcp дает вам любой IP-адрес вашего DHCP-сервера только для связи с 192.168.1.1 или любым другим (внутренним) веб-сервером. Вместо этого вы также можете установить статический IP-адрес. Другие команды загружают и устанавливают загрузчик и образ диска по HTTP, а затем загружают образ. Впечатляет.

Ты можешь использовать мемдиск для создания образов загрузочных дисков (например, с дискеты или жесткого диска) или образов iso. Например, вот моя конфигурация PXE для загрузки DBAN.

label dban
menu label Wipe hard drive 
kernel memdisk
append initrd=dban/dban.img floppy

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

AUTOEXEC.BAT CONFIG.SYS HPQUSB.exe O37_0323.ROM AFU0323.BAT AFUDOS.exe ID.exe

Я бы попытался использовать утилиту HPQUSB.exe для подготовки USB-ключа, сделать образ USB-ключа, а затем загрузить этот образ с помощью memdisk.