Лиловая грубость

Евгений Зобнин aka j1m

Хакер, номер #086, стр. 086-104-1

(j1m@list.ru)

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

Персональные компьютеры уже давно перестали быть носителями одной операционной системы. Теперь на свои машины мы устанавливаем несколько совершенно отличных друг от друга ОС. Поэтому нужен мощный инструмент, способный загрузить что угодно, когда угодно и каким угодно образом. Таким инструментом может стать GNU GRUB, преимущества которого мы постарались раскрыть в этой статье.

[мальчик или девочка?]

GRUB - одна из немногих аббревиатур в мире GNU, буква G которой не означает тот самый GNU. Расшифровывается следующим образом: GRand Unified Bootloader. Похоже на вызов другим загрузчикам, не правда ли? Так оно и есть. Если говорить о функциональной начинке, то GRUB, скорее всего, относится к операционным системам, нежели к загрузчикам. В подтверждение этому высказыванию приведу сокращенный перечень того, что может этот менеджер загрузки:

1. Поддержка различных форматов исполняемых файлов (в том числе ELF).

2. Механизм прозрачной декомпрессии gzip-архивов.

3. Удобное меню.

4. Богатый на возможности интерфейс командной строки.

5. Чтение со всех популярных файловых систем.

6. Загрузка ОС с удаленного компьютера по TFTP-протоколу.

7. Способность загружаться прямо с CD.

В GRUB вполне приемлемой будет такая команда: "cat (hd0,5)/etc/fstab", где (hd0,5) - это корневой раздел. На экране появится содержимое запрашиваемого файла, а при наборе команды все пути (в том числе номер раздела) будут дополнены по нажатию <TAB>. На самом деле этот пример слишком простой для GRUB, ведь весь загрузчик, от цвета меню и до списка операционных систем и методов их загрузки, можно настроить не выходя из него самого (правда, настройки сохранить не удастся, так как файловая система доступна только на чтение). То есть программа является самодостаточной и может по праву носить титул Операционной Системы.

[от слов к делу]

Итак, мы узнали, что GRUB - это действительно Grand, и теперь переходим непосредственно к установке. Забираем исходники с официального сайта проекта GNU: www.gnu.org/software/grub/grub.en.html (или устанавливаем rpm-, deb-, tgz-пакет для своего дистрибутива). После выполнения привычных телодвижений в виде «./configure && make && make install» получаем бинарник «grub» в /usr/sbin (или /usr/local/sbin) и несколько странных (пока) файлов в /usr/share/grub/i386-pc.

Еще нам понадобится небольшой (~15 Мб) раздел /boot, для которого лучше использовать хорошо зарекомендовавшую себя файловую систему ext2 (подробнее о ext2fs/ext3fs читай в следующей статье этой рубрики). За счет использования специального раздела мы избавимся от проблем с некоторыми файловыми системами (раньше бутлоадер не мог грузиться с reiserfs, если была включена опция tail. Теперь все в порядке, но чем пингвин не шутит), сделаем процесс работы с разделами и ядрами более удобным, упростим процесс восстановления загрузчика и обеспечим новую ОС жильем :).

После того как мы обзаведемся разделом, делаем бэкап каталога /boot, очищаем и монтируем к нему наш раздел (не забыв также прописать в /etc/fstab нужные строки). Далее восстанавливаем содержимое каталога, создаем новую поддиректорию grub и копируем в нее сам бинарник (/usr/sbin/grub) и содержимое /usr/share/grub/i386-pc. Как результат, /boot должен содержать все, что в нем было до начала операции, а также новый каталог grub, наполненный всем, что только может понадобиться для установки и работы загрузчика. Аплодисменты, первый этап установки закончен.

Содержание  Вперед на стр. 086-104-2
ttfb: 4.2018890380859 ms