GRUB - GRand мира загрузчиков

         

Как сделать


Если не обнаружено в дистрибутиве (что, в настоящее время, уже маловероятно), то на ftp://alpha.gnu.org/gnu/grub/ можно обнаружить следующие файлы:

  • grub-VERSION.tar.gz
  • grub-VERSION-i386-pc.ext2fs
  • grub-VERSION-i386-pc.tar.gz

Первый из перечисленных - привычный tarball, предназначенный для распространения в исходных текстах. Из его содержимого GRUB можно бесхитростно построить:

$ ./configure $ make $ make install

В результате получится так называемая host-версия загрузчика - почти полнофункциональная, но запускаемая не BIOS, после обнаружения в загрузочном блоке, а как обычное приложение.

Второй - образ дискеты с файловой системой ext2. Загрузившись с этой дискеты, получаем возможность работы с полнофункциональным, системно независимым вариантом загрузчика.

Третий - бинарный вариант распространения, содержащий все необходимые файлы. Редкий случай: даже последовательные сторонники самостоятельной компиляции ПО, признают, что использование предлагаемых бинарных файлов вполне оправдано: самостоятельная компиляция ничего не добавит, поскольку процесс определяется архитектурой IBM PC и особенностями различных файловых систем. Отсутствует только host-версия. Но при наличии дискеты, загружающей GRUB, без неё вполне можно обойтись.



Способов инсталляции загрузчика несколько и, как мне кажется, проще разобраться в сути происходящего, нежели их запомнить. Действительно необходимыми являются только две вещи: каталог /boot/grub/ (с содержимым: stage1, stage2 и stage1_5 для интересующих файловых систем) и наличие stage1 и stage1_5 в начальных блоках устройства. Разумеется, stage1_5 должна соответствовать файловой системе, на которой расположен каталог /boot/grub/.

С созданием каталога /boot/grub/ проблем вообще никаких быть не может, а вот способов поместить stage1 и stage1_5 в начальные блоки действительно несколько. И хотя применение команды dd, своей мощностью, простотой и, одновременно, опасностью напоминающей лом, против которого, как известно, "нет приёма", не возбраняется, в данном случае рекомендуется всё-таки пользоваться средствами GRUB.
Сойдёт и host-версия, и загруженная с оригинальной дискеты. В любом случае достаточно набрать команды:

grub> root (fd0) grub> setup (fd0) Разумеется, вместо (fd0) может быть любое другое блочное устройство. Вообще setup - скрипт, включающий в себя несколько команд более низкого уровня (install, embed, etc...), но коль уж он существует, почему бы им не воспользоваться? Нужно только помнить, что:

  • идентификатор устройства или раздела всегда "обрамляется" круглыми скобками;
  • нумерация устройств и разделов начинается с нуля;
  • логические разделы HDD имеют номера, начиная с 4 (что для пользователей UNIX не должно быть удивительным).
Полный формат идентификатора выглядит так:

(device[,part-num][,bsd-subpart-letter]) где device - имя устройства, part-num - номер раздела, bsd-subpart-letter - буквенный идентификатор подраздела, известный, очевидно, пользователям BSD.


Содержание раздела