Форум программистов, компьютерный форум, киберфорум
Наши страницы
Носители информации
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/412: Рейтинг темы: голосов - 412, средняя оценка - 5.00
qvad
Эксперт HardwareЭксперт Windows
21182 / 11999 / 646
Регистрация: 11.04.2010
Сообщений: 53,469
1

Что такое GRUB4dos и с чем его едят, или как сделать флешку загрузочной

13.03.2012, 15:58. Просмотров 76271. Ответов 0
Метки нет (Все метки)

Данной статьей я не ставлю задачу ознакомить вас со всеми возможностями этого загрузчика, а только обрисую основные ситуации, для того чтобы вы смогли сделать полноценную загрузочную флешку или диск. Я не буду копипастить описание, а расскажу доступным языком все то, что я узнал в процессе его использования.

Начнем с того, что несмотря на свой мизерный размер, этот загрузчик является по сути небольшой консольной операционной системой, поддерживающий командную строку, множество команд управления, работы с файлами, управления доступом, модификации разделов, поддерживает множество файловых систем, умеет читать данные с любого из определяемых BIOS устройств, поддерживает загрузку по сети, не зависит от геометрии дисков, умеет работать с удалёнными терминалами и т.д., это при размере то чуть больше 200 килобайт!

Еще grub имеет встроенную систему помощи, которая в ответ на <help> всегда выведет список доступных к выполнению команд, а в ответ на <help имя_команды> выдаст дополнительную информацию. Автозаполнение строки (клавиша TAB) подскажет не только синтаксис команды, но и, в некоторых случаях, варианты её продолжения (доступные устройства, разделы).
Но я не стану углубляться в дерби, а расскажу поверхностно, самые азы, так сказать.

Для того, чтобы загрузить grub, необходимо иметь на диске загрузочную запись (MBR) для grub-а, сам файл grldr в корневой директории диска и файл menu.lst, который содержит конфигурацию загрузчика. Еще нужна папка boot, в которой grub хранит файлы, необходимые ему для работы, файлы тем и прочий мусор. так же в эту папку можно класть образы, с которых мы будем загружаться, дабы не мозолили глаза в корневой директории и файлы субменю, если возникнет необходимость в их создании. Все это есть во вложении.

Загрузочную запись на диске можно получить различными способами. Самый простой - из-под Windows запустить файл grubinst_gui.exe и инсталлировать загрузочный сектор на нужный физический диск, затем скопировать файлы grldr и menu.lst в корневую директорию. Есть более извращенный способ - если установлена WinXP, переместить файл ntldr во временную папку (например, boot), скопировать в корневую директорию диска grldr, переименовать его в ntldr, для семерки аналогичные действия проводятся с файлом bootmgr. Этот способ хорош, если вам понадобится восстановить на место старую загрузку, достаточно скопировать обратно в корневую директорию оригинальный файл ntldr или bootmgr, и подтвердить перезапись. Плох он тем, что для загрузки системы оригинальный файл все-таки нужен, но его придется переименовать в, например, ntldr1 (bootmgr1) чтобы мы смогли загрузить ОС.

Итак, с MBR мы разобрались, приступим к конфигурированию файла menu.lst

В самом начала файла обычно пишутся команда, задающая цвет для текстового режима. Если включен графический режим, эта строка игнорируется. Выйти из графического режима можно нажав клавишу ESC.

#цветовые схемы
color light-gray/black yellow/green light-cyan/black light-green/black

Знак решётки - комментарии, эти строки не читаются обработчиком.
Первая пара цветов определяет основной и фоновый цвета для "не выбранных" позиций меню, вторая - для "выбранных".
Для того чтобы включить графический режим, прописываются следующие команды

#загрузочная картинка
gfxmenu /boot/pictures/message33.gz


Пункт меню, на котором стоит курсор по умолчанию. Обратите внимание, нумерация ВСЕГО у груба начинается с нуля

#позиция по умолчанию
default 0


Если загрузка по умолчанию по какой-либо причине невозможна, то будет предпринята попытка выполнить позицию, указанную в команде

#если невозможна загрузка по умолчанию
fallback 1


Время в секундах с момента вывода меню до выполнения команды, определенной по умолчанию задается командой

#таймаут
timeout 20


Позиции меню описываются командой

#название пункта меню
title

Далее я просто приведу примеры загрузки осей и образов дисков, не вдаваясь в параметры команд, кому нужно, без труда отыщет их сам, благо статей и документации хватает на просторах инета

Загрузка WindowsXP

title Start Windows XP
rootnoverify (hd0,0)
chainloader /ntldr

Команда rootnoverify не проверяет тип файловой системы диска 1 раздела 1 (еще раз обратие внимание, что нумерация физических дисков и нумерация логических разделов начинается с 0), а сразу делает его корневым. Команда chainloader передает управление загрузчику ntldr и дальше загрузка Windows происходит как обычно. Если загрузочные файлы WindowsXP находятся на другом разделе или диске, соответственно измените значения на

rootnoverify (hdНОМЕР_ДИСКА,НОМЕР_РАЗДЕЛА)

Если вы воспользовались способом инсталляции grub с переименованием файлов, то третья строка у вас будет выглядеть примерно так

chainloader /ntldr1


Загрузка Windows7 или Vista

title Start Windows 7
rootnoverify (hd0,0)
chainloader /bootmgr

Здесь все аналогично вышеописанному


Консоль восстановления WindowsXP (тут мне самому непонятно, но оно работает )

title Recovery console Windows NT/2K/XP
find --set-root /cmldr
chainloader /cmldr
# записываем буквы "cmdcons" в память 0000:7C03 в 2 шага:
### шаг 1. записываем 4 буквы "cmdc" в 0000:7C03
write 0x7C03 0x63646D63
### шаг 2. записываем 3 буквы "ons" в 0000:7C07
write 0x7C07 0x00736E6F

наличие папки cmdcons и файла cmldr приветствуется Как их создать, думаю объяснять не нужно
Если что ее можно взять ТУТ

Grub умеет монтировать в память практически все популярные образы дисков и дискет

title Start Acronis Rescue Media 11
find --set-root //boot/ima/acronis.iso
map --mem /boot/ima/acronis.iso (hd32)
map --hook
chainloader (hd32)
boot

Естественно, образ должен лежать в папке \boot\ima\acronis.iso
Положить вы его можете конечно в любую папку, но не забудьте изменить путь. Да, еще небольшой нюанс - в путях grub использует не левый слэш \ (как windows и dos) а правый / , будьте внимательны
И еще, чем больше образ, тем дольше он грузится в память. Вам может показаться, что компьютер завис, но это не так, нужно набраться терпения.

Пример монтирования и загрузки образа дискеты

title Hirens Boot CD All-In-One
map --mem /boot/ima/hiren.ima (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

Grub позволяет так же создавать субменю. например, в основном меню у вас будет 2 пункта

1. HDD Utils
2. Test Utils

Чтобы перейти к субменю, создайте файл hddutils.lst в папке boot (чтобы не мозолил глаза в корневой директории)

title HDD Utils
root (hd0,0)
configfile /boot/hddutils.lst

Файл субменю конфигурируется аналогичным образом. Для возврата в основное меню воспользуйтесь командой

title Return to main menu
find --set-root /menu.lst
configfile /menu.lst

Аналогично добавляются и остальные пункты субменю, для каждого создаем свой файл %name%.lst

В Линуксе я, мягко скажем, не силен, посему оставляю красноглазикам конфигурировать загрузку на свое усмотрение

Расскажу еще о паре фич

команда makeactive ставит флаг АКТИВНЫЙ на ЛЮБОЙ корневой раздел диска, выбранный командой root

root (hd0,1)
makeactive

Команда hide скрывает разделы, unhide отменяет скрытие

Поскольку ОС семейства win'9x не могут быть загружены из соседних разделов (вне зависимости от флага активности грузится все равно первый из разделов), для их загрузки нужно использовать команды hide и unhide. Так, если первый и второй первичные разделы содержат win'9x, то для загрузки второй системы нужно включить в menu.lst следующие команды:

hide (hd0,0)
unhide (hd0,1)
root (hd0,1)
makeactive
chainloader +1

Последняя команда просто передает управление загрузчику указанного раздела

Еще один геморой с ОС от мелкомягких - неспособность грузиться со второго и последующих дисков. Для его преодоления применяют технику "свопирования" (swapping technique), или, проще - "подмены". Так же работает и BIOS Setup, но какой смысл обращаться к нему, если всего две строки в menu.lst сделают то же самое?

map (hd0) (hd1)
map (hd1) (hd0)

Обратите внимание, что команды map "меняют местами" диски даже в представлении GRUB: второй диск становится после их выполнения hd0, а не hd1.

password abcd задает пароль (в данном случае abcd). Обычно помещается в конфигурационном файле и при достижении ее требует ввода пароля.
Чтобы он заработал, воспользуйтесь командой lock. Вы можете ввести пароль в любое время, нажав клавишу p.

title WindowsXP
lock
...........
...........
...........


В этом пункте пример использования подсказки для пунктов меню если отключены темы
Подсказки на английском языке, \n - переход на новую строку, всего 3 строки
Подсказки можно использовать при выходе из русифицированного gfxmenu-меню, чтоб не создавать англоязычные копии менюшек

title LiveCD_4.9 256\n LDR-318576 (311), TXTSETAM.SIF, multi\n wim-245Mb, 2009.11.21\n _________________________________________________________________________
find --set-root --ignore-floppies /b386/SETUPLDR.BIN
chainloader /b386/SETUPLDR.BIN

Вот основной список команд, по каждой можно узнать больше, набрав в консоли (вызывается нажатием С) help имя_команды

Команды управления:

boot - передать управление ядру, загруженному командой kernel или "чужому" загрузчику, загруженному командой chainloader,
halt - выключить машину,
help [команда] - выдать подсказку,
quit - выйти из GRUB,
reboot - перезагрузиться,
pause - ждать нажатия клавиши;

Команды работы с файлами:

cat - вывести на экран,
cmp - сравнить содержимое двух файлов;

Команды управления доступом:

password - При достижении команды требует ввода пароля;
lock - блокировать выполнение команд для неидентифицированного пользователя;

Команды модификации разделов:

partnew - создать первичный раздел,
partype - изменить тип раздела;

Команды настройки внешнего вида:

color - задать цвета меню,
vbeprobe - определить и вывести доступные режимы видеоадаптера,
testvbe MODE - тестировать режим MODE видеоадаптера.

Приведенный список команд не полон, но более подробное обсуждение было бы слишком объемным...

Теперь разберемся с темами оформления

Во вложении есть папка Перепаковка темы gfxboot-3.3
Из файла message33.gz извлекаем WinRAR'ом message33, копируем в папку Перепаковка темы gfxboot-3.3, далее батником Извлечь.bat извлекаем тему из message33, заходим в папку files, меняем картинку и заново упаковываем батником Упаковать.bat. Архиватором 7zip упаковываем в *.gz. Можно обойтись и Тотал Коммандером с установленным плагином, у меня работает.
Файл gfxboot.cfg это конфигурационный файл темы, в нем все прокоментировано. Про таймер не спрашивайте, это отдельная песня, я с ним не разбирался...
Подробное описание настройки gfxboot-3.3 в файле Readme_RUS.txt
В папке Примеры menu.lst комплект примеров, возможно, поможет разобраться в организации меню и найти для себя рабочие варианты загрузки. Все *.lst в кодировке UTF-8.

Ну, и последняя рекомендация, содержащаяся в инструкциях абсолютно ко всем менеджерам загрузки:
до инсталляции нового менеджера загрузки сохраните MBR!!!!!!!


Полезные ссыли
Официальное руководство (на английском);
Русское FAQ, где затронуты вопросы загрузки с CD/DVD и паролирования определенных пунктов (MD5-хеши хранятся прямо в конфигурационном файле);
Русская статья, описывающая способы содержания на одном диске нескольких ОС.
28
Вложения
Тип файла: zip grub.zip (2.37 Мб, 3090 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.03.2012, 15:58
Ответы с готовыми решениями:

Поврежденый диск. Что такое и с чем его едят?
сегодня знакомый попросил помочь. по его словам когда пытается открыть жосткий...

Что такое COM порт? И с чем его едят?
Пожалуйста объясните что что такое СОМ порт и как проверить его...

Nas и с чем его едят
Привет всем! Встал вопрос ребром:) ситуация такая, в корпусе нет места для...

SSD, разъясните что это такое и с чем едят?
Итак, я полнейший неуч в SSD, так что прошу совета.. во всем... 1)какой лучше...

DrawingVisual, что это такое и с чем его едят, или как перерисовать
Суть: есть Canvas (с координатами x) на котором рисуются DrawingVisual'ы, далее...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.03.2012, 15:58

Нюансы использования оператора запятая или что такое UB и с чем его едят
Почему студия и ideone выдают разные значения для a и b? в студии выходит a...

что такое Qt, и с чем его едят?
Здравствуйте, я бы хотел узнать что такое Qt, и как на нем программировать, я...

Что такое This и с чем его едят
Доброго дня/ночи Вот пытаюсь выкурить мануалы по теме &quot;this&quot;. Прочитал надцать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Закрытая тема Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru