10 лет назад 10 июня 2008 в 16:26 53

Автор: Сергей Голубев

Несколько операционных систем на одном компьютере – конфигурация, давно переставшая считаться экзотической. И выбор начального загрузчика – задача, актуальная для многих пользователей. Один из лучших вариантов – установить GRUB.

Из всех популярных дистрибутивов Linux только в ALT Linux по умолчанию будет установлен загрузчик LILO. Все остальные используют GRUB. Даже компания ASPLinux, долгое время предлагающая пользователю программу собственного производства, потихоньку отодвинула ее на второй план, отдав предпочтение этому решению.

Итак, на сегодняшний день GRUB является лучшей программой, предназначенной для загрузки операционных систем. У большинства пользователей заведомо не будет проблем с инсталляцией пакета, поскольку он уже и так установлен.

Впрочем, если хочется с самого начала все делать своими руками, то никаких проблем. Отправляйтесь на ftp://alpha.gnu.org/gnu/grub и забирайте оттуда исходный текст актуальной версии программы. Ну а дальше, как обычно, три команды: /configure, make и make install. Установка GRUB производится командой grub-install -root-directory=<директория> <раздел> (только учтите, что отсчет разделов начинается с нуля, а не с единицы). Если же возникнут какие-то вопросы, то традиционно помогут man grub и grub -help.

НАСТРОЙКА GRUB

Все настройки загрузчика описываются в файле menu.lst. Причем считываются они при каждой загрузке, поэтому не нужно перезаписывать GRUB после внесения изменений в конфигурацию. Это очень удобно для тех, кто любит экспериментировать.

Вначале надо задать общие параметры. Время, после которого загрузка стартует автоматически, обозначается переменной timeout. Число вводится в секундах, что также очень удобно. Чтобы остановить счетчик, надо просто нажать на любую клавишу.

Параметр color задает цветовую гамму отображения загрузчика. Никакой практической пользы от него нет, тем более что черно-белая схема смотрится весьма красиво. Поэтому прагматичные пользователи эту строку сразу удаляют.

А вот параметр default настоятельно рекомендуется оставить. Он задает позицию меню, которая будет загружена по умолчанию. Счет идет с нуля. Кстати, именно ноль указывать бессмысленно, поскольку он и так подразумевается. Поэтому строка “default 0” практического смысла вроде бы лишена. Зачем же ее сохранять? Да затем, что вам может потребоваться назначить другую операционную систему, загружаемую по умолчанию. А изменить одну цифру проще, чем перемещать несколько строк.

Каждой операционной системе соответствует блок, начинающийся со строки title <название>. Кстати, именно эти самые “тайтлы” и считаются программой для определения системы, загружаемой по умолчанию. И вот тут может возникнуть некоторая путаница.

Дело в том, что строка title <строка> отвечает также за вывод на экран дополнительной информации. Например, если записать title <Операционные системы Microsoft>, а за ней поместить записи для загрузки всех установленных на машине Windows, то меню приобретет более осмысленный вид. Но счетчик будет думать, что это не комментарий, а первая строка значимого модуля.

Рассмотрим простой пример. Допустим, ваш файл menu.lst выглядит следующим образом:

timeout 10

default 0

title <Список систем Linux>

title <Первая система Linux>.

…..

Очевидно, что загрузчик по умолчанию будет пытаться загрузить систему, которую описывает блок, следующий за первым параметром title. А ее попросту нет, поэтому не будет загружено ничего.

Запись, предписывающая передать управление системе Linux, с ядром <файл ядра>, расположенной на файловой системе /dev/hdaN, будет выглядеть следующим образом:

title <название ОС>

root (hd0,N-1)

kernel <файл ядра> root=/dev/hdaN

boot

Обратите внимание, что нумерация разделов и дисков во второй строке начинается не с единицы, а с нуля.

GRUB может не только указывать путь к ядру напрямую, но и загружать системы, имеющие собственные программы запуска. В этом случае следует указать корневой раздел, который нужно не монтировать, а активизировать, и передать управление первому сектору устройства.

Например, запись для загрузки системы Windows, будет выглядеть так:

title Windows

rootnoverify (hd0,0)

makeactive

chainloader +1

boot.

ВОССТАНОВЛЕНИЕ GRUB

Как любая другая программа, загрузчик может испортиться. Самый распространенный случай – переустановка Windows. Ну никак не желает Microsoft совершенствовать программу установки, чтобы она стала хоть немного управляемой.

Теоретически из такой ситуации возможны два выхода. Первый – написать плакаты “Microsoft, одумайся” и отправиться к российскому представительству корпорации. Всерьез мы его рассматривать не будем, но любителям потусоваться с пользой для общества предлагаем воспользоваться. Второй – восстановить загрузчик.

Первым делом надо как-то загрузить Linux. Подойдет как любой LiveCD, так и диск с дистрибутивом. Затем подключите корневой раздел командой mount <раздел> /mnt. Если /mnt занят, то используйте любой другой свободный каталог (если такого не найдется, то можно его создать командой mkdir -p <каталог>.

После этого все необходимые нам объекты будут находиться в директории /mnt, которую нужно объявить корневой приказом chroot /mnt. И восстановить загрузчик командой grub-install -root-directory=<директория> <раздел>. После перезагрузки все вернется на круги своя.

НЕУБИВАЕМЫЙ GRUB

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

Конечно, можно ограничиться паролями, но в ряде случаев они только спровоцируют повышенное любопытство. А испорченный загрузчик – совсем другое дело. Машина сломана, вопросов нету.

Первым делом следует взять GRUB версии ни ниже 0.95. Если у вас такого нет, то идите на ftp://alpha.gnu.org/gnu/grub – там вы найдете все, что вам нужно. Затем создайте каталог, в котором будете собирать заготовку компакт-диска, и организуйте в нем каталог /boot/grub.

Если вы скачали с сайта архив с файлами загрузчика, то распакуйте его в созданный каталог. Если решили использовать свои файлы, то скопируйте их туда же. Самый ответственный шаг – редактирование файла boot/grub/menu.lst. Учтите, что после прожига компакт-диска исправить его будет невозможно – если что-то не заработает, то испорченный CD сгодится только для подставки под кофе.

Для изготовления образа диска воспользуйтесь командой mkisofs -o rescue.iso -r -J -V “Rescue” -A “Rescue” -b boot/grub/iso9660_stage1_5 -c boot/boot.cat -v -no-emul-boot -boot-load-size 4 -boot-info-table rescue. Для прожига болванки воспользуйтесь командой cdrecord dev=<устройство> speed=<скорость> -v rescue.iso.

Загрузочный компакт-диск с размещенным на нем GRUB, который уже заточен под ваш компьютер, готов. Убирайте его на полку и постарайтесь не сломать.