LINUX.ORG.RU

pxelinux - зачем в нем два файла pxelinux.0 и menu.c32 ?


0

1

1) почему нельзя было сделать один файл вместо двух?
Чем полезно иметь два разных файла
2) какой файл загружается первым
3) как первый файл знает, что надо загрузить второй файл?
4) загрузчик сетевой карты грузит сначала syslinux для того, чтобы показать меню загрузки. А можно ли сразу загрузить ядро linux без всяких там промежуточных загрузчиков?

1) Потому что Syslinux бывает и без меню
2) pxelinux.0, потому что это сам по себе загрузчик
3) Он сначала скачивает конфиг pxelinux.cfg/default, а в нём уже сказано грузить menu.c32
4) Да, если в сетевую карту прошит gpxe, который сам по себе загрузчик и PXE-скачиватель в одном лице.

AITap ★★★★★
()
Ответ на: комментарий от AITap

4) Мне не понятно следующее:
раз загрузчик в сетевой карте может скачать файл pxelinux.0,
то он точно так же может скачать и другой файл (тем более что имя он берет по протоколу BOOTP и имя может быть любое)
4.1) почему нельзя загрузить сразу файл с ядром
4.2) зачем иметь отдельный особый gpxe, если initramfs может быть интегрирован в файл ядра.

5) бывают ли дистрибудивы Linux, у которых в initramfs не busibox, а нормальные программы

StrongDollar
() автор топика
Ответ на: комментарий от AITap

gPXE development ceased in summer 2010[1][2][3], and several projects are migrating[4] or considering migrating[5] to iPXE as a result.

StrongDollar
() автор топика
Ответ на: комментарий от StrongDollar

4) Но в этом файле должен исполняемый файл вполне определённого формата
4.1) Поэтому и нельзя, что ядро бывает в исполняемых файлах другого формата
4.2) gpxe не является initramfs, и я не понял вопрос

5) Да, например RipLinux и SliTaz.

AITap ★★★★★
()
Ответ на: комментарий от StrongDollar

раз загрузчик в сетевой карте может скачать файл pxelinux.0,

то он точно так же может скачать и другой файл (тем более что имя он берет по протоколу BOOTP и имя может быть любое)

естественно, может

4.1) почему нельзя загрузить сразу файл с ядром

потому что ядро надо сначала распаковать, а потом еще и запустить. Это целая процедура, которая в загрузчиках называется linux или для старых ядер linux16 и эти процедуры как раз реализованы в загрузчиках типа syslinux, lilo Или grub.

4.2) зачем иметь отдельный особый gpxe, если initramfs может быть интегрирован в файл ядра.

поому что gpxe, это тот же pxe, который прошит в сетевой карте, только расширеный среди всего прочего процедурами загрузки ядра линукс и initramfs.

5) бывают ли дистрибудивы Linux, у которых в initramfs не busibox, а нормальные программы

Это вопрос?

AVL2 ★★★★★
()
Ответ на: комментарий от AVL2

потому что ядро надо сначала распаковать,
а потом еще и запустить.
Это целая процедура, которая в загрузчиках называется
linux или для старых ядер linux16
и эти процедуры как раз реализованы
в загрузчиках типа syslinux, lilo Или grub.

Хороший ответ! А где про описание процесса упаковки/распаковки прочитать в текстовом виде (а не в исходниках) ?

StrongDollar
() автор топика
Ответ на: комментарий от AITap

Но в этом файле должен исполняемый файл вполне определённого формата

6) А если у меня не ядро Linux, и не загрузчик pxelinux.0, а некий бинарник, то где описан стандарт, которому он должен соответствовать?

StrongDollar
() автор топика
Ответ на: комментарий от AITap

Ну так там (в pxelinux.0) всё просто:


For systems based on x86 PC/AT Intel Architecture, the NBP image is downloaded to 0:7C00h. The PXE ROM code executes a far call to location 0:7C00h.



Теперь бы еще понять, зачем такой сложный формат у bzImage

StrongDollar
() автор топика
Ответ на: комментарий от StrongDollar

WAT

[user@hp-nge boot]$ file vmlinuz-2.6.18-194.32.1.el5.centos.plus
vmlinuz-2.6.18-194.32.1.el5.centos.plus: ELF 64-bit LSB shared object, AMD x86-64, version 1, stripped
[user@hp-nge boot]$_

ELF, конечно, не 2 пальца, но вроде как вполне документированный формат - http://www.skyfree.org/linux/references/ELF_Format.pdf

berrywizard ★★★★★
()
Ответ на: комментарий от berrywizard

Т.е. процедура выглядит так:

1) boot ROM (в т.ч. PXE) умеет грузить и запускать только 1 специфичный формат (плюс, поскольку он в real mode, ограниченного размера), в данном случае - pxelinux.0 (но может быть и что угодно другое);

2) pxelinux.0 уже гораздо менее ограничен и умеет также ELF, который обычно и грузит, разжимает, устанавливает начальные значения и запускает (я только не помню, он сам в защищённые режим переключается или это уже в ядре происходит);

3) мини-бонусы - всякие меню, при некоторой самостоятельной рихтовке - вплоть до загрузки разных вещей в зависимости от текущей фазы луны.

berrywizard ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.