ded2007
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата: Напомню еще раз мою задачу, несколько различных Досовских программ с общей Досовской частью уже выбираемые из Груба, и необходимость уйти от нескольких однотипных имиджей к общему + как параметр ссылка на файл запуска нужной программы. | Передача параметров из GRUB в ОС. Решал подобную проблему, но "выверт" мне не понравился . В конечном итоге пришел к системе вложенных систематизированных меню GRUB-а. Благо флэшки подешевели и лишили смысла экономию места на ней. Тем не менее, по сути вопроса. Идея "выверта" заключалась в следующем. В поставку GRUB-а входит файл default. В него пишутся данные командой savedefault, чтобы при следущей загрузке можно было сделать активным новый пункт меню или запомнить какой пункт выбирали в предыдущий раз. Нас интересуют следующие два факта. Во-первых, для того чтобы обеспечить систему вложенных меню, GRUB позволяет скопировать default и использовать несколько файлов под разными именами. Я, например, для каждого меню menu1.lst, menu2.lst, menu3.lst,... копирую default с именами menu1.def, menu2.def, menu3.def,... Во-вторых, мы имеем возможность опосредовано, через (hd0) передавать данные из меню в ОС. Для этого в ОС необходимо лишь анализировать наборы файлов menu1.def, menu2.def, menu3.def,... Кроме того, можно default размножить под именами param1.def, param2.def и т.д, но уже для собственных нужд. Скелет пункта меню с передачей параметров в ОС выглядит так: title *** 1-st step *** default (hd0,0)/boot/param1.def savedefault 4 default (hd0,0)/boot/param2.def savedefault 7 ... загрузка ОС (или IMA-образа дискеты в твоем случае) Пару команд default (hd0,0)/boot/param1.def savedefault 4 можно рассматривать как обычное param1=4, но с "вывертами". GRUB "пишет" число "4" в виде текста в первые байты файла param1.def. Это можно посмотреть каким-нибудь HEX- редактором. Точно уже не помню, но, по-моему, под это дело отводятся первые шесть-семь байт, в каждый из которых записывается одна цифра из команды savedefault + 0-байт как признак конца текста. Далее в ОС нужно проанализировать файл param1.def и принять решение. Я даже батники сочинил для анализа. Могу оформить решение, но думаю, что сама идея и так уже ясна. | Всего записей: 224 | Зарегистр. 13-02-2009 | Отправлено: 20:03 27-11-2009 | Исправлено: ded2007, 20:29 27-11-2009 |
|