Неправильная настройка GRUB может привести к тому, что Ваша система перестанет загружаться, и Вам понадобится дополнительное загрузочное устройство (например, CD-ROM), для того, чтобы это исправить. Этот раздел не является обязательным для настройки Вашей LFS-системы. Вы можете просто обновить конфигурацию уже имеющегося загрузчика, такого, как GRUB-legacy, GRUB2 или LILO.
Убедитесь, что спасательный загрузочный диск находится под рукой и готов «прийти на помощь» в случае, если Ваш компьютер перестанет загружаться. Если у Вас еще нет такого диска, самое время создать его. Для приведенной ниже последовательности команд Вам потребуется забежать немного вперед и установить пакет libisoburn из BLFS.
cd /tmp && grub-mkrescue --output=grub-img.iso && xorriso -as cdrecord -v dev=/dev/cdrw blank=as_needed grub-img.iso
GRUB
использует
свою
собственную
схему
именования
дисков и
разделов в
виде (hdn,m), где
n
является
номером
жесткого
диска, а m –
номером
раздела.
Нумерация
жестких
дисков
начинается
с нуля, но
разделы
нумеруются
начиная с
единицы
для
физических
и с пяти –
для
логических.
Например,
раздел sda1
в
термнах GRUB
будет
выглядеть
как (hd0,1), а sdb3
– (hd1,3). В
противоположность
Linux, GRUB не
мешает в
кучу CD-ROM и
жесткие
диски.
Например,
если Ваш CD-ROM –
hdb
, а
второй
жесткий
диск hdc
,
этот
жесткий
диск в GRUB все
равно
будет
виден как
(hd1).
Для своей работы GRUB использует первую физическую дорожку жесткого диска, записывая туда свой код и данные. Эта область не является частью какой-либо файловой системы. Код, помещенный в нее (его еще называют первичным загрузчиком), обращается к файлам GRUB, находящимся на загрузочном разделе. По умолчанию они расположены в /boot/grub/.
Расположение
загрузочного
раздела -
это выбор
пользователя,
который
серьезно
затрагивает
конфигурацию
загрузчика.
Мы
рекомендуем
создать
небольшой
(около 100 MB)
раздел
исключительно
для
загрузчика.
При таком
варианте LFS
и любой
другой
дистрибутив
смогут
иметь
доступ к
загрузочным
файлам.
Если это
показалось
Вам
хорошей
идеей, Вам
нужно
примонтировать
отдельный
раздел,
переместить
на него все
файлы из
текущего
каталога
/boot
(например,
ядро Linux,
которое Вы
только что
собрали в
предыдущем
разделе),
затем
отмонтировать
раздел и
примотировать
его снова,
уже как /boot
. И
конечно же,
не
забудьте
обновить
/etc/fstab
.
Вы можете также использовать и уже имеющийся раздел LFS, но в этом случае сконфигурировать загрузку нескольких систем будет немного сложнее.
Применяя
вышеуказанные
сведения,
определите
имя
корневого
раздела
(или
загрузочного,
если Вы
решили
выделить
его). Ниже в
примере мы
полагаем,
что имя
корневого
(или
загрузочного)
раздела –
sda2
.
Установим
файлы GRUB в /boot/grub
и
запишем
загрузочную
дорожку:
Следующая команда перезапишет текущий загрузчик. Если это неприемлимо для Вас, например, если Вы используете сторонний менеджер загрузки, который расположен в MBR (главная загрузочная запись, Master Boot Record), не выполняйте эту команду.
grub-install /dev/sda
Сгенерируем
/boot/grub/grub.cfg
:
cat > /boot/grub/grub.cfg << "EOF"
# Начало /boot/grub/grub.cfg
set default=0
set timeout=5
insmod ext2
set root=(hd0,2)
menuentry "GNU/Linux, Linux 3.8.1-lfs-7.3" {
linux /boot/vmlinuz-3.8.1-lfs-7.3 root=/dev/sda2 ro
}
# Конец /boot/grub/grub.cfg
EOF
С точки зрения GRUB, файлы ядра расположены относительно используемого раздела. Если Вы создали для /boot отдельный раздел, уберите /boot из строки linux. Также скорректируйте строку set root, чтобы она указывала на загрузочный раздел.
GRUB – очень мощный загрузчик, и он предоставляет просто невообразимое количество возможностей. Он умеет загружаться с огромного числа устройств, поддерживает все мыслимые операционные системы и типы разделов. GRUB также очень гибок в плане настройки разных красивых и удобных вещей, вроде красивых заставок, воспроизведения мелодий и поддержки мыши. Подробное описание всех возможностей GRUB лежит за пределами этого краткого введения.
Существует утилита, grub-mkconfig, которая может сгенерировать конфигурационный файл автоматически. Она использует набор скриптов из /etc/grub.d/, и ее запуск приведет к потере всех изменений, сделанных Вами вручную. Эта утилита используется в основном бинарными дистрибутивами и не рекомендуется для LFS. Если Вы планируете установить какой-либо коммерческий дистрибутив, высока вероятность, что эта программа будет запущена. На всякий случай сохраните копию вашей версии файла grub.cfg.