dima_boh 01.04.2009 23:00
Новости — GRUB2. Начало
0. Это что такое?Расскажу о новой версии самого популярного загрузчика. Она появилась опционально в стабильном Debian 5.0 Lenny, а значит можно сделать вывод о некоторой стабильности. К сожалению, по словам самих разработчиков, на документацию времени нет, поэтому всё пока работает методом тыка, логики и комментариев в коде :)
Кстати, о версиях. Первой и пока основной считается ветка 0.9x(которую уже окрестили GRUB Legacy), а версии 1.хх официально называются GRUB 2.
Итак, чем же отличается эта версия от старого доброго дефолтного загрузчика всего и вся? На официальном сайте сказано примерно так:
Поддержка скриптов, в частности циклов, условий, переменных и функцийГрафический интерфейсДинамическая подгрузка модулей, позволяющая расширять функционал не на этапе сборки, а прямо во время выполненияПереносимость на разные архитектурыИнтернационализацияНастоящее управление памятью, делающее GNU GRUB более гибкимМодульный, иерархичный, объектно-ориентированный фреймворк для файловых систем, файлов, устройств, дисководов, терминалов, команд, таблиц разделов и загрузчиков операционных системКроссплатформенная установка, позволяющая установить GRUB с другой архитектурыБезопасный режим для трудных случаев. Stage 1.5 ликвидирована.Исправление ошибок, которые были допущены при проектировании GRUB Legacy, и не могли быть исправлены из-за требований обратной совместимости. Например, способ нумерации разделов.
Как видно, изменений куча. Здесь же я хочу остановиться на некоторых практических моментах, с которыми столкнулся в жизни.
Традиционно, предупреждаю: я проделывал все действия на стабильном Debian Lenny. У вас команды или расположение файлов может отличаться (хотя и не должно).
1. Как редактировать меню?
Это естественный вопрос при работе с загрузчиком. В новой версии к нему подошли с другой стороны. Если вы откроете аналог старого menu.lst, файл /boot/grub/grub.cfg, вас ждёт сюрприз. Шапка файла гласит:
1 |
#
|
То есть, руками его править можно, но это не по правилам.
По правилам, меню теперь генерируется автоматически, на основе скриптов, лежащих в /etc/grub.d и настроек из конфига /etc/default/grub
Поискав, описание скриптов, находим файл /etc/grub.d/README, который проливает луч света на хитрое устройство нового загрузчика. Мы узнаём, для чего нужны префиксы в именах скриптов:
00_*: Зарезервирован для 00_header10_*: Загрузочные записи20_*: Сторонние программы (например, memtest86+)
Можно посмотреть сами скрипты, написанные на обычном shell-языке. Они не должны вызвать особых затруднений. Эти скрипты просто ищут в вероятных директориях скомпилированные ядра и образы init.rd, соответственно.
Если вы задумаете скомпилировать ядро самостоятельно, всё будет предельно просто: воспользовавшись соответствующим руководством, вы получите deb-пакет. При установке он положит всё по местам и запустит обновление загрузчика. Когда скрипты отработают, в /boot/grub/grub.cfg будет обновлённое меню с новым ядром. Без единого редактирования конфигов.
2. Предупреждения.
Теперь заглянем с другой стороны: что плохого может случиться при такой схеме работы?
Для специфических ядер нужно писать специальные скрипты. За примером далеко ходить не надо - посмотрите на ядра Xen. Они запускаются немного отлично от стандартных, поэтому стандартный пункт меню для Xen-ядра не запустит ничего хорошего. Если кому-то интересно, напишу об этом подробнее.Если вы всё-таки поменяете меню вручную из-за "какой-то не такой" работы скриптов, в следующий раз (при обновлении ядра или самого GRUB) скрипты вылетят с ошибкой и пакет grub-pc будет считаться ненастроенным. Придётся всё переделать по правилам.Как уже упоминалось выше, очень не хватает нормальной документации. Приходится перебиваться постами с блогов и wiki-страничками.
3. Заключение
Как видно, GRUB сильно изменился. Нравится нам это или нет, через некоторое время всё больше разработчиков внесут его в свои дистрибутивы. А это значит, нужно тестировать, тестировать и просто помогать сообществу в переходе на новое поколение загрузчиков. Успехов!

+ 4 -
cut needed
Вполне =) а можно вот _до_ абзаца начинающегося словами "Как видно, изменений куча..."
И зачем мне теперь ваш линукс? Главное, чтобы в GRUB2 добавили поддержку 3D ускорения и аудиокарт.