Ubuntu 10. Краткое руководство пользователя
Шрифт:
Глава 19
Настройка загрузчика GRUB2
19.1. Несколько слов о GRUB2
Загрузчик GRUB (GRand Unified Bootloader) считается более гибким и современным, чем LILO (Linux Loader). Благодаря иной схеме загрузки операционных систем GRUB понимает больше файловых систем, нежели LILO, а именно: FAT/FAT32, ext2, ext3, ReiserFS, XFS, BSDFS и др.
Но время не стоит на месте. В свое время загрузчик GRUB пришел на смену LILO, поскольку последний не поддерживал загрузки с разделов, начинающихся после 1024-го цилиндра. Об этой проблеме
Дальнейшая разработка GRUB полностью прекращена, к нему выпускаются лишь патчи. Имеется и патч, добавляющий в GRUB загрузку с файловой системы ext4. Я проделал следующий эксперимент. В Ubuntu 9.10 по умолчанию установлен GRUB2. Я его удалил (с сохранением конфигурационных файлов), затем установил GRUB (имеющаяся в составе версии 9.10 версия GRUB как раз поддерживает ext4), создал вручную его конфигурационный файл и перезагрузил систему — она загрузилась без ошибок. Однако учитывая, что будущее все-таки за GRUB2, я вернул его обратно на заслуженное место.
На скриншотах GRUB2, приведенных в этой книге, вы можете увидеть надпись GNU GRUB version 1.98. Так что же за версию GRUB мы рассматриваем — 1,98 или все-таки 2? Как выясняется, финальная версия GRUB2 до сих пор не вышла, и никто не знает, когда выйдет, но везде, в том числе и в репозиториях, эта версия называется GRUB2. Разработчики загрузчика специально применили нумерацию 1,98, чтобы показать, что пока это не финальная версия. А разработчики дистрибутивов начали ее активно использовать.
Но GRUB2 — не просто набор патчей для GRUB, это полностью новая разработка, созданная с «нуля». Именно поэтому у GRUB2 совершенно другой формат конфигурационного файла.
В Ubuntu GRUB2 используется, начиная с версии 9.10 — не зря я упомянул ее ранее. И в этой версии Ubuntu, и в новой — 10.04 — имеется один небольшой «глюк», связанный с установкой тайм-аута выбора операционной системы. Чуть позже мы решим эту проблему, а пока приступим к рассмотрению конфигурационных файлов GRUB2.
19.2. Конфигурационные файлы загрузчика
В листинге 19.1 приведен основной конфигурационный файл GRUB2 — /boot/grub/grub.cfg. Он не поддается редактированию вручную. Для его создания используется утилита /usr/sbm/grub-mkconfig, которая генерирует этот конфигурационный файл на основе шаблонов, хранящихся в каталоге /etc/grub.d, и настроек из файла /etc/default/grub.
Если вы знакомы с синтаксисом bash, то наверняка заметили, что синтаксис grub.cfg уж очень напоминает синтаксис bash-сценариев. Как уже было отмечено ранее, параметры GRUB2 задаются в файле /etc/default/grub, а в файле grub.cfg описываются элементы меню загрузчика.
Рассмотрим описание элемента меню:
В кавычках после команды menuentry находится описание элемента меню — можете заменить этот текст на все, что вам больше понравится (в том числе и на русский текст — используя кодировку UTF-8). Далее следуют команды GRUB. Например, команда insmod ext2 загружает модуль ext2. Обратите внимание — это не модуль ядра Linux! Это модуль GRUB2, находящийся в каталоге /boot/grub (файл ext2.mod).
Команда set root устанавливает загрузочное устройство. Формат имени устройства такой же, как в GRUB. Обратите внимание — несмотря на использование в команде set root формата имени в стиле обычного GRUB, далее используются постоянные имена устройств:
root=UUID=34eaa635-ef0e-4d5c-8b61-3c22c767834b
В современных дистрибутивах в конфигурационных файлах загрузчика имен в стиле /dev/sd** вы больше не встретите, хотя их можно использовать, если вам так удобнее.
После служебного слова linux задается ядро (файл ядра) и параметры, которые будут переданы ядру. Служебное слово initrd указывает на файл initrd.
Теперь рассмотрим файл /etc/default/grub, содержащий параметры GRUB2 (листинг 19.2). Поскольку этот файл вы будете редактировать чаще, чем grub.cfg, то комментарии для большего удобства я перевел на русский язык.
После изменения файла /etc/default/grub не забудьте запустить команду update-grub для обновления файла /boot/grub/grub.cfg.
При редактировании конфигурации GRUB2 нужно придерживаться одной стратегии из двух возможных. Первая заключается в ручном редактировании файла grub.cfg — вы редактируете его вручную и больше не используете других программ вроде grub-mkconfig или update-grub. Вторая стратегия заключается в использовании вспомогательных программ, но тогда не нужно вручную редактировать файл grub.cfg, иначе при последующем изменении файла grub.cfg программами grub-mkconfig и/или update-grub все изменения, внесенные вручную, будут уничтожены.
Небольшая неясность имеется с командами grub-mkconfig и update-grub — когда и какую команду использовать? Конфигурационный файл grub.cfg строится на базе файлов из каталога /etc/grub.d и параметров из файла /etc/default/grub. Если вы изменили только файл /etc/default/grub, достаточно будет команды update-grub. А вот если вы изменили какой-то файл из каталога /etc/grub.d, то нужно вводить обе команды:
sudo grub-mkconfig
sudo update-grub