Конфигурация файла Меню


Следует отметить, что некоторые команды, такие как (e.g. password, fallback, и многие другие) действуют только через конфигурационные файлы – они не работают при введении их через командную строку. Конфигурационные файлы используются, чтобы заскриптовать (автоматизировать) загрузку пунктов меню. Меню по умолчанию имеет текстовый вид, но при желании легко можно добавить фоновую картинку, прописав... (об этом позже).

Все команды в конфигурационном файле должны быть в нижнем регистре. Все заголовки пунктов загрузки должны начинаться с команды title, это позволит отображать текст следующий после этой команды на экране загруженного меню. (Например: title Boot Windows XP Будет виден текст: “Boot Windows XP”.

Когда меню загружено и мы видим пункты загрузки, мы может отредактировать любой из них, выбрав его и нажав [e], но весь отредактированный текст остаётся в оперативной памяти и не сохранится в самом файле.

Пример файла menu.lst (он входит в пакет поставки Grub4dos):

Примечание - все строки начинающиеся со знака # не отображаются и не используются, чтобы их задействовать удалите этот символ.

Опции Дисплея

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

color a/b c/d

Где a=это текст, b=общий фон, c=цвет текста выбранного пункта, d=цвет курсора.

Цвет b и d должен быть одним из перечисленных - black, blue, green, cyan, red, magenta, brown, light-gray

Цвет a и c должен быть одним из перецисленных - black, blue, green, cyan, red, magenta, brown, light-gray, dark-gray, light-blue, light-green, light-cyan, light-red, light-magenta, yellow and white.

Например следующий ниже текст menu.lst приведйт к отображению светло-голубого текста на синем фоне с красным курсором и выбранный текст будет светло-красным (Смотрите Фото 1 ниже):

color light-blue/blue light-red/red

Фото 1.

Фоновое изображение (splash) должно быть в формате .xpm (которое может быть задавлено gzip-ом),иметь размер изображения 640x480 пикселей и максимум 14 цветов.
Чтобы почитать про изготовление загрузочных картинок загляните (сюда).
Чтобы отобразить картинку splash.xpm.gz (в текущей корневой директории) Следующая команда, должна быть использовании в файле menu.lst

splashimage=/splash.xpm.gz

Чтобы отобразить splash.xpm.gz (находящуюся на 1-ом разделе 1-го жёсткого диска) команда будет иметь вид:

splashimage=(hd0,0)/splash.xpm.gz

По умолчанию, цвет текста будет белым, а выбранный пункт меню поменяет цвет текста на чёрный на фоне белого курсора. Чтобы это изменить исползуйте следующую запись в menu.lst:

splashimage=(hd0,0)/splash.xpm.gz
foreground=RRGGBB
background=RRGGBB

Где RR это красный, GG это зелёный, а BB синий. Нумерация цветов с виде HEX. В следующем примере текст будет светло-фиалетовый (В виде HEX как AB82FF) курсор будет светлоголубым (В виде HEX как 191970) и цвет в курсоре тоже будет светло-фиалетовым – Смотрите Фото 2 внизу.

splashimage=(hd0,0)/splash.xpm.gz
foreground=AB82FF
background=191970

Фото 2.

Назначение параметров по умолчанию

Можно назначить один из пунктов к загрузке по умолчанию, исползуя команду default. Если команда timeout тоже указана, система будет ждать указанный после неё период времени, а потом загрузит пункт меню указанный после команды default.

Пример задания на 10 секунд ожидания указан в следующем примере:

timeout 10

Чтобы выбрать пункт меню, который загрузится по истечении заданного времени (to be booted after timeout period has completed) делайте следующим образом (default 0=Первый пункт меню, default 1=Второй пункт меню, и.т.д.):

default 0

Так же возможно заменить пункт меню загружаемый по умолчанию на последний загруженый пункт используя файл default. Например:

default (hd0,0)/default

Команда default (hd0,0)/default указывает какой пункт меню будет записан в файл default, находящийся на 1-ом разделе 1-го жёсткого диска (этот файл должен быть скопирован из пакета Grub4dos – не редактируйте его т.к он должен быть размером в 2048 байт). Если вы используете данную функцию, диск на котором находится файл default должен быть записываемым. Пункт меню при этом должен содержать команду savedefault Например:

timeout 10
default /default

title Boot Windows XP
root (hd0,1)
chainloader +1
savedefault

Защита пунктов загрузки паролем

Чтобы запаролить загрузку всех или некоторых меню воспользуйтесь командой password Например:

color light-blue/blue light-red/red
timeout 10
default /default
password administrator

title........

Когда вы загрузите Grub4dos защищённый паролем, обычные строки подсказок внизу:

Use the ↑ and ↓ keys to highlight an entry. Press ENTER or 'b' to boot.
Press 'e' to edit the commands before booting, or 'c' for a command line.

Сменятся на эти строки:

Use the ↑ and ↓ keys to highlight an entry. Press ENTER or 'b' to boot.
Press 'p' to gain privileged control.

Как вы видите пропал доступ к редактированию пунетов меню и запуск командной строки. Теперь пользователя просят нажать [p] чтобы ввести пароль, и для успешной загрузи он должен совпасть с указанным нами (в нашем случае это - administrator).

Есть так же и возможность использовать зашифрованный пароль и поможет нам в это команда password --md5 за которой следует зашифрованный пароль: “$1$ZjU0$k107noL9DOaClJEu6n6f91”
т.е - administrator.

color light-blue/blue light-red/red
timeout 10
default /default
password --md5 $1$ZjU0$k107noL9DOaClJEu6n6f91

title........

ВНИМАНИЕ! - не генерируйте "md5-сумму” используя сторонние программы и методы, такая сумма будет недопустима в Grub4dos (Читайте Здесь (по Английски разумеется)).

Чтобы создать такой красивый зашифрованный пароль, который вы наблюдаете выше, загрузите Grub4dos и нажмите [c] чтобы попасть в командную строку,
затем пишите команду и выполняйте md5crypt - затем введите ваш пароль, и он чудесным образом превратится в зашифрованный в виде ничего незначащих символов md5-суммы (Смотри Фото 3).

Фото 3.

Можно так же ограничить доступ к отдельным пунктам меню. После установки пароля, добавляйте команду lock в желаемый пункт загрузки, пока пользователь не введёт пароль (используя [p]) все пункты меню с опцией "lock" будут недоступны:

color light-blue/blue light-red/red
timeout 10
default /default

title........
lock

Команда password тоже может быть использована для защиты отдельных пунктов, Например:

color light-blue/blue light-red/red
timeout 10
default /default
password --md5 $1$ZjU0$k107noL9DOaClJEu6n6f91

title........
password password2

Каждому пункту загрузки можно назначить разный пароль, простой или зашифрованный.

Использование подменю

Используя команду configfile мы можем наделать много вложенных меню, указав ей имя конфигурационного файла, который вы намерены грузить. Например: menu.lst содержит:

color light-blue/blue light-red/red
timeout 10
password --md5 $1$ZjU0$k107noL9DOaClJEu6n6f91

title Boot Options
lock
find --set-root /submenu.lst
configfile /submenu.lst

Будет загружен файл submenu.lst. Файл submenu.lst это файл того же формата, что и menu.lst – но в нём можно поменять гамму, указать другую картинку, добавить новых пунктов загрузки и.т.д.. Так же следует в нём прописать ту же команду, но указывающую на главный файл menu.lst, чтоб была возможность вернуться к нему и не застрять в подменю.

Использование команды "find --set-root"

Команда find --set-root в комбинации с именем файла ищет требуемый файл и делает его корневым/главным для всех команд в текущем пункте меню (или для команд вводимых из командной строки). Например:

title Find “hdd.tag” and chainload partition
find --set-root /hdd.tag
chainloader +1

Пример приведённый выше показывает поиск на всех поддерживаемых файла hdd.tag и найденое первое устройство, содеожащее этот файл hdd.tag, станет корневым. Загрузочный сектор устройства (chainloader +1 = первый сектор текущего корневого устройства) будет загружен (chainloaded).

Таким образом можно найти и загрузить ОС. Если мы ищем Windows XP , то следующий пример как раз для него:

title Find and load “ntldr”
find --set-root /ntldr
chainloader /ntldr

Используя вышеуказанный пример, мы предпологаем, что NT загрузчик ntldr всего один. А если несколько устройств содержат ntldr, то первый найденый будет назначен корневым. Это может привести к загрузке не того, что нам надо, в таком случае нам понадобится как то подругому найти и загрузить искомый файл. Устройства сканируются в следующем порядке:

Учтите, что файл ntldr (и остальные Windows-загрузочные файлы bootmgr и io.sys) должны быть на устройстве (hd0), иначе с загрузкой Windows ничего не выйдет - Смотрите Здесь, чтобы узнать что делать дальше.

Можно исключит флоппи устройства из поиска командой --ignore-floppies - Например: find --set-root --ignore-floppies /ntldr.

ЗАПОМНИТЕ! - Команда find --set-root иногда ведёт себя неадекватно - Например: Если вы используете команду map, то устройство, на котором вы хотите найти файл, станет невидимым в Grub4dos.
Всегда помните, что поиск остановится, когда вы найдёте тот файл который ищете. Даже используя точное (уникальное как вам кажется) имя файла, можно получить нежелательный результат, если вы забыли (или не знаете), что таких файлов на самом деле больше чем один.

    Оглавление    Предыдущая    Следующая    Проект GreenFlash    Форум

Copyright GreenFlash (c) 2007-2008