calcboot

Назначение

calcboot представляет собой модуль для Syslinux (calcmenu.c32), позволяющий запоминать выбор при использовании нескольких загрузочных меню. Также в нем хранятся фоновые изображения для Grub и Syslinux.

Описание модуля calcmenu.c32

calcmenu.c32 основан на vesamenu.c32 и реализует как все его возможности, так и дополнительные:

1. запоминание значений параметров

При использование нескольких меню в поле APPEND заносится имя файла меню, к которому нужно перейти при выборе данного пункта. В отличии от стандартного vesamenu.c32 указанные параметры для меню не сбрасываются.

Пример пункта меню:

APPEND isolinux.cfg calculate=,be_BY

При выборе такого пункта меню будет загружено меню из файла isolinux.cfg, а параметр calculate=,be_BY будет сохранен. В итоге при выборе пункта меню из isolinux.cfg, содержащего

KERNEL /boot/vmlinuz
APPEND root=/dev/ram0 initrd=/boot/initrd init=/linuxrc looptype=squashfs unionfs

будет запущено ядро с параметрами, указанными в APPEND, плюс calculate=,be_BY.

2. замещение значений сохраненных параметров

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

3. замещение значений параметров по позициям

Каждый параметр может хранить несколько значений, если они разделены запятой. Например, параметр calculate будет хранить язык и временную зону (calculate=ru_RU,Europe/Moscow). Для реализации этого создаются два различных меню (lang.cfg, timezone.cfg), пункты меню которых содержат следующие APPEND:

lang.cfg
...
APPEND timzone.cfg calculate=ru_RU,
...

timezone.cfg
...
APPEND othermenu.cfg calculate=,Europe/Moscow
...

При выборе таких пунктов меню для othermenu.cfg будет сохранен параметр calculate со значением ru_RU,Europe/Moscow.

4. восстановление начальной позиции курсора в меню по параметру

Чтобы запоминалось положение курсора выбора языка, временной зоны и т.д., в файле описания меню используется

MENUPARAM параметр номер

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

MENUPARAM calculate 1

т.е. параметр calculate, второе значение. Таким образом, при отображении меню timezone.cfg, если есть сохраненный параметр calculate и у него есть значение во второй позиции, то курсор будет указывать на необходимый пункт меню.

5. указание значений по умолчанию для параметров (добавлено в версии 3.86.5)

Для указания значений используется

DEFAULTPARAM параметры

Например, для указания русского языка по умолчанию:

DEFAULTPARAM calculate=lang:ru_RU,keymap:ru_RU

Спасибо!