iPXE - Загрузка по сети/интернет | [notebook, tabletpc, netbook, umpc, other]



Реп: (745)
iPXE - Загрузка по сети/интернет
HTTP iSCSI DNS TFTP AoE FCoE TFTP COMBOOT EFI ELF PXE PXEXT и др.

Прикрепленное изображение

Официальный сайт: https://ipxe.org
Дополнительные изображения - "Скрины моего портала"
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение

Описание
iPXE - это лидирующее open source програмное обеспечение по сетевой загрузке. Данное ПО предоставляет все возможности PXE включая дополнительные возможности, такие как:
- boot from a web server via HTTP
- boot from an iSCSI SAN
- boot from a Fibre Channel SAN via FCoE
- boot from an AoE SAN
- boot from a wireless network
- boot from a wide-area network
- boot from an Infiniband network
- control the boot process with a script
Вы можете использовать iPXE для замены существующего PXE ROM в Вашей сетевой карте, или можете загружаться в iPXE, чтоб получить больше возможностей без необходимости прошивки модуля.
iPXE - это бесплатное, open-source ПО, лицензированное GNU GPL (с некоторыми GPL-совместимыми лицензиями), и используется множеством производителей сетевого оборудования и OEMs.

С чего начать?
Для начала можно скачать загрузочный ISO образ. Записать его на CD/DVD/USB и загрузиться с него.
Вы должны будете увидеть следующее:
iPXE -- Open Source Network Boot Firmware -- http://ipxe.org
Features: HTTP iSCSI DNS TFTP AoE FCoE TFTP COMBOOT ELF PXE PXEXT

Press Ctrl-B for the iPXE command line...

Нажмите Ctrl-B и Вы попадёте в iPXE command line:
iPXE>

Вы можете отобразить список сетевых интерфейсов, которые iPXE обнаружил, используя команду ifstat:
iPXE> ifstat
net0: 52:54:00:12:34:56 using rtl8139 on PCI00:03.0 (closed)
[Link:up, TX:0 TXE:0 RX:0 RXE:0]

и получить IP адрес с помощью команды dhcp:
iPXE> dhcp
DHCP (net0 52:54:00:12:34:56).... ok

Вы можете проверить конфигурацию IP и другие опции DHCP:
iPXE> route
net0: 10.0.0.155/255.255.255.0 gw 10.0.0.1
iPXE> show dns
net0.dhcp/dns:ipv4 = 10.0.0.6

Теперь Вы можете загрузить что-нибудь по сети. В отличие от стандартных PXE ROM, iPXE позволяет загружаться по широковещательной сети, такой как интернет. Если устройство, на котором Вы загрузили iPXE есть доступ к интернет, - Вы можете загрузить демонстрационный скрипт iPXE:
iPXE> chain http://boot.ipxe.org/demo/boot.php

Загрузки
iPXE Simple мой собственный проект, позволяющий собрать последнюю версию версию iPXE из исходников со своими скриптами и настройками в два клика.
Автоматически собранные iPXE образы последней версии с помощью iPXE simple

Возрождённый проект по онлайн генерации iPXE образов - так называемый rom-o-matic или ipxe-buildweb. Прекрасно подойдёт для новичков или для экспериментов.

Прямая ссылка на загрузку тестового образа iPXE

Файлы iPXE собранные с поддержкой WiFi через WPA2-PSK

netboot.xyz Готовое решение, основанное на iPXE

TFTP-NP - Решение от нашего форумчанина
Примеры скриптов/Автоматизация
iPXE скрипт - это простой текстовый файл, начинающийся с магической строчки #!ipxe и содержащий последовательность команд iPXE. Например, вот простой скрипт, который получает IP адрес по DHCP и загружает демонстрационный образ iPXE:
#!ipxe

dhcp
chain http://boot.ipxe.org/demo/boot.php

Вы можете использовать команду goto чтоб перейти к пределённому имени скрипта. Вы можете задать имя скрипта:
:<label>

и перейти к нему, используя
goto label

Например:
#!ipxe

:loop
echo Hello world
goto loop

В данном случае задано имя скрипта "loop" и после его выполнения мы Вернёмся снова к нему и так до бесконечности.

И, в заключении, облегчу задачу тем, кто захочет создать собственное загрузочное меню. У меня на это ушло пару дней поисков "Как сделать меню iPXE". Я скачивал и открывал меню с различных ресурсов, пока не добился понимания и в итоге пришёл к собственному идеалу. Скрины моего портала в спойлере "Дополнительные изображения".
От слов - к делу! Вот Вам код моего меню: (лишь часть, отвечающая за отображение меню)

#!ipxe

console --picture http://........./wallpaper.png

:start-menu
menu Welcome to PCServiceBurgas.com Boot Menu
item --gap -- ------------------------------------- WinPE, Install Windows/Linux/Mac: -------------------------------------
item winpe ${space} WinPE by PCServiceBurgas
item ubuntu ${space} Ubuntu
item staff ${space} Staff Only
item --gap -- --------------------------------------------- Usefull Tools: --------------------------------------------
item hddarts ${space} HDD Tools and Diagnostics
item btmgr ${space} Smart Boot Manager
item nssi ${space} System Information
item konboot ${space} Kon-Boot
item memtest ${space} MemTest
item memtestiso ${space} MemTest ISO (Alternate)
item memtestefi64 ${space} MemTest efi64
item PartGuru ${space} Partition Guru
item plpbt ${space} Plop bootloader
item --gap -- --------------------------------------------- iPXE Tools: --------------------------------------------
item view ${space} Network setting
item config ${space} Configure iPXE
item shell ${space} iPXE shell
item reboot ${space} Reboot
item exit ${space} Exit
isset ${target} && set timeout 0 || set timeout 20000
choose --timeout ${timeout} --default ${target} target && goto ${target} ||
echo ${cls}
goto start-menu


Таблица совместимости WiFi чипов -Вырезал из общей таблицы-
Прикрепленное изображение

Прикрепленный файлiPXE.pdf ( 40.11 КБ )

Настройка DHCP+TFTP-сервера
Linux/MacOS/Windows(WSL) - на примере isc-dhcp-server
Windows - Поделитесь!
MikroTik - Поделитесь!
Полезное


Куратор темы: В теме нет куратора


Сообщение отредактировал Woertz - 13.02.24, 18:55
Причина редактирования: Настройка DHCP для PXE на Keenetic'ах



Реп: (36)
Прошу прощения... .сам тупанул. Указывал общий Key и SSID, а не для интерфейса....



Реп: (36)
Теперь другой вопрос. К WiFi я подключаюсь - теперь норма. А как заставить грузится по HTTP? По TFTP ооочень долго =(.
Нужно грузить Thinstation по WiFi.
Тестирую так:
set net1/key ***
set net1/ssid ***
dhcp net1
подключается.....
Дальше
initrd tftp://ip/initrd
chain tftp://ip/vmlinuz
Грузится, но, так как по TFTP, очень долго =(
Пробую initrd http://ip/initrd
Выводится строчка:
"http://ip/initrd...." как будто пытается загрузится, но на этом все - висит. По http данный файл доступен.

Когда пытаюсь протестировать вот этим chain http://boot.ipxe.org/demo/boot.php сразу уходит в ребут, но, вроде как, успевает стянуть vmlinuz
Тоже самое происходит если пытаюсь со своего сервера стянуть lpxelinux.0 т.е. http://ip/lpxelinux/lpxelinux.0 (это файл Thinstation для загрузки по HTTP)

Сообщение отредактировал LobsterOK - 03.09.20, 15:49



Реп: (745)
* LobsterOK,
Это зависит от самого дистра и от того, что Вы хотите с ним делать.
Я маленькие(до 1Gb) linux гружу по http прямо iso



Реп: (36)
Thinstation - это минилинукс для терминального клиента. Я хочу грузить ее по сети, а дальше использовать как терминальный РДП клиент. В принципе, мне все равно как ее грузить, через vmlinuz/initrd или непосредственно ISOшником...., но iso я тоже пробовал грузить, при полной загрузке он пишет по TFTP он пишет "Could not boot: Exec format error", а при загрузке по HTTP она просто сразу ребутается.



Реп: (745)
* LobsterOK,
Может быть не подходит архитектура процессора?



Реп: (36)
Обычный AMD х86_64, по LAN он грузится нормально по TFTP через встроенный ROM сетевухи, по TFTP/HTTP через iPXE. А вот по WiFi через iPXE вот такие проблемы.... (образ один и тот же с одного и того же сервера, разница только в устройстве для загрузки LAN и WLAN)
Причем, как я уже писал, по TFTP через iPXE по WiFi он тоже грузится с того же образа через initrd/vmlinuz .

Сообщение отредактировал LobsterOK - 03.09.20, 16:51



Реп: (745)
* LobsterOK,
Ну тогда странно...
Создайте issue разрабам



Реп: (0)
Нужна ваша помощь
Сделал все как на https://www.blogger.co…e/18345559945798762682
но у меня почему то не срабатывают команды в ipxe пишет ошибку console: command not found

Прикрепленные изображения
Прикрепленное изображение



Реп: (745)
* armagedon_kr,
А чего именно Вы пытаетесь добиться?
По какому мануалу?
Как собирали iPXE?
При сборке включили CONSOLE?



Реп: (0)
А чего именно Вы пытаетесь добиться?

1. Загрузка с жесткого диска
2. Вставить свое изображение в меню
По какому мануалу?

Как я всякую дичь через PXE грузил.
Как собирали iPXE?

Я создавал в каталоге "src" с исходниками файл "boot.ipxe" с таким содержанием:

#!ipxe

:start
dhcp
chain tftp://${next-server}/boot.ipxe || goto shell

:shell
echo Type 'exit' to get the back to the menu
shell
set menu-timeout 0 set submenu-timeout 0
goto start


И собирал загрузчик такой командой:

make bin/ipxe.pxe EMBED=boot.ipxe


Этот скрипт пытается настроить сеть, загрузить с tftp-сервера скрипт "boot.ipxe" и запустить его. В случае неудачи запускается встроенная оболочка загрузчика.

При сборке включили CONSOLE?

Можно об этом подробнее?
Возможно нет.



Реп: (0)
Все разобрался большое спасибо



Реп: (0)
С консолью разобрался.
Помогите как написать меню с запуском с жесткого диска в ipxe

#!ipxe

console --picture http://192.168.100.9/ipxe.png

:start-menu
menu Welcome to Boot Menu
set space:hex 20:20
set space ${space:string}

item --gap -- ----------------------------------------------- hdd -------------------------------------------------------
item local ${space} Boot from local hdd

:local
echo Booting from local disks ...
exit 0



Сообщение отредактировал armagedon_kr - 06.12.20, 09:19



Реп: (745)
* armagedon_kr,
Загрузка с локального HDD:
sanboot --no-describe --drive 0x80

А Ваш exit 0
Позволяет грузить следующий пункт Биос.
Например через iPXE подключить iSCSI или ISO и потом продолжить загрузку

Сообщение отредактировал sebaxakerhtc - 06.12.20, 15:30



Реп: (0)
* sebaxakerhtc,
Огромное спасибо



Реп: (745)
* armagedon_kr,
Рад помочь!



Реп: (0)
Ребят, как отключить ixpe, если он появился?



Реп: (541)
DardLee @ 31.12.20, 22:42 *
Ребят, как отключить ixpe, если он появился?

Какое оборудование, фото или подробности можно?



Реп: (745)
DardLee @ 31.12.2020, 19:42 *
если он появился

Как появился?



Реп: (0)
Спасибо за тему, единомышленники! Форум разрабов, к сожалению, закрыт, так что здорово, что есть с кем поговорить, да еще и на русском.
Ситуация следующая. Имею NAS с возможностью отдавать iSCSI LUN и желание развернуть на нем образы и дистрибутивы для загрузки по сети. С HTTP связываться желания нет. Все должно быть просто - подключаем по iSCSI диск и работаем с тем что на нем есть. Проштудировал ipxe.org, уберконфиг отсюда однако, есть масса затыков.
Первоначальная загрузка по dhcp и tftp, загрузчик ipxe и конфиги лежат там. Разберем пример.
set iscsi-server myserver
set base-iscsi iscsi:${iscsi-server}::::iqn.2020-08.domain.com:target
goto windows7-install

:windows7-install
# Force gateway to be the iSCSI target server (kludge for stupid window behavior)
set netX/gateway ${iscsi-server}
# Hook iSCSI drive.
set root-path ${base-iscsi}
sanhook ${root-path} || goto failed
# This method uses wimboot
set base-url win10
kernel wimboot
initrd ${base-url}/bootmgr bootmgr
initrd ${base-url}/boot/bcd BCD
initrd ${base-url}/boot/fonts/wgl4_boot.ttf wgl4_boot.ttf
initrd ${base-url}/boot/boot.sdi boot.sdi
initrd ${base-url}/sources/boot.wim boot.wim
boot || goto failed
goto start

Wimboot должен лежать там же на tftp, при этом, я ожидаю, что bootmgr он будет брать откуда я скажу, т.е. в подключенном разделе в папке win10, однако он там его не находит (хотя раздел подключен успешно).
Что я упускаю?



Реп: (745)
* -Riddick-,
В имени iSCSI правильно указывать ...com.domain... а не ...domain.com...
Покажите содержимое корня iSCSI устройства. Иначе непонятно.
И странно windows7-install, при этом base-url win10
И в конце goto start, а что в пункте :start?

Сообщение отредактировал sebaxakerhtc - 16.01.21, 14:13


Полная версия   Текстовая версия

Помощь   Правила

Сейчас: 29.03.24, 11:34