Syslinux: Конфигурационный файл


Все настраиваемые параметры Syslinux могут быть изменены с помощью файла syslinux.cfg, находящегося в корне загрузочного устройства.

Это текстовый файл в формате UNIX или DOS, содержащий одну или несколько из следующих строк (ключевые слова нечувствительны к регистру; слова набранные капслоком означают, что их надо писать точно так же, как они написаны здесь):

Начиная с версии 3.35, конфигурационный файл может быть также в директории /boot/syslinux или /syslinux (поиск выполняется именно в таком порядке.)
В этом случае имена файлов считаются от места расположения конфигурационного файла, если они не начинаются с \ или /.

Все опции ниже подходят для SYSLINUXISOLINUXPXELINUX и EXTLINUX, если не указано иное; подробнее см. их документацию.

Вот пример пункта загрузки:

DEFAULT linux
LABEL linux
SAY Now booting the kernel from SYSLINUX...
KERNEL vmlinuz.img
APPEND ro root=/dev/sda1 initrd=initrd.img



 

Компоненты конфигурационного файла

# comment

         Комментарий. Все символы от # до перевода на новую строку игнорируются.

INCLUDE имя_файла

Вставляет содержимое другого файла в этом же месте
этого конфигурационного файла. Друг-в-друга можно вставлять до 16
файлов, но нормальная работа гарантирована при не более чем 8-кратной вставке.

DEFAULT ядро параметры...

Устанавливает командную строку по-умолчанию. Если Syslinux загружается автоматически,
он будет работать как если бы строка после DEFAULT была введена в командную строку Syslinux.
 
Если конфигурационного файла нет или директива DEFAULT отсутствует,
DEFAULT становится "linux auto".

UI модуль параметры...

Устанавливает специальный модуль для пользовательского интерфейса
(обычно menu.c32 или vesamenu.c32). Эта опция перекрывает директивы DEFAULT и PROMPT.

APPEND параметры...

Добавить один или несколько параметров к ядру. Это применяется и к
автоматической, и к ручной загрузке. Опция эквивалентна опции APPEND
загрузчика LILO.

LABEL

LABEL имя
    KERNEL файл_ядра
    APPEND опции...
    IPAPPEND flag_val        [PXELINUX only]
Если "имя" введено как имя ядра для загрузки, Syslinux запускает
указанный файл ядра с указанными параметрами в APPEND.
Если APPEND не указан, используется глобальный (при наличии).

Начиная с версии 3.62, количество LABEL не ограничено.

Обратите внимание, что LILO использует синтаксис:
  image = файл_ядра
    label = имя
    append = "опции"
... а Syslinux работает по-другому:
  label имя
kernel файл_ядра
append опции
NB: "ядро" не обязательно ядляется ядром Linux; оно может быть
загрузочным сектором или даже файлом COMBOOT (см. ниже)

Начиная с версии 3.32 "имена" больше не переводятся в формат DOS (для SYSLINUX.)

Следующие команды могут быть использованы после директивы LABEL:
 
LINUX image
BOOT image
BSS image
PXE image
FDIMAGE image                 
COMBOOT image
COM32 image
CONFIG image

- Ядро Linux (по-умолчанию)
- Программа-загрузчик (bootstrap program) (.bs, .bin)
- файл BSS (.bss)
- PXE Network Bootstrap Program (.0)
- Несжатый образ дискеты (.img)
- программа COMBOOT (.com, .cbt)
- программа COM32 (.c32)
- другой конфигурационный файл
 

Использование этих директив вместо KERNEL устанавливает заданный тип файла, не взирая на имя файла.
CONFIG одначает перезапуск Syslinux с использование нового конфигурационного файла.

APPEND - Не добавлять опции. APPEND - с одним дефисом в качестве аргумента может быть использован для обхода глобального APPEND.

INITRD файл initrd

Начиная с версии 3.71, initrd может быть указан отдельной директивой
(INITRD) вместо части директивы APPEND;
INITRD также добавляет initrd=initrd_file к параметрам ядра.

Можно указать несколько имён файлов, разделив их запятыми.
В основном это полезно для initramfs, которая может
состоять из нескольких отдельных архивов cpio или cpio.gz.

IMPLICIT значение

Если значение = 0, не загружать ядро, если оно не указано в LABEL.
Значение по-умолчанию = 1.

ALLOWOPTIONS значение

Если значение = 0, пользователь не может указывать параметров ядра в коммандной строке.
Применяться будут только опции, указанные директивой APPEND. Значение по-умолчанию = 1.

TIMEOUT время

Задаёт время ожидания коммандной строки перед автоматической загрузкой в условных единицах = 0,1 с.
Таймаут отключается как только пользователь нажимает какую-либо клавишу.
Нулевой таймаут вовсе отключает эту функцию (по-умолчанию).

TOTALTIMEOUT время

Задаёт время ожидания пред автоматической загрузкой.
Не отменяется нажатием клавиши.
TIMEOUT и TOTALTIMEOUT могут быть использованы вместе, например:
  # Подождать 5 секунд, пока пользователь не нажмёт клавишу
# через 15 минут загрузиться в любом случае
TIMEOUT 50
TOTALTIMEOUT 9000

ONTIMEOUT ядро параметры...

Устанавливает команду, выполняемую по таймауту. Обычно она совпадает с DEFAULT.
Если ONTIMEOUT задан, DEFAULT используется только для случая, когда пользователь
нажимает в пустой строке.

ONERROR ядро параметры...

Если ядро не найдено (файл не существует, или запуск запрещён)- выполнять указанную команду.
Несработавшая команда добавляется к параметрам ядра, т.е. Если в конфигурации указано:

ONERROR xyzzy plugh

... а пользователь ввёл:

foo bar baz

... Syslinux выполнит следующую команду:

xyzzy plugh foo bar baz

CONSOLE значение

Если значение равно 0, консоль не будет отображаться. Если значение равно 1, то консоль будет видна (это по умолчанию)
У некоторых BIOSов случаются проблемы с отображением "Видео" консоли. Если такие проблемы возникнут, вы этой опцией сможете отключить показ консоли.

FONT имя_файла

Загрузить шрифт в формате .psf перед тем, как выводить на экран что-либо (кроме копирайта, "зашитого" в ldlinux.sys)
Syslinux просто загружает шрифт в видеокарту; если .psf содержит Unicode таблицу, она игнорируется.
Это работает только на видеокартах EGA и VGA; мы надеемся, на остальных
картах ничего не произойдёт.

KBDMAP имя_файла

Устанавливает простейшую раскладку клавиатуры. Алгоритм переназначения клавиш *очень* прост
(он переназначает коды клавиш, полученные от BIOS, то есть переназначать можно только клавиши от стандартной клавиатуры США).
Это может помочь людям с QWERTZ или AZERTY клавиатурой, (эти символы часто используются в параметрах ядра)

DISPLAY имя_файла

Выводит содержимое указанного файла на экран (перед командной строкой, если есть).
Пожалуйста, прочитайте дополнительно секцию "формат файла DISPLAY".
NB: Если файл отсутствует, директива просто игнорируется.

SAY текст

Печатает на экране текст.
Пожалуйста, прочитайте дополнительно секцию "формат файла DISPLAY".

PROMPT значение

Если значение = 0, показывать boot: только если нажат Shift или Alt
или если включён Caps Lock или Scroll (значение по-умолчанию).
Елси значение = 1, показывать boot: всегда.

NOESCAPE значение

Если значение = 1, будут игнорироваться Shift/Alt/Caps Lock/Scroll Lock.
Используйте это (вместе с PROMPT 0) для указания единственно возможного варианта загрузки.

NOCOMPLETE значение

Если значение = 1, Клавиша Tab не показывает возможных значений label в командной строке (boot:).

F[1-12] имя_файла

F1 имя_файла
F2 имя_файла
...и.т.д...
F9 имя_файла
F10 имя_файла
F11 имя_файла
F12 имя_файла
Отображает указанный файл на экране, если нажать функциональную клавишу в командной строке.
Это можно использовать для вызова вспомогательной информации (опции загрузки ядра и.т.д)

Пустые и закоментированные строки (#) игнорируются.

Конфигурационный файл может быть прчитан не полностью. Синтаксис, отличающийся от указанного,
может нормально работать в этой версии Syslinux, но перестать работать в будущих версиях.